Календарь Google добавляет час к событиям vCal, несмотря на установку BST и использование местного формата времени

Я создаю динамический файл vCalendar, чтобы сотрудники могли подписаться через свое любимое приложение для ведения календаря (в основном Apple iCal или Google Calendar). Apple iCal работает нормально, но что бы я ни делал, мне кажется, что Google Календарь не показывает правильное время. Похоже, что время обрабатывается как UTC / GMT и автоматически добавляется час, хотя я не использую суффикс «Z» в датах DTSTART / DTEND, чтобы показать, что это уже местное время.

Я начал с простого формата, который не беспокоил описанием летнего времени, поскольку даты уже были местными:

BEGIN:VCALENDAR
PRODID:-//My Calendar//Pix//EN
VERSION:2.0
METHOD:PUBLISH
X-WR-TIMEZONE:Europe/London
BEGIN:VEVENT
DTSTART:20150730T193000
DTEND:20150730T211500
DTSTAMP:20150704T113005
UID:8252@mycalendar
CLASS:PUBLIC
CREATED:20150701T100000
DESCRIPTION:Cabaret
LAST-MODIFIED:20150704T072253
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:The Supreme Fabulettes
LOCATION: White Rose Rotunda
END:VEVENT
END:VCALENDAR

Это отлично работает в iCal, но не в Календаре Google, поэтому я добавил материал VTIMEZONE после объявления X-WR-TIMEZONE выше:

BEGIN:VTIMEZONE
TZID:Europe/London
X-LIC-LOCATION:Europe/London
BEGIN:DAYLIGHT
DTSTART:19700330T010000
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19701026T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:STANDARD
END:STANDARD
END:VTIMEZONE

Это по-прежнему работает в iCal, но Календарь Google по-прежнему настаивает на добавлении часа к каждому событию.


person PeteSE4    schedule 04.07.2015    source источник


Ответы (1)


Хорошо, оказывается, все вышесказанное работает. Проблема в кешировании Календаря Google. Если вы откажетесь от подписки и повторно добавите URL-адрес, он все равно будет использовать кешированную версию. Помещение фиктивного запроса в конец URL-адреса заставило Google обновиться, и теперь он правильно отображает время.

person PeteSE4    schedule 04.07.2015