outlook - 无法取消 ical 事件(可怕的 "not supported calendar message.ics")

标签 outlook icalendar

我正在用 Python 编写一个系统,该系统使用 icalendar 库生成 ical 邀请。这些工作非常好,但如果我尝试发送取消 Outlook 只会显示可怕的“不支持的日历 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

相同的代码生成两者并以不同方式设置METHODSTATUS(DESCRIPTION 也不同)。我发送一个 SEQUENCE,0 表示邀请,1 表示取消。 UID 在匹配对之间始终保持一致。我错过了什么?

最佳答案

我最终自己解决了这个问题。我会为后代分享我的经验。

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

SEQUENCE 不应该为了取消而递增,只是为了更新。

我还更新了所有地址(ORGANIZERATTENDEE)以包含 mailto:,但这似乎并不是绝对必要的。

关于outlook - 无法取消 ical 事件(可怕的 "not supported calendar message.ics"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60858446/

相关文章:

c# - vsto + 无法从 RTF 电子邮件中获取附件的文件名

c# - 如何使用 DDay.iCal 设置时区

icalendar - iCal 文件 (.ics) 是否有注释字符

asp.net-mvc - Outlook "internet calendar subscription"编程的官方文档在哪里?

php - PHP 中支持时区的 ICalendar 解析器

c# - 从 C# 程序读取 outlook 消息时如何避免 outlook 安全警报

email - 在 SAS 的 Outlook 电子邮件中指定表/列/单元格宽度

macos - Applescript 删除 Outlook 2011 中某个类别的邮件

vba - 在 Outlook 2010 中转发电子邮件及其附件

php - 无法在 Chrome 或 Firefox 中下载生成的 .ics 文件