iCal整天提供全天的活动

我正在使用Telerik RadScheduler的一个非常旧的版本,将约会导出到一个ics文件,以便他们可以被馈送到iPhone。

这是telerik代码:

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

我的服务器在GMT,我的iPhone在NZDT(+13),我的约会存储在UTC。

我有一些全天约会午夜到午夜NZDT时间。 他们是这样出口的:

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

当他们在iPhone上显示时,他们不会显示为全天事件,他们只是在午夜到午夜作为约会空白。

如果是错的,我很愿意重新编写自己的东西,但是我不知道应该是什么。 我已经search谷歌iCal全天事件的例子,但我找不到任何适当的文件(也许看错了地方),我发现似乎是不一致的。

我想知道的是,这是与时区有关,还是输出不正确? 全天事件的开始和结束时间是什么,或者是否需要添加“全天事件”的关键?

不是100%确定iOS实现它,但RFC5545 3.6.1说:

[…]“VEVENT”日历组件的“DTEND”属性指定事件的非包含结束。 对于“VEVENT”日历组件指定“DTSTART”属性,并且date值types为“DTEND”或“DURATION”属性的情况,该事件的持续时间将被视为一天。

所以在你的情况下,你应该尝试删除DTEND属性。