Re: DTSTART for recurrence instances

Doug Royer <[email protected]>
Newsgroups gmane.ietf.calendar
Organization http://INET-Consulting.com
Message-ID <[email protected]>

Craig Johnson wrote:

> 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)?

Yes. And each object returned will have a RECURRENCE-ID property
added with its value set to the effective start time of that instance of 
the component.
All objects returned will have the same DTSTART /  [ DTEND | DURATION ]

IN 2445 (EXDATE) (a similar section for EXRULE also exists):

   The "EXDATE" property can be used to exclude the value specified in
   "DTSTART". However, in such cases the original "DTSTART" date MUST
   still be maintained by the calendaring and scheduling system because
   the original "DTSTART" value has inherent usage dependencies by other
   properties such as the "RECURRENCE-ID".

The only time the DTSTART is not the same as the master is when
specifying a change to a single instance as described in iTIP 3.7.1
and 4.4.2 . Then the master is not altered, just the specifc object
declaring the change details.

> Or will DTSTART and
> DTEND have the 'effective' value for the recurrence instance
> (as in column 2 below)? 

No. Why would there need to be a new property (RECURRENCE-ID)?
It could be done with a boolean (this is a single instance) to DTSTART
if that were true.

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

DTSTART is a fixed value for any specific revision of a UID.
RECURRENCE-ID is calculated only when the object is expanded.

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

-- 

Doug Royer                     |   http://INET-Consulting.com
-------------------------------|-----------------------------
[email protected]                 | Office: (208)520-4044
http://Royer.com/People/Doug   |    Fax: (866)594-8574
                               |   Cell: (208)520-4044

               We Do Standards - You Need Standards
smime.p7s (application/x-pkcs7-signature, 4.6 KB) - not displayed
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.