Вопрос по – Как отменить событие календаря, используя файлы ics?

8

Одним из наших требований является создание файлов iCalendar (.ics) и отправка каждого из них по электронной почте в виде вложения. Мы используемDDay.Ical.dll создать файлы ics как в:

<code>// Create a new iCalendar
iCalendar iCal = new iCalendar();

// Create the event, and add it to the iCalendar
Event evt = iCal.Create<Event>();

// Set information about the event
evt.Start = new iCalDateTime(SomeStartTime);
evt.End = new iCalDateTime(SomeEndTime);
evt.Location = "At so and so place";
evt.Description = "Some Description";
evt.Summary = "About Some Subject";
iCal.Method = "PUBLISH";

// Serialize (save) the iCalendar
iCalendarSerializer serializer = new iCalendarSerializer();
serializer.Serialize(iCal, @"iCalendar.ics");
</code>

Полный процесс:

User1 create an iCal file for specific date and time and send it to User2. User2 will open the ics file and accept the invitation. An appointment item will be created in User2's LOCAL outlook.

Теперь предположим, что по любой причине, если встреча отменена, тогда Пользователь1 ДОЛЖЕН создать файл ics и отправить его Пользователю2, чтобы Пользователь2 мог отменить свое событие из локального внешнего вида.

Как создать такой файл ics?

Ваш Ответ

1   ответ
11

как и исходный файл ics. Статус мероприятия будет другим. UID идентифицирует событие, а порядковый номер будет указывать приоритет обновления, а затем будут отмечаться детали события (изменения или отмены)

Если вы хотите изменить / отменить событие после отправки приглашения, вам необходимо идентифицировать событие / встречу по его UID и назначить больший номер ПОСЛЕДОВАТЕЛЬНОСТИ, чем исходное событие ics.

UID (уникальный идентификатор):http: //tools.ietf.org/html/rfc5545#page-11

Последовательность:http: //tools.ietf.org/html/rfc5545#page-13

и установить статус события

             / "CANCELLED"    ;Indicates event was cancelled.

Положение дел:http: //tools.ietf.org/html/rfc5545#page-9

oh - и метод Если вам нужно отправить отмену события, UID должен совпадать с исходным событием, а свойства компонента должны быть установлены для отмены Ex. МЕТОД: ОТМЕНА СТАТУС: ОТМЕНЕН

Конечно, это будет «отменять» событие, только если получатель затем щелкнет, чтобы загрузить / подписать его в том же приложении календаря, что и в первый раз. Для приложений, которые «подписались» на удаленные микросхемы - когда они в следующий раз делают «обновление», проверьте, что обновление должно быть обработано и переписать исходное событие.

Я проверял это с моим клиентом Outlook, к удивлению, когда я отменяю собрание из Outlook и читаю файл ics на стороне получателя, я не нахожу там флаг STATUS, не говоря уже об отмене. Кроме того, VEVENT установлен на CANCEL, но я не уверен, является ли это достаточно хорошим показателем того, была ли встреча отменена? Подскажите, пожалуйста, что еще я могу проверить на приемной стороне, чтобы узнать, отменена ли эта встреча? Мне это нужно для рабочего процесса! kuldeep

Похожие вопросы