DTSTART for recurrence instances
"Craig Johnson" <[email protected]>
| Newsgroups | gmane.ietf.calendar |
|---|---|
| Message-ID | <[email protected]> |
In the thread "Re: list of items (recur-id is not CAP)", Doug wrote (on 11/25/03): > When expanding an existing recurring object, you do not > modify the DTSTART value... (i.e. the DTSTART value of a recurrance instance is the DTSTART value of the recurrence 'master'.) Unless I have misunderstood, this seems contrary to common practice. Some clarification regarding DTSTART value for recurrence instances would be helpful. Suppose we have a recurring event for every Monday in January: BEGIN:VEVENT SUMMARY:Every Monday in January DTSTART:20040105T100000Z DTEND:20040105T110000Z UID:A-Unique-ID RRULE:FREQ=WEEKLY;UNTIL=20040131T170000Z; INTERVAL=1;BYDAY=MO;WKST=SU ... END:VEVENT Now suppose we SEARCH for that event with Expand:TRUE: BEGIN:VQUERY EXPAND:TRUE QUERY: SELECT * from VEVENT WHERE UID = 'A-Unique-ID' END:VQUERY What will be returned in the query? Will the DTSTART (and DTEND) of each recurrence instance be the same as the 'master' (as in column 1 below)? Or will DTSTART and DTEND have the 'effective' value for the recurrence instance (as in column 2 below)? Note: The first instance in each column is the same; subsequent instances begin to differ. For each instance - For each instance - DTSTART is same as the master DTSTART has 'effective' value (DTSTART not modified). for the recurrence instance. *----------------------------- *----------------------------- BEGIN:VEVENT BEGIN:VEVENT DTSTART: 20040105T100000Z DTSTART: 20040105T100000Z DTEND: 20040105T110000Z DTEND: 20040105T110000Z RECURRENCE-ID:20040105T100000Z RECURRENCE-ID:20040105T100000Z ... ... BEGIN:VEVENT BEGIN:VEVENT DTSTART: 20040105T100000Z DTSTART: 20040112T100000Z DTEND: 20040105T110000Z DTEND: 20040112T110000Z RECURRENCE-ID:20040112T100000Z RECURRENCE-ID:20040112T100000Z ... ... BEGIN:VEVENT BEGIN:VEVENT DTSTART: 20040105T100000Z DTSTART: 20040119T100000Z DTEND: 20040105T110000Z DTEND: 20040119T110000Z RECURRENCE-ID:20040119T100000Z RECURRENCE-ID:20040119T100000Z ... ... BEGIN:VEVENT BEGIN:VEVENT DTSTART: 20040105T100000Z DTSTART: 20040126T100000Z DTEND: 20040105T110000Z DTEND: 20040126T110000Z RECURRENCE-ID:20040126T100000Z RECURRENCE-ID:20040126T100000Z ... ... The expected result, intuitively and instinctively, is Column 2. The prior discussion thread implied that Column 1 is correct (along with some discussion explaining that this is why DTSTART is not always suitable for use in QUERYs, whereas RECURRENCE-ID is more suitable). This is a fundamental issue that impacts interoperability. I'd like to hear others view on this issue: What is the value of DTSTART for recurrence instances? - DTSTART is the same as the 'master'. - DTSTART is the 'effective' value for the instance. Thanks. Craig J.