Невозможно отменить событие (страшно "не поддерживается календарь message.ics") - PullRequest
0 голосов
/ 26 марта 2020

Я пишу систему в 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 всегда совпадают между совпадающей парой. Чего мне не хватает?

1 Ответ

0 голосов
/ 27 марта 2020

Я сам решил это. Я поделюсь своими знаниями для потомков.

Тип MIME в письме также должен быть установлен с method=CANCEL. В конечном итоге это была моя проблема. method в MIME-типе должно совпадать с METHOD в файле ical, и для того, чтобы Outlook правильно его обработал, требуется и то и другое.

SEQUENCE не следует увеличивать для отмены, только для обновления.

Я также обновил все адреса (ORGANIZER и ATTENDEE), добавив mailto:, но это не является строго необходимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...