1

我正在寻找一种在 iCalendar 中表示重复的方法,该方法适用于 Google 日历、Android 和 iOS。我正在使用一个时间表系统,其中每周重复很常见,但重复的模式并不总是规律的。

以下是一些示例,它们都适用于 Google 日历。理想情况下,我希望为所有设备提供一个提要。

适用于 Android(但不适用于 iOS)

BEGIN:VEVENT
DTSTAMP:20121113T111932Z
SUMMARY:A Series of Meetings
LOCATION:Somewhere
DESCRIPTION:Very important things to discuss
TZID:Europe/London
DTSTART;TZID=Europe/London:20121204T140000
DTEND;TZID=Europe/London:20121204T160000
RDATE;TZID=Europe/London:20121204T140000,20130115T140000,20130129T140000
SEQUENCE:1
UID:blahblahblah
END:VEVENT

我发现如果我从 RDATE 列表中省略了 DTSTART 日期,它不会显示 Android 上的第一次活动发生(但在 Google 日历中显示)。我得出的结论是RDATE 不适用于 Apple 设备

适用于 iOS(但不适用于 Android)

BEGIN:VEVENT
DTSTAMP:20121113T112004Z
SUMMARY:A Series of Meetings
LOCATION:Somewhere
DESCRIPTION:Very important things to discuss
TZID:Europe/London
DTSTART;TZID=Europe/London:20121204T140000
DTEND;TZID=Europe/London:20121204T160000
RRULE:FREQ=WEEKLY;UNTIL=20130129T140000;INTERVAL=1
EXDATE:20121211T140000,20121218T140000,20121225T140000,20130101T140000,20130108T140000,20130122T140000
SEQUENCE:1
UID:blahblahblah
END:VEVENT

我很欣赏上面的 iOS 示例可能不是生成 RRULE 的最有效方法,但我正在寻找一种易于为各种模式的每周循环活动生成的方法。

iOS 示例在 Android 中失败,因为仅观察到第一个 EXDATE 条目。我认为 Google 日历将 EXDATE 放在不同的行上,因此将其用于 Android 消费。

4

0 回答 0