Невозможно удалить встречу с помощью файла ical в клиенте Outlook для настольных ПК - PullRequest
0 голосов
/ 25 июня 2019

У нас есть следующее требование.

1) Нам нужно создать встречу с шаблоном повторения и отправить ее посетителям. 2) Позже нам нужно обновить, удалить одно вхождение из шаблона повторения. 3) В некоторых случаях нам также может понадобиться полностью удалить повторяющуюся встречу.

Под удалением мы подразумеваем, что собрание должно быть помечено как отмененное в календаре приглашенного.

Мы отправляем встречи через наше веб-приложение, отправляя электронное письмо участникам с файлом .ICS, встроенным в электронную почту. Мы генерируем электронную почту, используя Java Mail API, и встраиваем файл .ICS в виде составного сообщения, сохраняя тип MIME в виде текста / календаря.

Наши приглашенные используют Microsoft Outlook Outlook Desktop Client, веб-клиент Office 365. gmail.

Мы можем отправить встречу с шаблоном повторения, а также можем обновить конкретное событие встречи.

Однако мы сталкиваемся с трудностями при удалении встречи или отдельной встречи, в частности, в Outlook Desktop Client. Когда мы отправляем событие удаления в почтовом ящике приглашенного, оно показывает кнопку «Удалить из календаря», но не помечает собрание как «отмененное» в пользовательском календаре. То же самое происходит правильно в веб-приложении Gmail.

Я протестировал его в версии Outlook, показанной ниже

Office 365 MSO (16.0.11601.20184) 64 бит

Я также протестировал простой тестовый пример: создание простого собрания с использованием приведенного ниже файла create.ics (отправка его как часть письма), а затем попытка удалить собрание с использованием приведенного ниже файла delete.ics.

//create.ics
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:India Standard Time
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=Test Sirion:MAILTO:xyz@abc.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Kapil Gupta:MAILTO:abc@xyz.com
DESCRIPTION;LANGUAGE=en-US:\n
UID:040000008200E00074C5B7101A82E00800000000908EB51F4E28D501000000000000000
 01000000000ED265B41C38B479A5315D1D23383D4
SUMMARY;LANGUAGE=en-US:New Meeting
DTSTART;TZID=India Standard Time:20190622T080000
DTEND;TZID=India Standard Time:20190622T083000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20190621T105648Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=en-US:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:-2091554845
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-LOCATIONS:[]
BEGIN:VALARM
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR


//delete.ics
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:India Standard Time
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=Test Sirion:MAILTO:xyz@abc.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Kapil Gupta:MAILTO:abc@xyz.com
DESCRIPTION;LANGUAGE=en-US:\n
UID:040000008200E00074C5B7101A82E00800000000908EB51F4E28D501000000000000000
 01000000000ED265B41C38B479A5315D1D23383D4
SUMMARY;LANGUAGE=en-US:Canceled: New Meeting
DTSTART;TZID=India Standard Time:20190622T080000
DTEND;TZID=India Standard Time:20190622T083000
CLASS:PUBLIC
PRIORITY:1
DTSTAMP:20190621T110026Z
TRANSP:TRANSPARENT
STATUS:CANCELLED
SEQUENCE:1
LOCATION;LANGUAGE=en-US:
X-MICROSOFT-CDO-APPT-SEQUENCE:1
X-MICROSOFT-CDO-OWNERAPPTID:-2091554845
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-INTENDEDSTATUS:FREE
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:2
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
END:VEVENT
END:VCALENDAR

Пожалуйста, сообщите нам, если есть какие-либо проблемы с файлом delete.ics.

Я также поместил код, который мы используем для отправки почты, в приведенный ниже список на github, если это уместно.

https://gist.github.com/kapilgupta101292/92769d3e9f8e6444cb9dde5960473b1e

Я уже протестировал, добавив X-WR-RELCALID, как предложено в следующей ссылке переполнения стека, но это тоже не работает -

Удалить событие календаря с помощью импорта файла iCalendar (проблема Outlook 2003)?

Пожалуйста, просмотрите приведенный выше файл ics и сообщите нам, как добиться удаления встречи. Пожалуйста, дайте нам знать, если требуется какой-либо вклад, нам нужно быстро решить эту проблему для доставки нашего веб-приложения.

...