У меня есть событие iCal, указанное в UTC с повторениями.Кажется, что все выводится правильно, но клиенты iCal колеблются: шаблон повторения - M, W, F, но дата начала (переведенная в UTC) - вторник.
Неправильно рассчитанный шаблон повторения - S,T, R.
Это вывод, который не работает должным образом:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME: Room ICCS008
PRODID:-//Drupal iCal API//EN
BEGIN:VEVENT
UID:calendar.18861.field_date.0.8
SUMMARY:CPSC 210 L2C
DTSTAMP:20110518T123628Z
DTSTART:20110621T010000Z
DTEND:20110621T033000Z
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR;UNTIL=20110730T033000Z
URL;VALUE=URI:https://localhost/event/2011/06/cpsc-210-l2c
END:VEVENT
END:VCALENDAR
Событие должно начаться 20 июня в 18:00 по тихоокеанскому времени.Календарь правильно переводит это на 21 июня в 1:00 по UTC.Это повторяет M, W, F в течение месяца.Тем не менее, похоже, что он полностью сбрасывает со счетов Google Calendar и Apple iCal вычисление повторяющихся событий.
Первое событие появляется в понедельник, а второе - во вторник, третий четверг и с тех порэто S, T, R для повторяющегося шаблона до конца.
Это ошибка iCal?Это что-то, что выводится неправильно моим создателем iCal (Drupal Views iCal)?
ОБНОВЛЕНИЕ: Хорошо, многие люди импортировали это, и это работает во всех случаях, кроме Apple iCalи Молния Громовой Птицы.
Это потому, что клиенты-импортеры (я полагаю) глобально определяют часовой пояс и корректно перемещают все за один раз.
Однако, если вы подписываете на него с помощью GCal, он индивидуально ограничивает время каждого события и выходит из строя, демонстрируя поведение, описанное выше.
UPDAT-IER
Сам файл iCal неправильный - по некоторым причинам некоторые клиенты могут справиться с ошибкой, а другие - нет, но событие, указанное в UTC, фактически повторяет каждый T, R,S в 1:00, и «хорошие» клиенты переносят это обратно на основании местного TZ.Процесс создания iCal вычислял количество повторных дней на основе местного часового пояса, а не преобразованного в UTC-один.Это ошибка в реализации Drupal iCal.