|
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.
|