Re: list of items (recur-id is not CAP)

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

Arnaud Quillaud wrote:

>Actually, if I understand it correctly, the following section of CAP
>seems to make use of the "wrong" model for recurrence-id:
><<
>6.1.1.15 Query by Date-Time range
>
>   This query selects the entire content of every booked "VEVENT"
>   component that has an instance greater than or equal to July 1st,
>   2000 00:00:00 UTC and less than or equal to July 30st, 2000 23:59:59
>   UTC. This includes single instance "VEVENT" components that do no
>   explicitly contain any recurrence properties or "RECURRENCE-ID"
>   properties. This works only for CSs that have the "RECUR-EXPAND"
>   property value set to "TRUE" in the "GET-CAPABILITY" exchange.
>
>   BEGIN:VQUERY
>   EXPAND:TRUE
>   QUERY:SELECT * FROM VEVENT
>   WHERE RECURRENCE-ID >= '20000701T000000Z'
>   AND RECURRENCE-ID <= '20000730T235959Z'
>   AND STATE() = 'BOOKED'
>   END:VQUERY
>  
>
>Since the recurrence-id of an instance might not correspond to its
>current dtstart, the example above won't do what its description says it
>should do.
>Why can't we use the DTSTART for this type of query ?
>
If you sent:

    QUERY:SELECT * FROM VEVENT
      WHERE DTSTART >='20000701T000000Z'
       AND DTSTART <='20000730T235959Z'

You would get back VEVENTs with a DTSTART property value between
those two dates. If a recurring VEVENT existed and was daily starting
from DTSTART:19990101T000000Z, it  would not match the query, even
when one of its instances (RECURRENCE-ID) did match. The same is
true if the VEVENT had a RDATE:20000702T000000Z, as you did not
query for RDATE, it would not match as RDATE is not DTSTART.

The DTSTART value only matches the RECURRENCE-ID on the first instance
of a repeating object. If you query for DTSTART values, that is what you 
will get.
If you query for RECURRENCE-ID values, then you get any VEVENT that
has an effective instance start time that matches that value (somehow stored
or computed).

All objects with an RRULE or RDATE property values have virtual
RECURRENCE-ID's even when an RECURRENCE-ID was
not explicitly sent or stored in the object.

What do you think you would get back if EXPAND:FALSE were in
the CAP example?

-- 

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.