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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.