Проблемы с получением Календаря Google для соблюдения часового пояса iCal

Я создал канал iCal, который отлично работает в календаре Apple. Затем я попытался импортировать его в Календарь Google, и время у всех пять часов, что имеет смысл, потому что я нахожусь в часовом поясе США / Восточный. Исходя из технических характеристик, я предполагал, что программа календаря должна учитывать мое время как местное, основываясь на том, как они отформатированы (у них нет тегов часового пояса или UTC), но этого не происходит. Итак, я добавил информацию о часовом поясе в календарь.

BEGIN:VCALENDAR 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
PRODID:iCalendar-Ruby VERSION:2.0 
BEGIN:VTIMEZONE 
TZID:America/New_York 
BEGIN:DAYLIGHT 
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
TZNAME:EDT 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
END:DAYLIGHT 
BEGIN:STANDARD 
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
TZNAME:EST 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
END:STANDARD 
END:VTIMEZONE

Я удалил повторно импортированный календарь, и время все еще выключено. Стандартное событие выглядит так:

BEGIN:VEVENT 
DESCRIPTION:Justin M. is scheduled to work from 12 PM to 3 PM. 
DTEND:20111103T150000 
DTSTAMP:20111122T144545 
DTSTART:20111103T120000 
LOCATION:Museum of Unnatural History 
SEQUENCE:0 
SUMMARY:Justin M. 
UID:2011-11-22T14:45:45+00:00_239255930@0a9a698e-854d-48e2-97d4-37ff0b28311 9 
END:VEVENT

Итак, я не уверен, почему у календаря Google возникают проблемы. Может быть, это просто кеширование URL и не обновление календаря? Есть ли что-то еще, что я должен сделать.

2 ответа

Решение

Итак, я прибег к использованию времени UTC, добавив Z до конца каждого события времени. В сочетании с информацией о часовом поясе в календаре Google корректно конвертирует время, за исключением летнего времени. Те все еще выключены. Обновлюсь, если смогу выяснить почему.

Вы можете указать определенный часовой пояс в каждой дате события, например

DTSTART;TZID=America/New_York:20150218T133000

Таким образом, летнее время будет учитываться автоматически, и вам не нужно будет конвертировать из местного времени в формат UTC (Z) при создании календаря. Обратите внимание, что вы также можете столкнуться с проблемами часовых поясов, если клиент, который интерпретирует ical-файл, не имеет правильной настройки зоны.

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