Javascript ics文件是否支持邮寄?邮寄时是否支持RSVP等iCal功能?

Javascript ics文件是否支持邮寄?邮寄时是否支持RSVP等iCal功能?,javascript,icalendar,gcal,Javascript,Icalendar,Gcal,我正在开发一个基于JavaScript的应用程序,它可以在每个活动的1名组织者和1名或多名参与者之间设置活动。由于它面向公众,组织者和与会者几乎可以使用任何主要的日历和/或电子邮件服务 我已经确定iCal.ics是共享日历事件最受广泛支持的格式,因此我编写了一些代码,通过几个在线验证器成功地测试了有效的.ics文件,但我对如何使用该文件感到困惑。我的期望是: 生成包含organizer和Attenders的.ics文件,并为organizer生成PARSTAT=ACCEPTED的Attender

我正在开发一个基于JavaScript的应用程序,它可以在每个活动的1名组织者和1名或多名参与者之间设置活动。由于它面向公众,组织者和与会者几乎可以使用任何主要的日历和/或电子邮件服务

我已经确定iCal.ics是共享日历事件最受广泛支持的格式,因此我编写了一些代码,通过几个在线验证器成功地测试了有效的.ics文件,但我对如何使用该文件感到困惑。我的期望是:

生成包含organizer和Attenders的.ics文件,并为organizer生成PARSTAT=ACCEPTED的Attender条目 组织者将.ics文件发送给与会者供参考:通过在组织者的ui中打开带有预附加.ics文件和预设为:字段的邮件客户端实现 组织者和与会者各自的邮件/日历服务提供商(如gmail/gcal/outlook/exchange/etc)解析.ics文件并自动将其添加到用户日历中 RSVP状态由日历服务提供商跟踪 但是,由于各种原因,这种用法似乎不适用于主要提供商,例如,为了简单起见,让我们假设组织者和与会者都使用Gmail:

Gmail似乎同时解析组织者的.ics文件发送者和与会者的收件人的文件,但只为与会者提供将活动添加到其日历中的操作。没有为组织者提供将其添加到其日历的自动操作。我可以确认它是在组织者一侧解析的,因为Gmail知道它是组织者,并且故意不提供“添加到日历”操作,即使他/她也是通过修改.ics文件中的组织者进行测试的与会者

“添加到日历”操作将提供给与会者,添加后,将提供RSVP操作,但不会与组织者同步,此时组织者可能会或可能不会在其日历中包含该事件,具体取决于他们是否手动添加该事件

我可以保证使用PARTSTAT=NEEDS-ACTION正确定义与会者;角色=REQ-参与者;RSVP=TRUE,并且我生成的.ics文件有效且内容正确

就.ics标准而言,我上面概述的预期用法是否不正确,或者这些问题是否是由于日历/邮件提供商的特性造成的

使用.ics文件是否还有其他策略来实现此用例,或者我根本误解了.ics文件的用法-它们不是要作为附件发送出去吗?除非您运行自己的CalDAV服务器,否则它们不支持RSVP吗


在iMIP/iTIP中,没有将邀请注入组织者日历的概念。最初的工作流程由主办方触发,因此假设活动已在主办方日历中

对于第2点,如果活动在组织者的日历中,且回复未得到处理,则您使用协议的方式可能存在问题。我们需要原始请求和回复的详细信息来帮助您调试


处出现了一个与此相关的响应,我尝试在组织者将相同的.ics文件发送给与会者之前,强制组织者将.ics文件手动导入其日历,但由于某些原因,RSVP选项无法连接,但不会更新另一方。我依靠底层的邮件/日历服务来实现方法:REPLY。原始的.ics文件有一个方法:REQUEST,目的是启动这个过程,但是让提供者从那里开始。Update:看起来这实际上可能是邮件/日历提供者的一个特性。使用Gcal时,如果组织者首先导入事件,则与会者的注册不会被完全截断。但是,如果组织者使用iOS日历,则与会者将从.ics文件中导入,日历甚至会代表组织者发出邀请,因此组织者只需导入.ics文件,然后日历将从那里接收空闲时间,通知与会者并处理RSVP。我想知道是否有办法使用GCal和其他日历实现同样的效果。如果您使用iOS calendar+GCal,客户端将使用CalDAV协议,并将整个活动放入组织者的日历中。你也可以这样做,但这当然更复杂。