Как установить часовые пояса с DDay.iCal

Я использую DDay.iCal для отправки события, которое должно быть получено в Outlook 2013. Это часть кода, в которой я устанавливаю даты:

evt.Created = new iCalDateTime(DateTime.Now);
evt.LastModified = new iCalDateTime(DateTime.Now);
evt.UID = Guid.NewGuid().ToString();
evt.DTStamp = new iCalDateTime(DateTime.Now);
evt.Duration = TimeSpan.FromHours(4);
evt.DTEnd = new iCalDateTime(DateTime.Now.AddHours(4));

Когда я получаю соответствующее приглашение на собрание в Outlook 2013, я получаю следующее:

Организатор создал эту встречу в следующем часовом поясе: (UTC) Монровия, Рейкьявик

Какие часовые пояса я могу установить? Я пробовал несколько, таких как:

evt.Created = new iCalDateTime(DateTime.Now, "GMT");
evt.LastModified = new iCalDateTime(DateTime.Now, "GMT");
evt.UID = Guid.NewGuid().ToString();
evt.DTStamp = new iCalDateTime(DateTime.Now, "GMT");
evt.Duration = TimeSpan.FromHours(4);
evt.DTEnd = new iCalDateTime(DateTime.Now.AddHours(4), "GMT");

...а также...

evt.Created = new iCalDateTime(DateTime.Now, "Eastern Standard Time");
evt.LastModified = new iCalDateTime(DateTime.Now, "Eastern Standard Time");
evt.UID = Guid.NewGuid().ToString();
evt.DTStamp = new iCalDateTime(DateTime.Now, "Eastern Standard Time");
evt.Duration = TimeSpan.FromHours(4);
evt.DTEnd = new iCalDateTime(DateTime.Now.AddHours(4), "Eastern Standard Time");

Когда я делаю это, вместо приглашения на собрание, в Outlook 2013 я получаю электронное письмо с вложением not supported calendar message.ics,

Как правильно установить часовой пояс (или хотя бы какой-нибудь параметр по умолчанию, чтобы Outlook не отображал сообщение, упомянутое ранее)?

Изменить: ниже содержимое файла.ics:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VEVENT
CREATED:20140602T094431
DESCRIPTION:Test test
DTEND:20140602T134431
DTSTAMP:20140602T074431Z
DTSTART:20140602T094431
LAST-MODIFIED:20140602T094431
ORGANIZER:mailto:johnny@example.com
PRIORITY:3
SEQUENCE:1
SUMMARY:Test 2
UID:df6b9f7c-2986-49f1-8b46-78d50193904c
BEGIN:VALARM
ACTION:Display
DESCRIPTION:Reminder
DURATION:PT15M
TRIGGER:PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

1 ответ

Решение

Этот ответ решил проблему для меня. Решение было использовать:

iCal.AddLocalTimeZone();

Также возможно установить произвольные часовые пояса на основе системных часовых поясов... подробности см. В этом ответе.

Другие вопросы по тегам