iCal Feed Весь день События исчезают весь день

Я использую очень старую версию Telerik RadScheduler, которая экспортирует встречи в файл ics, чтобы их можно было передать на iPhone.

Это код телерика:

 TimeZoneInfo localZone = TimeZoneInfo.Local;
 TimeSpan ts = localZone.BaseUtcOffset;
 return RadScheduler.ExportToICalendar(scheduler.Appointments, ts);`

Мой сервер в GMT, мой iPhone в NZDT (+13), мои встречи хранятся в UTC.

У меня есть несколько назначений на весь день, которые проходят с полуночи до полуночи по новозеландскому времени. Они экспортируют так:

 BEGIN:VEVENT DTSTART:20141205T110000Z 
 DTEND:20141206T110000Z
 UID:20141202T140355Z-907 
 DTSTAMP:20141202T140355Z SUMMARY: Day Off
 DESCRIPTION:Own Day END:VEVENT

Когда они отображаются на iPhone, они не отображаются как события на весь день, они просто закрывают весь день с полуночи до полуночи как встречу.

Я очень готов сам переписать ical, если он неправильный, но я не знаю, каким он должен быть. Я искал в Google примеры событий iCal в течение всего дня, но не могу найти подходящей документации (возможно, искал не в том месте), и то, что я нахожу, кажется непоследовательным.

Я хочу знать, это как-то связано с часовым поясом или вывод неверен? Каким должно быть время начала и окончания для событий на весь день, или нужно добавить ключ для "событий на весь день"?


person Bex    schedule 02.12.2014    source источник


Ответы (1)


не уверен на 100 % в том, как это реализовано в iOS, но RFC5545 3.6.1 говорит:

[...] Свойство «DTEND» для компонента календаря «VEVENT» указывает неинклюзивное окончание события. В случаях, когда компонент календаря "VEVENT" указывает свойство "DTSTART" с типом значения DATE, но не имеет свойства "DTEND" или "DURATION", продолжительность события принимается равной одному дню.[...]

поэтому в вашем случае вы должны попытаться удалить свойство DTEND.

person Auberon Vacher    schedule 02.12.2014