4

iCalendar 仕様 RFC 5545 のプロパティ RECURRENCE-ID と、このプロパティの RANGE パラメータについて少し混乱しています。

2012 年 8 月 6 日から毎週月曜日の 10 時から 12 時にスケジュールされる「会議」と呼ばれる定期的なイベントを含むカレンダー コンポーネントを想定します。繰り返しの終了は 2012 年 10 月 29 日です。 2012 年 9 月 3 日までに毎週月曜日に RANGE を THISANDFUTURE に設定して、その後のすべてのイベントも 12 時から 15 時にスケジュールされることを示します。2012 年 10 月 1 日までに、"会議" は (月曜日ではなく) 毎週火曜日の 10 時から 13 時に再度スケジュール変更され、RANGE は THISANDFUTURE に設定されます。さらに、2012 年 9 月 17 日のシングル イベントは、8 時から 10 時に変更されます。

iCalendar 形式のイベントは次のようになります。

BEGIN:VCALENDAR
...
BEGIN:VEVENT
DTSTART:20120806T100000Z
DTEND:20120806T120000Z
UID:atgbutj8md5v35fuguni1of4b9o@google.com
SEQUENCE:1
SUMMARY:Meeting
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z
END:VEVENT
BEGIN:VEVENT
DTSTART:20120903T120000Z
DTEND:20120903T150000Z
UID:atgbutj8md5v35fuguni1of4b9o@google.com
SEQUENCE:1
SUMMARY:Meeting
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z
RECURRENCE-ID;RANGE=THISANDFUTURE:20120903T100000Z
END:VEVENT
BEGIN:VEVENT
DTSTART:20121002T100000Z
DTEND:20121002T130000Z
UID:atgbutj8md5v35fuguni1of4b9o@google.com
SEQUENCE:1
SUMMARY:Meeting
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z
RECURRENCE-ID;RANGE=THISANDFUTURE:20121001T100000Z or 20121002T120000Z???????????
END:VEVENT
BEGIN:VEVENT
DTSTART:20120917T080000Z
DTEND:20120917T100000Z
UID:atgbutj8md5v35fuguni1of4b9o@google.com
SEQUENCE:1
SUMMARY:Meeting
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z
RECURRENCE-ID:20120917T100000Z or 20120917T120000Z?????????
END:VEVENT
END:VCALENDAR

不明な値は、RECURRENCE-ID と RRULES の値です。

-) 3 番目と 4 番目のイベントで使用される日付はどれですか? メイン イベント (最初のイベント) を参照する必要がありますか?それとも 2 番目のイベントを参照する必要がありますか?

-) RFC5545 の私の解釈が正しければ、RRULE は変更または再スケジュールされない可能性があります。これは、ルールがサブイベントでも同じであることを意味します。2012 年 10 月 29 日の 10 時から 12 時に予定されていた最後のイベントはどうなりますか? これは、カレンダー コンポーネントの繰り返しセットの最後のイベントですか、それとも 10 月 30 日 10 時が含まれるようにすべてのイベントで UNTIL 値を変更する必要がありますか?

前もって感謝します!:-)

4

1 に答える 1

4

THISANDFUTURE を使用した再スケジュールの難しさと相互運用性については、2010 年 10 月の calconnect interopに記載されています。

可能であれば、相互運用性が RFC5545 § 3.8.4.4 の注記に従う方がおそらく簡単/安全です。

「RANGE」パラメーターは、特定の後続のインスタンスを再スケジュールするのに適切ではない場合があります [...] 。このような場合、カレンダー アプリケーションは単純に無制限の定期的なカレンダー コンポーネントを切り捨て (つまり、"COUNT" または "UNTIL" ルール パーツを使用)、将来のインスタンス用に 2 つの新しい無制限の定期的なカレンダー コンポーネントを作成できます。

于 2012-07-18T04:47:33.907 に答える