Я пишу систему в Python, которая использует библиотеку icalendar для генерации приглашений. Те работают фантастически, но если я пытаюсь отправить отмену, Outlook просто отображает страшное «не поддерживаемое календарное сообщение.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
Один и тот же код генерирует оба и устанавливает METHOD
и STATUS
по-разному (DESCRIPTION
также отличается). Я посылаю SEQUENCE
из 0 за приглашение и 1 за отмену. UID всегда совпадают между совпадающей парой. Чего мне не хватает?