2012-07-12 93 views
2

我對iCalendar規範RFC 5545中的屬性RECURRENCE-ID和此屬性中的RANGE參數有點困惑。iCalendar中的RECURRENCE-ID(RFC 5545)

假設一個包含名爲「會議」的循環事件的日曆組件,該會議將於2012年8月6日開始的每個星期一10-12點安排。重複結束日期爲2012年10月29日。 「會議」將於2012年9月3日每週一的12點至15點重新安排,範圍設置爲THISANDFUTURE,以確定所有後續活動的時間安排在12點至15點。 到2012年10月1日,「會議」將在每週二(而不是週一)的10點至13點再次重新安排,範圍設置爲THISANDFUTURE。 此外,2012年9月17日的單項活動將從8點改變爲10點。

以iCalendar格式的本次活動將是這樣的:

BEGIN:VCALENDAR 
... 
BEGIN:VEVENT 
DTSTART:20120806T100000Z 
DTEND:20120806T120000Z 
UID:[email protected] 
SEQUENCE:1 
SUMMARY:Meeting 
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20120903T120000Z 
DTEND:20120903T150000Z 
UID:[email protected] 
SEQUENCE:1 
SUMMARY:Meeting 
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z 
RECURRENCE-ID;RANGE=THISANDFUTURE:20120903T100000Z 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20121002T100000Z 
DTEND:20121002T130000Z 
UID:[email protected] 
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:[email protected] 
SEQUENCE:1 
SUMMARY:Meeting 
RRULE:FREQ=WEEKLY;UNTIL=20121029T100000Z 
RECURRENCE-ID:20120917T100000Z or 20120917T120000Z????????? 
END:VEVENT 
END:VCALENDAR 

我不能確定的值是復發ID和RRULES的值。

- )哪個日期應該用在第三和第四個事件中?他們應該參考主要事件(第一事件)還是事件第二事件,因爲這是「最近的」事件,它被重新安排?

- )如果我對RFC5545的解釋是正確的,則RRULE可能不會更改或重新安排。這意味着在子事件中,rrule也是相同的。最後一場比賽將於2012年10月29日10時至12時舉行,但第三場比賽將重新安排到第二天的下午10點。這是日曆組件重複集合中的最後一個事件,還是在所有事件中都要更改UNTIL值,以便10月30日10點包括在內?

在此先感謝! :-)

回答

4

使用THISANDFUTURE和互操作性重新安排的難度已在calconnect interop oct 2010中有記錄。

如果可以的話,它可能會更容易/更安全地進行互操作,以遵循RFC5545第3.8.4.4節中的註釋。

「RANGE」參數可能不適合重新計劃特定的後續實例[...]。在這種情況下,日曆應用程序可以簡單地截斷無限制的循環日曆組件(即,使用「COUNT」或「UNTIL」規則部分),併爲未來實例創建兩個新的無限制循環日曆組件。

+0

對不起,我遲到的答案,但電子郵件通知沒有任何原因工作。感謝您的發佈。它幫助了很多。我將通讀上述章節,如果事實證明這個問題真的解決了,我會將問題標記出來。 :-) – mrwerner 2012-09-06 20:12:31