Outlook не импортирует VCS с часовыми поясами правильно? - PullRequest
1 голос
/ 16 ноября 2011

В нашем веб-приложении на ASP есть модуль, который генерирует файлы VCS для импорта в календарь.Это прекрасно работает, если клиент находится в той же зоне, что и мы (GMT).

Но если я создаю событие, которое начинается, например, в 9:00 UTC-01, я все равно получаю событие, начинающееся в 9:00 UTC./ GMT, как будто он не будет читать TZOFFSET

Это сгенерированный VCS.В этом примере событие должно состояться 30 декабря 2011 года с 9 до 10 утра в UTC-05 (Нью-Йорк).Если я оставлю свой часовой пояс как GMT, я получу встречу с 9 утра до 10 утра вместо того, чтобы рассчитать разницу во времени.Даже если я изменяю свои часовые пояса, он всегда рассчитывает разницу с GMT, а не с часовым поясом, в котором происходит событие.

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-Microsoft
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
TZ:UTC-05
X-MICROSOFT-CDO-TZID:10
BEGIN:STANDARD
DTSTART:20111230T090000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART: 20111230T090000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20111116T100300Z
DTSTART;TZID=America/New_York:20111230T090000
SUMMARY;ENCODING=QUOTED-PRINTABLE:TEST
UID:12347a7833h
ORGANIZER;CN=Test:MAILTO:test@test.com
LOCATION;ENCODING=QUOTED-PRINTABLE:Hall A
DTEND;TZID=America/New_York:20111230T100000
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:
SEQUENCE:0
PRIORITY:5
TRANSP:OPAQUE
CATEGORIES:Test
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR

Я уже несколько дней гуглюсь и не могунайдите любую хорошую документацию о том, как правильно генерировать VCS.

Любая помощь будет отличной!

Спасибо, Федерико

Ответы [ 2 ]

3 голосов
/ 21 января 2014

Вот текст из упомянутого мной поста в блоге (который больше недоступен):

==========

В этом и заключается проблема: если вы ищете в Google информацию о том, как создать файл уведомлений и сообщений электронной почты Календаря Outlook, вы можете наткнуться на эту страницу, на которой есть общий шаблон, который вы можете использовать. Или вы можете отправить себе приглашение и посмотреть исходный код файла ICS.

В любом случае вы увидите следующие строки в блоке VTIMEZONE:

TZID:(GMT-05.00) Eastern Time (US & Canada)
X-MICROSOFT-CDO-TZID:10

Обратите внимание на странную строку X-MICROSOFT-CDO-TZID ... она просто имеет номер "10". Ну, согласно Microsoft, число 10 представляет восточный часовой пояс здесь, в Америке. В поиске Google вы можете увидеть больше примеров этого странного сопоставления числа / местоположения, но вам будет сложно найти полный список всех сопоставлений. 11 - центральное время, 12 - горное время, 13 - тихоокеанское, но 38 - горное время для Аризоны ...?

После долгих исследований (и телефонного звонка сотруднику MSFT) мы нашли этот документ глубоко на веб-сайте MSDN: http://msdn.microsoft.com/en-us/library/aa563018(loband).aspx

Он документирует все «номера часовых поясов», которые вам понадобятся для правильной настройки файла ICS.

==========

Ура!

0 голосов
/ 07 сентября 2012

Я уверен, что ОП уже решил эту проблему, но вот отличный пост в блоге, в котором обсуждается запатентованный тег «X-MICROSOFT-CDO-TZID», который Microsoft использует для помощи в интерпретации часового пояса в Outlook: http://hello -dot-wordpress.blogspot.com / 2009/10 / мой-гид-к-х-Microsoft-ЦДУ-tzid.html

Редактировать: Обновлена ​​ссылка.

...