Subject: [calsify] draft-ietf-calext-availability

From: Ken Murchison <[email-masked]>
Date: Fri, 15 Jan 2016 15:19:55 -0500

(Resending to the list because I don't think these issues were discussed 
and/or resolved in the -01 update)

All,

This draft looks pretty good to me, and I already have an implementation 
of most, if not all, of it.

A few comments:

- The current text in Section 4 leaves me unclear as to whether the 
ordering of VAVAILABILITY components by priority means that the expected 
order is:
     0, 1, 2, ... , 8, 9
OR
     0, 9, 8, ... , 2, 1

- The text in Section 5.1.1 (available 8:00AM to 6:00PM, 2 hr event) 
doesn't match the iCalendar data in Appendix A (available 9:00AM to 
6:00PM, 1 hr event) - I'd suggest fixing the iCalendar data to match the 
text since the table in 5.1.1 uses 2 hr blocks of time on even hours

- Since VAVAILABILITY components can be stored in calendar collections, 
do we need to add a section that discusses how it behaves with 
CALDAV:time-range?  Perhaps a new Section 6.2.x such as the following:

    Section 9.9 of [RFC4791] describes how to specify time ranges to
    limit the set of calendar components returned by the server.  This
    specification extends [RFC4791] to describe how to apply time range
    filtering to VAVAILABILITY components.

    A VAVAILABILITY component is said to overlap a given time range if
    the condition for the corresponding component state specified in
    the table below is satisfied.  The conditions depend on the presence
    of the DTSTART, DTEND, and DURATION properties in the AVAILABILITY
    component.  Note that, as specified above, the DTEND value MUST be
    a DATE-TIME value equal to or after the DTSTART value if specified.

    +------------------------------------------------------------+
    | VAVAILABILITY has the DTSTART property?                    |
    |   +--------------------------------------------------------+
    |   | VAVAILABILITY has the DTEND property?                  |
    |   |   +----------------------------------------------------+
    |   |   | VAVAILABILITY has the DURATION property?           |
    |   |   |   +------------------------------------------------+
    |   |   |   | Condition to evaluate                          |
    +---+---+---+------------------------------------------------+
    | Y | Y | N | (start < DTEND  AND  end > DTSTART)            |
    +---+---+---+------------------------------------------------+
    | Y | N | Y | (start < DTSTART+DURATION  AND  end > DTSTART) |
    +---+---+---+------------------------------------------------+
    | Y | N | N | (end > DTSTART)                                |
    +---+---+---+------------------------------------------------+
    | N | Y | N | (start < DTEND)                                |
    +---+---+---+------------------------------------------------+
    | N | N | * | TRUE                                           |
    +---+---+---+------------------------------------------------+

-- 
Kenneth Murchison
Principal Systems Software Engineer
Carnegie Mellon University