Google カレンダー、Android、および iOS で動作する iCalendar で繰り返しを表す方法を探しています。私は、毎週の繰り返しが非常に一般的ですが、繰り返しのパターンが常に規則的であるとは限らない時間割システムを使用しています。
以下にいくつかの例を示します。どちらも Google カレンダーで機能します。理想的には、すべてのデバイスに対して 1 つのフィードが必要です。
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 を生成する最も効率的な方法ではないことを理解していますが、さまざまなパターンの毎週の反復アクティビティを簡単に生成できる方法を探しています。
最初の EXDATE エントリのみが観察されるため、iOS の例は Android では失敗します。Google カレンダーは EXDATE を別の行に配置しているため、Android での使用に対応していないと思います。