Outlook 通过电子邮件进行iCal预约和后续更新,但不要';t提供接受/拒绝选项

Outlook 通过电子邮件进行iCal预约和后续更新,但不要';t提供接受/拒绝选项,outlook,gmail,lotus-notes,icalendar,Outlook,Gmail,Lotus Notes,Icalendar,我们正在编写一个具有预订功能的系统,并计划让它通过电子邮件向与会者发送*.ics文件,以便他们可以轻松地将约会添加到日历中。活动类型包括培训课程(例如下午3点在董事会会议室) 我们已经做到了这一点,系统发送*.ics,使用Gmail和Outlook,用户可以接受预约,然后将预约添加到他们的日历中 有时事件会发生变化(例如,课程被取消或推迟到第二天)。我们的软件可以发送一个新的*.ics文件,Gmail/Outlook可以正确识别这是对原始约会的更新,并提供再次接受/拒绝的选项 问题是,我们没有通

我们正在编写一个具有预订功能的系统,并计划让它通过电子邮件向与会者发送*.ics文件,以便他们可以轻松地将约会添加到日历中。活动类型包括培训课程(例如下午3点在董事会会议室)

我们已经做到了这一点,系统发送*.ics,使用Gmail和Outlook,用户可以接受预约,然后将预约添加到他们的日历中

有时事件会发生变化(例如,课程被取消或推迟到第二天)。我们的软件可以发送一个新的*.ics文件,Gmail/Outlook可以正确识别这是对原始约会的更新,并提供再次接受/拒绝的选项

问题是,我们没有通过电子邮件接收标准电子邮件客户端在用户接受/拒绝约会时自动发送的接受/拒绝响应的机制。因此,单击“拒绝”选项可能会给他们一种错误的感觉,即他们取消了约会,而实际上我们的系统不知道他们在日历中做了什么

我们总是希望用户直接在网站上进行预订,而*.ics通过电子邮件只是为了方便他们记住要参加。与航班预订类似,如果乘客真的打算取消预订,则需要比在Outlook中单击“拒绝”更明确的内容。在我预订了几次航班后,航空公司给我发送了一个*.vcs文件,其中包含“方法:发布”,而不是“方法:请求”,听起来更接近我们想要的,尽管在测试中,GMail没有将此*.vcs文件识别为预约

因此,问题是,我们是否可以通过电子邮件通知Outlook、GMail和Lotus Notes自动识别的后续更新,但防止用户认为他们可以在自己的日历工具中取消/拒绝整个预订?如果是,怎么做

更新1


我想我发现了这个方法的问题:发布我正在尝试的航空公司预订示例——这是一个过去的日期。使用未来的日期,我们现在可以使用方法:PUBLISH来允许人们在不需要接受/拒绝的情况下将事件添加到日历中。现在的问题是,如果事件被取消或更改,我们无法将新的*.ics识别为覆盖了原始事件。我们正在分配一个唯一的UID并增加事件的序列字段,但我不知道规范是否允许“发布”事件优雅地处理更新(日期、时间、位置、描述等)

更新2


好的,我刚刚在试验来自的*.ics示例文件。使用4.1.1“最小已发布事件”和4.1.2“更改已发布事件”中的示例,我将发送我认为符合规范的已发布事件和后续更新。Outlook 2010和GMail都将此次更新视为一项新活动。因此,在这一点上,我将假设Outlook和GMail仅部分支持*.ics文件,放弃优雅的更新,只要指示用户在我向他们发送新的日历约会时删除他们的旧日历约会。

iCalendar格式还指定了方法:发布(请参阅)。不清楚您是否尝试了方法为PUBLISH(且无ATTENDEE属性)的.ics文件。

为什么不接收通知?只要正确指定了组织者,Outlook将发送通知。为了澄清,接收通知不是问题所在。我们不希望Outlook一开始就发送它们,因为我们不希望用户获得接受/拒绝选项。创建、确认和取消预订是通过我们的网站完成的,而不是通过Outlook/Gmail/Lotus Notes。我认为我们不能通过调整iCal数据来完成。您需要直接在用户的日历文件夹中创建约会。有人找到过解决此问题的优雅解决方案吗?(vs.“嘿,用户,忽略最后一个事件!”)我想我发现了方法的问题:发布我正在尝试的航空公司预订示例-这是一个过去的日期。使用未来的日期,我们现在可以使用方法:PUBLISH来允许人们在不需要接受/拒绝的情况下将事件添加到日历中。现在的问题是,如果事件被取消或更改,我们无法将新的*.ics识别为覆盖了原始事件。