Outlook 无法取消ical事件(可怕的“不支持的日历消息.ics”)

Outlook 无法取消ical事件(可怕的“不支持的日历消息.ics”),outlook,icalendar,Outlook,Icalendar,我正在用Python编写一个系统,它使用icalendar库生成ical邀请。这些工作非常出色,但如果我试图发送取消通知,Outlook只会显示可怕的“notsupported calendar message.ics”。我最初在邀请中遇到了这个问题,但通过修改日期格式解决了这个问题 以下是初始邀请: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//myapp//myapp.example.com// METHOD:REQUEST BEGIN:VEVENT SUMMA

我正在用Python编写一个系统,它使用icalendar库生成ical邀请。这些工作非常出色,但如果我试图发送取消通知,Outlook只会显示可怕的“notsupported calendar message.ics”。我最初在邀请中遇到了这个问题,但通过修改日期格式解决了这个问题

以下是初始邀请:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//myapp//myapp.example.com//
METHOD:REQUEST
BEGIN:VEVENT
SUMMARY:Weekly Review Meeting
DTSTART;VALUE=DATE-TIME:20200331T190000Z
DTEND;VALUE=DATE-TIME:20200331T200000Z
DTSTAMP;VALUE=DATE-TIME:20200325T193007Z
UID:1@myapp
SEQUENCE:0
ATTENDEE:me@example.com
CATEGORY:EVENT
CLASS:PUBLIC
DESCRIPTION:bla bla
LOCATION:Webex
ORGANIZER:donotreply@example.com
PRIORITY:5
STATUS:CONFIRMED
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR
然后取消:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//myapp//myapp.example.com//
METHOD:CANCEL
BEGIN:VEVENT
SUMMARY:Weekly Review Meeting
DTSTART;VALUE=DATE-TIME:20200331T190000Z
DTEND;VALUE=DATE-TIME:20200331T200000Z
DTSTAMP;VALUE=DATE-TIME:20200325T193011Z
UID:1@myapp
SEQUENCE:1
ATTENDEE:me@example.com
CATEGORY:EVENT
CLASS:PUBLIC
DESCRIPTION:
LOCATION:Webex
ORGANIZER:donotreply@example.com
PRIORITY:5
STATUS:CANCELLED
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

相同的代码生成这两种方法,并以不同方式设置
方法
状态
说明
也不同)。我发送了一个
序列
,0表示邀请,1表示取消。UID在匹配对之间始终保持一致。我错过了什么?

我最终自己解决了这个问题。我将把我学到的东西分享给子孙后代

电子邮件中的MIME类型也需要设置为
method=CANCEL
。这最终是我的问题method需要与ical文件中的
method
相匹配,并且这两者都是Outlook正确处理它所必需的

序列
不应为取消而递增,而应为更新而递增

我还更新了所有地址(
组织者
与会者
),包括
邮件收件人:
,但这似乎不是严格必要的