Subject: Re: Cap Free-Busy Request - vs QUERY?

From: "Craig Johnson" <[email-masked]>
Date: Tue, 22 Jul 2003 14:54:01 -0600

I shall attempt to respond to some of Dougs questions in another post.  
But to keep things focused on a CAP method for obtaining free/busy information, consider the following that have been presented:
 
1.
BEGIN:VQUERY
QUERY:SELECT DTSTART,DTEND,FREEBUSY FROM VFREEBUSY WHERE DTEND >= 'end-range'  AND DTSTART <= 'start-range'  AND STATE() = 'BOOKED'END:VQUERY
 
2.
BEGIN:VQUERY
QUERY:SELECT DTSTART,DTEND FROM VEVENT
 WHERE DTSTART >= range? AND DTEND <= range?
  AND ( TRANSP = 'OPAQUE' OR TRANSP = 'OPAQUE-NOCONFLICT' )
  AND STATE() = 'BOOKED'
END:VQUERY
 
3.
BEGIN:VFREEBUSY
DTSTART:start-range
DTEND:end-range
END:VFREEBUSY
 
Which of these methods is the most simple?
Which most clearly and unambiguously expresses the request?
Which is most consistent with iTIP?
 
If you had to vote, which would you prefer?
 
Give me door number 3, please.
 
* C Johnson

---

From: Doug Royer <[email-masked]>
Date: Tue, 22 Jul 2003 16:32:42 -0600

I vote for do not invent jet another QUERY.
    We would just need to add text saying 'do it this way'.

#1 Can be done right now - no change to CAP needed.
    I vote for #1

#2 Can be done right now - no change to CAP needed.
    In fact, you can not stop a CUA from doing this.

#3 Looks like a VFEEBUSY, but it is not.
    It is also NOT an iTIP VFREEBUSY REQUEST/REPLY.

    From iTIP:

      The busy time information within the iCalendar object MAY be grouped
      into more than one "VFREEBUSY" calendar component. This capability
      allows busy time periods to be grouped according to some common
      periodicity, such as a calendar week, month, or year. In this case,
      each "VFREEBUSY" calendar component MUST include the "ATTENDEE",
      "DTSTART" and "DTEND" properties in order to specify the source of
      the busy time information and the date and time interval over which
      the busy time information covers.

    So the CS MAY round to the nearest week, month, or year anyway.
    No functional gain from #1 or #2

#4 Another way would be to allow the CUA to deposit an iTIP
    VFREEBUSY REQUEST (as documented in iTIP) and then the next SEARCH
    for VFREEBUSY by the UPN (searching for a ORGANIZER with a matching
    value) and then provide the VFREEBUSY REPLY. Then it is EXACTLY like iTIP.
    However this requires two full round trips.

    Do we need to support VFREEBUSY REQUEST/REPLY at the CS? Or
    can be specify that the CUA takes those objects and just
    queries the CS?

I think that CAP is no longer open to new ideas, but how to close
CAP and ship it. #1 and #2 require no change to CAP. #3 requires
a new idea to be added to CAP. And #3 adds another way to
do the same thing that can already be done.

#3 may look prettier, but its not more functional.

Craig Johnson wrote:
> But to keep things focused on a CAP method for obtaining free/busy 
> information, consider the following that have been presented:
>  
> 1.
> BEGIN:VQUERY
> 
> QUERY:SELECT DTSTART,DTEND,FREEBUSY FROM VFREEBUSY
> 
>  WHERE DTEND >= 'end-range'
> 
>   AND DTSTART <= 'start-range'
> 
>   AND STATE() = 'BOOKED'
> 
> END:VQUERY
>  
> 2.
> BEGIN:VQUERY

We are trying to close CAP, not invent new methods.
So 'simple' is not high priority.

> Which most clearly and unambiguously expresses the request?

Just an opinion.

> Which is most consistent with iTIP?

None of them are iTIP compliant and existing iTIP
releases would choke on them.

-- 

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

                 We Do Standards - You Need Standards