Network Working Group F. Silva Internet-Draft R. Drummond Intended status: Experimental Unicamp Expires: June 22, 2008 December 20, 2007 Imprecise and alternative events for iCalendar and iTIP draft-silva-events-01 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on June 22, 2008. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract This document defines extensions to iCalendar and iTIP that allow the expression of imprecise and multiple alternative events in calendar objects and scheduling messages. Imprecise events can be used to imprecisely describe an event by specifying various ranked periods of time in which it could be scheduled. Alternative events can be used to describe an event in terms of multiple ranked event descriptions, imprecise or not, that could alternatively be scheduled. Silva & Drummond Expires June 22, 2008 [Page 1] Internet-Draft Imprecise and alternative events December 2007 Editorial note (to be removed by RFC Editor prior to publication) Discussion of this specification is taking place on the mailing list http://lists.osafoundation.org/mailman/listinfo/ietf-calsify. Silva & Drummond Expires June 22, 2008 [Page 2] Internet-Draft Imprecise and alternative events December 2007 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 3. iCalendar Extensions . . . . . . . . . . . . . . . . . . . . . 5 3.1. Imprecise Event Component . . . . . . . . . . . . . . . . 5 3.2. Alternative Events Component . . . . . . . . . . . . . . . 9 3.3. Minimum Granularity Component Property . . . . . . . . . . 12 3.4. Maximum Granularity Component Property . . . . . . . . . . 12 3.5. Rank Component Property . . . . . . . . . . . . . . . . . 13 3.6. Rank Property Parameter . . . . . . . . . . . . . . . . . 14 4. iTIP Extensions . . . . . . . . . . . . . . . . . . . . . . . 14 4.1. Methods for VIMPRECISEEEVENT Calendar Components . . . . . 15 4.1.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 16 4.1.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 19 4.1.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 21 4.1.4. CANCEL . . . . . . . . . . . . . . . . . . . . . . . . 23 4.1.5. REFRESH . . . . . . . . . . . . . . . . . . . . . . . 25 4.1.6. COUNTER . . . . . . . . . . . . . . . . . . . . . . . 27 4.1.7. DECLINECOUNTER . . . . . . . . . . . . . . . . . . . . 29 4.2. Methods for VALTERNATIVEEVENTS Calendar Components . . . . 30 4.2.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 31 4.2.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 35 4.2.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2.4. CANCEL . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.5. REFRESH . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.6. COUNTER . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.7. DECLINECOUNTER . . . . . . . . . . . . . . . . . . . . 44 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1. Published Imprecise Event . . . . . . . . . . . . . . . . 45 5.2. An Imprecise Event Request . . . . . . . . . . . . . . . . 46 5.3. Reply to an Imprecise Event Request . . . . . . . . . . . 47 5.4. Counter an Imprecise Event Request . . . . . . . . . . . . 47 5.5. Update an Event Description . . . . . . . . . . . . . . . 48 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 50 7. Security Considerations . . . . . . . . . . . . . . . . . . . 50 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 50 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 50 9.1. Normative References . . . . . . . . . . . . . . . . . . . 50 9.2. Informative References . . . . . . . . . . . . . . . . . . 51 Appendix A. Design Considerations . . . . . . . . . . . . . . . . 51 A.1. Avoiding VALTERNATIVEEVENTS . . . . . . . . . . . . . . . 51 A.2. Avoiding VIMPRECISEEVENT . . . . . . . . . . . . . . . . . 52 A.3. Compatibility . . . . . . . . . . . . . . . . . . . . . . 53 Appendix B. Change History (to be removed by RFC Editor prior to publication) . . . . . . . . . . . . . . . . . . . 53 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 54 Intellectual Property and Copyright Statements . . . . . . . . . . 55 Silva & Drummond Expires June 22, 2008 [Page 3] Internet-Draft Imprecise and alternative events December 2007 1. Introduction Calendar users may want to express an event not by using a unique exact description, but in terms of several possible alternative event descriptions. A possible event could, in turn, be described imprecisely, i.e., not with fixed start and end times, but in terms of one or more periods of time in which it could occur. Additionally, it should be possible to rank each of these alternative events and periods of time, so as to represent the suitability or likelihood of scheduling them in fact. These features would make possible the description of an event like the following: a 1 hour long business meeting taking place at office A on Monday between 8 am and 11 am - preferred -, or at office B on Thursday 2 pm or Friday after 4:30 pm. Such flexible representation of an event allow users to communicate uncertainty and preferences that naturally occur [SL02]. This is especially important during scheduling negotiation, when the "Attendees" have to agree about an event description. Multiple alternative event descriptions and periods of time can help a group of "Attendees" to faster converge into a description that is acceptable for all [SD98]. In most situations, that means to reach consensus about an event time that satisfies a common feasible free time interval, but other event properties can be under negotiation as well (e.g., duration, location, summary). In the worst case, if only the nth event proposal sent by the "Organizer" is acceptable by all "Attendees", offering one event description per proposal leads to n negotiation 'rounds'. Conversely, in the best case, if the "Organizer" had proposed n alternative event descriptions, only one negotiation round would have been enough. However, iCalendar [I-D.ietf-calsify-rfc2445bis] does not provide a way to describe an event imprecisely or to represent multiple event alternatives. This cannot be done by using several iTIP [I-D.ietf-calsify-2446bis] messages either. To accomplish these, this memo defines new types of iCalendar calendar components and specifies iTIP methods for their use in scheduling messages. 2. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Silva & Drummond Expires June 22, 2008 [Page 4] Internet-Draft Imprecise and alternative events December 2007 "VEVENT" components defined by [I-D.ietf-calsify-rfc2445bis] are referred to as "regular events". The term "event" is used as a general reference to regular events, imprecise events, and alternative events. 3. iCalendar Extensions This specification adds the new "VIMPRECISEEVENT" and "VALTERNATIVEEVENTS" calendar components to iCalendar. The "VIMPRECISEEVENT" component describes an imprecise event in terms of periods of time in which it could be scheduled. These periods are expressed by "VFREEBUSY" and "VAVAILABILITY" [I-D.daboo-calendar-availability] components. The "VALTERNATIVEEVENTS" component describes alternative events by grouping multiple "VEVENT" and "VIMPRECISEEVENT" event descriptions. Whereas the "VIMPRECISEEVENT" and "VALTERNATIVEEVENTS" components describe events, they are not intended to represent regular events that correspond to a scheduled amount of time, what is done by the "VEVENT" component. Imprecise and alternative events components do not take up time on a calendar, since they just represent a schedulable amount of time whose description definition is in course. As such, these components MUST NOT be considered to generate results for an iTIP "VFREEBUSY" REQUEST, what includes CalDAV calendar-access [RFC4791] CALDAV:free-busy-query REPORT and CalDAV calendar-schedule [I-D.desruisseaux-caldav-sched] free-busy lookup. This specification also adds the new "RANK" property to the "VEVENT" and "VIMPRECISEEVENT" components, and to the "AVAILABLE" sub- components of the "VAVAILABILITY" component. A new "RANK" property parameter is also defined for the "FREEBUSY" parameter of the "VFREEBUSY" component. These extensions allow alternative events and periods of time used to describe imprecise events to be ranked. Moreover, the new "MIN-GRANULARITY" and "MAX-GRANULARITY" properties are introduced for the "VIMPRECISEEVENT" component. If an imprecise event represents some kind of "liquid task" that can be scheduled in more than one regular event, these properties indicate, respectively, the minimum and maximum duration that each of such events should have. 3.1. Imprecise Event Component Silva & Drummond Expires June 22, 2008 [Page 5] Internet-Draft Imprecise and alternative events December 2007 Component Name: VIMPRECISEEVENT Purpose: Provide an imprecise event description. Format Definition: A "VIMPRECISEEVENT" calendar component is defined by the following notation: impreciseeventc = "BEGIN" ":" "VIMPRECISEEVENT" CRLF impreciseeventprop *availabilityc *freebusyc "END" ":" "VIMPRECISEEVENT" CRLF impreciseeventprop = *( ; the following are REQUIRED, ; but MUST NOT occur more than once dtstamp / uid / ; the following are OPTIONAL, ; but MUST NOT occur more than once class / created / description / due / duration / geo / last-mod / location / min-granularity / max-granularity / organizer / priority / rank / rrule / seq / status / summary / transp / url / ; 'percent' is OPTIONAL, ; but MUST NOT occur more than once and, ; if it occurs, 'duration' MUST occur percent / ; the following are OPTIONAL, ; and MAY occur more than once attach / attendee / categories / comment / contact / rstatus / related / resources / x-prop / iana-prop ) Description: A "VIMPRECISEEVENT" calendar component is a grouping of component properties, and possibly including "VFREEBUSY" and "VAVAILABILITY" components, that represents a schedulable amount of time, imprecisely described, for which exact start and end times are not specified. As opposed to a regular event Silva & Drummond Expires June 22, 2008 [Page 6] Internet-Draft Imprecise and alternative events December 2007 represented by a "VEVENT" component, a "VIMPRECISEEVENT" does not represent a scheduled amount of time on a calendar, but an imprecise event that, once having its temporal properties - start time and end time (or duration) - defined, can be represented by a "VEVENT" component. Included "VFREEBUSY" and "VAVAILABILITY" components represent available periods of time for effectively scheduling the event. The "VFREEBUSY" components MUST follow the same semantics used to publish busy time specified on [I-D.ietf-calsify-rfc2445bis]. Typically, the "FBTYPE" parameter of "FREEBUSY" properties present on these "VFREEBUSY" components will have the "FREE" value, but "BUSY-TENTATIVE" and "BUSY" values MAY also be used so as to denote that events already scheduled on the interval represented by the "FREEBUSY" property could be rescheduled in favor of the imprecise event in question. The "BUSY-UNAVAILABLE" value SHOULD NOT be used for this purpose. The resulting available time is the union of the periods of time represented by all "VFREEBUSY" and "VAVAILABILITY" components. Periods of time specified by the "VFREEBUSY" components MUST NOT overlap. However, a period specified by a "VFREEBUSY" component MAY overlap those represented by "VAVAILABILITY" components. In this case, the interval specified via "VFREEBUSY" overrides those defined by any "VAVAILABILITY" components. Besides the applicable properties from the "VEVENT" component, the "VIMPRECISEEVENT" component also allows for the "DUE" and "PERCENT" properties present on the iCalendar "VTODO" component. As in a to-do, the "DUE" property defines the date and time that the event is expected to be finished. The "PERCENT" property specifies, in the case of a liquid task, how much of it has already been scheduled or accomplished into regular events, with respect to the "DURATION" property. From that, the remaining duration that still must be scheduled can be inferred. In the context of an imprecise event, a "RRULE" is not intended to specify a concrete recurrence set of events, but to express a frequency of occurrence that the actual scheduled event may have. Within a "VIMPRECISEEVENT" component the UNTIL rule part of a recurrence rule MUST NOT be specified. Example: The following is an example of a "VIMPRECISEEVENT" calendar component that describes a 2 hour long department meeting taking place whenever between 8:00 AM to 12:00 on April 1st, 2008: Silva & Drummond Expires June 22, 2008 [Page 7] Internet-Draft Imprecise and alternative events December 2007 BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com DTSTAMP:20071005T133225Z SUMMARY:Department meeting DURATION:PT2H BEGIN:VFREEBUSY UID:20071005T133225Z-00001A@example.com DTSTAMP:20071005T133225Z FREEBUSY;FBTYPE=FREE:20080401T080000Z/20080401T120000Z END:VFREEBUSY END:VIMPRECISEEVENT The following is an example of a "VIMPRECISEEVENT" calendar component that describes a medical check-up occurring within any of the periods of time specified by the "VFREEBUSY" components and that is intended to have a monthly recurrence: BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com DTSTAMP:20071005T133225Z SUMMARY:Medical check-up RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR BEGIN:VFREEBUSY UID:20071005T133225Z-00001-A@example.com DTSTAMP:20071005T133225Z FREEBUSY;FBTYPE=FREE;RANK=100:20080328T150000Z/PT3H FREEBUSY;FBTYPE=FREE;RANK=100:20080329T163000Z/PT1H30M FREEBUSY;FBTYPE=FREE;RANK=80:20080330T140000Z/PT6H END:VFREEBUSY BEGIN:VFREEBUSY UID:20071005T133225Z-00001-B@example.com DTSTAMP:20071005T133225Z COMMENT:If necessary, I can try to rearrange my agenda FREEBUSY;FBTYPE=BUSY-TENTATIVE:20080401T160000Z/PT1H END:VFREEBUSY END:VIMPRECISEEVENT The following is an example of a "VIMPRECISEEVENT" calendar component that describes a dental treatment with total duration of 10 hours, for which 20% have been completed. The remaining 8 hours can be scheduled on appointments of at least 1 hour and no more than 2 hours. The "VAVAILABILITY" component specifies a 4:00 PM to 6:00 PM recurring availability on Tuesdays and Thursdays, from March 15th to April 15th. The "VFREEBUSY" component also overrides the "VAVAILABILITY" component between 4:00 PM and 5:00 PM on April 1st and specifies an additional free interval from 6:00 PM to 7:00 PM on April 3rd. Silva & Drummond Expires June 22, 2008 [Page 8] Internet-Draft Imprecise and alternative events December 2007 BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com DTSTAMP:20071005T133225Z SUMMARY:Dentist DURATION:PT10H PERCENT-COMPLETE:20 MIN-GRANULARITY:PT1H MAX-GRANULARITY:PT2H BEGIN:VAVAILABILITY UID:20071005T133225Z-00001-A@example.com DTSTAMP:20071005T133225Z DTSTART:20080315T160000Z BEGIN:AVAILABLE UID:20071005T133225Z-00001-A1@example.com RANK:95 DTSTART:20080315T160000Z DTEND:20080415T180000Z RRULE:FREQ=WEEKLY;BYDAY=TU,TH END:AVAILABLE END:VAVAILABILITY BEGIN:VFREEBUSY UID:20071005T133225Z-00001-B@example.com DTSTAMP:20071005T133225Z FREEBUSY;FBTYPE=BUSY;RANK=33:20080401T160000Z/PT1H FREEBUSY;FBTYPE=FREE;RANK=60:20080403T180000Z/PT1H END:VFREEBUSY END:VIMPRECISEEVENT 3.2. Alternative Events Component Component Name: VALTERNATIVEEVENTS Purpose: Provide a grouping of event components ("VEVENT" and "VIMPRECISEEVENT") that represent alternative event descriptions. Format Definition: A "VALTERNATIVEEVENTS" calendar component is defined by the following notation: Silva & Drummond Expires June 22, 2008 [Page 9] Internet-Draft Imprecise and alternative events December 2007 alternativeeventsc = "BEGIN" ":" "VALTERNATIVEEVENTS" CRLF alternativeeventsprop *eventc *impreciseeventc "END" ":" "VALTERNATIVEEVENTS" CRLF alternativeeventsprop = *( ; the following are REQUIRED, ; but MUST NOT occur more than once dtstamp / uid / ; the following are OPTIONAL, ; but MUST NOT occur more than once class / created / description / geo / last-mod / location / organizer / priority / seq / status / summary / transp / url / ; the following are OPTIONAL, ; and MAY occur more than once attach / attendee / categories / comment / contact / rstatus / related / resources / x-prop / iana-prop ) Description: A "VALTERNATIVEEVENTS" calendar component is a grouping of component properties, including at least two event components, that represents a schedulable amount of time, described in terms of alternative event descriptions, for which exact property values are not specified. As opposed to a regular event represented by a "VEVENT" component, a "VALTERNATIVEEVENTS" does not represent a scheduled amount of time on a calendar, but an event with multiple possible alternatives that, once having its properties defined, can be represented by a "VEVENT" component. If specified on a "VALTERNATIVEEVENTS" component, OPTIONAL properties SHOULD also have their values interpreted as the default values for the properties of each grouped event component. In this case, if also present on a grouped event component, an OPTIONAL property overrides its default value. Silva & Drummond Expires June 22, 2008 [Page 10] Internet-Draft Imprecise and alternative events December 2007 Example: The following is an example of a "VALTERNATIVEEVENTS" calendar component used to represent an event that can take one of the descriptions represented by the "VEVENT" and "VIMPRECISEEVENT" components. Note that the "COMMENT" property default value specified by the alternative events component is overridden within the regular event component. BEGIN:VALTERNATIVEEVENTS UID:20071005T133225Z-00001@example.com DTSTAMP:20071005T133225Z SUMMARY:Quick interop test COMMENT:Trying the options that seem most likely to be accepted... BEGIN:VEVENT UID:20071005T133225Z-00001-A@example.com DTSTAMP:20071005T133225Z DTSTART:20080406T090000Z DTEND:20080405T120000Z RANK:100 COMMENT:It would be perfect if we could meet at that same time! END:VEVENT BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001-B@example.com DTSTAMP:20071005T133225Z RANK:70 BEGIN:VAVAILABILITY UID:20071005T133225Z-00001-B-A@example.com DTSTART:20080315T160000Z COMMENT:I myself could attend at any of these times. BEGIN:AVAILABLE UID:20071005T133225Z-00001-B-A1@example.com RANK:80 DTSTART:20080315T140000Z DTEND:20080415T180000Z RRULE:FREQ=WEEKLY;BYDAY=TU,TH END:AVAILABLE END:VAVAILABILITY BEGIN:VFREEBUSY UID:20071005T133225Z-00001-B-B@example.com DTSTAMP:20071005T133225Z FREEBUSY;FBTYPE=BUSY;RANK=33:20080401T160000Z/PT1H FREEBUSY;FBTYPE=FREE;RANK=60:20080403T180000Z/PT1H END:VFREEBUSY END:VIMPRECISEEVENT END:VALTERNATIVEEVENTS Silva & Drummond Expires June 22, 2008 [Page 11] Internet-Draft Imprecise and alternative events December 2007 3.3. Minimum Granularity Component Property Property Name: MIN-GRANULARITY Purpose: This property is used to convey the minimum granularity of an imprecise event. Value Type: DURATION Property Parameters: IANA and non-standard property parameters can be specified on this property. Conformance: This property can be specified once in a "VIMPRECISEEVENT". Description: This property defines the minimum duration that an event to be scheduled in order to accomplish a liquid task described by an imprecise event must have. Format Definition: This property is defined by the following notation: min-granularity = "MIN-GRANULARITY" min-granulparam ":" dur-value CRLF min-granulparam = *(";" other-param) Example: The following is an example of this property to show a minimum granularity of 30 minutes. MIN-GRANULARITY:PT30M 3.4. Maximum Granularity Component Property Property Name: MAX-GRANULARITY Purpose: This property is used to convey the maximum granularity of an imprecise event. Value Type: DURATION Property Parameters: IANA and non-standard property parameters can be specified on this property. Conformance: This property can be specified once in a "VIMPRECISEEVENT". Silva & Drummond Expires June 22, 2008 [Page 12] Internet-Draft Imprecise and alternative events December 2007 Description: This property defines the maximum duration that an event to be scheduled in order to accomplish a liquid task described by an imprecise event must have. Format Definition: This property is defined by the following notation: max-granularity = "MAX-GRANULARITY" max-granulparam ":" dur-value CRLF max-granulparam = *(";" other-param) Example: The following is an example of this property to show a maximum granularity of 2 hours. MAX-GRANULARITY:PT2H 3.5. Rank Component Property Property Name: RANK Purpose: This property is used to convey the percent rank for regular and imprecise event components on the context of alternative events, and for availability components on the context of an imprecise event. Value Type: INTEGER Property Parameters: IANA and non-standard property parameters can be specified on this property. Conformance: This property can be specified once in a "VEVENT" or "VIMPRECISEEVENT" calendar component grouped by a "VALTERNATIVEEVENTS" calendar component. This property can be specified once in an "AVAILABLE" sub-component of a "VAVAILABILITY" component. Description: The property value is a positive integer between zero and one hundred. A value of "0" indicates the lowest possible rank. A value of "100" indicates the highest possible rank. The rank may express the preference or relative availability of the calendar user regarding the event description or available periods of time it refers to. Format Definition: This property is defined by the following notation: Silva & Drummond Expires June 22, 2008 [Page 13] Internet-Draft Imprecise and alternative events December 2007 rank = "RANK" rankparam ":" integer CRLF rankparam = *(";" other-param) Example: The following is an example of this property to show a 40% rank. RANK:40 3.6. Rank Property Parameter Parameter Name: RANK Purpose: To convey a percent rank for the property value. Format Definition: This property parameter is defined by the following notation: rankpparam = "RANK" "=" integer Description: The parameter value is a positive integer between zero and one hundred. A value of "0" indicates the lowest possible rank. A value of "100" indicates the highest possible rank. This parameter can be used on the "FREEBUSY" property to indicate the rank of the period of time described by it. Example: The following is an example of this parameter to represent a 40% rank for an interval specified by a "FREEBUSY" property. FREEBUSY;FBTYPE=FREE;RANK=40:20080401T160000Z/PT1H 4. iTIP Extensions The table below shows various combinations of calendar components and the method types that this memo supports. +----------------+-----------------+--------------------+ | | VIMPRECISEEVENT | VALTERNATIVEEVENTS | +----------------+-----------------+--------------------+ | PUBLISH | Yes | Yes | | REQUEST | Yes | Yes | | REPLY | Yes | Yes | | ADD | No | No | | CANCEL | Yes | Yes | | REFRESH | Yes | Yes | | COUNTER | Yes | Yes | Silva & Drummond Expires June 22, 2008 [Page 14] Internet-Draft Imprecise and alternative events December 2007 | DECLINECOUNTER | Yes | Yes | +----------------+-----------------+--------------------+ Implementations of this memo MUST support interchangeable use of VEVENT, VIMPRECISEEVENT and VALTERNATIVEEVENTS components that correspond to a same event. This applies for the PUBLISH, REQUEST and COUNTER methods, as described below. PUBLISH: Any of the event components can be interchangeably updated by an "Organizer" with a PUBLISH method. For instance, a VIMPRECISEEVENT can be replaced by a VALTERNATIVEEVENTS description that corresponds to an updated version of the event. REQUEST: Any of the event components can be interchangeably updated by an "Organizer" with a REQUEST method. For instance, a REFRESH on an obsolete VIMPRECISEEVENT component can return a VEVENT component that corresponds to an updated version of the event. COUNTER: Any of the event components can be interchangeably countered by an "Attendee" with a COUNTER method. For instance, a VEVENT can be used to COUNTER a VIMPRECISEEVENT proposal. To be interpreted as different representations of the same event, VEVENT, VIMPRECISEEVENT and VALTERNATIVEEVENTS components MUST keep the original UID, updating the SEQUENCE property accordingly with the same rules described on [I-D.ietf-calsify-2446bis]. The REPLY, CANCEL, REFRESH and DECLINECOUNTER methods MUST NOT be issued interchangeably, i.e., they can be used only with the same component type. For instance, a VIMPRECISEEVENT cannot be cancelled by using a VEVENT CANCEL method with the same UID. Each method type is defined in terms of its associated components and properties. Some components and properties are required, some are optional and others are excluded. The restrictions are expressed in this document using a simple "restriction table", as defined in [I-D.ietf-calsify-2446bis]. 4.1. Methods for VIMPRECISEEEVENT Calendar Components This section defines the property set restrictions for the method types that are applicable to the "VIMPRECISEEEVENT" calendar component. Each method is defined using a table that clarifies the property constraints that define the particular method. The following summarizes the methods that are defined for the "VIMPRECISEEEVENT" calendar component. Silva & Drummond Expires June 22, 2008 [Page 15] Internet-Draft Imprecise and alternative events December 2007 +----------------+--------------------------------------------------+ | Method | Description | +----------------+--------------------------------------------------+ | PUBLISH | Post notification of an imprecise event. Used | | | primarily as a method of advertising the | | | existence of an imprecise event. | | | | | REQUEST | Make a request for an imprecise event. This is | | | an explicit invitation to one or more | | | "Attendees". Imprecise event requests are also | | | used to update or change an existing event. | | | Clients that cannot handle REQUEST may degrade | | | the event to view it as a PUBLISH. | | | | | REPLY | Reply to an imprecise event request. Clients | | | may set their status ("partstat") to ACCEPTED, | | | DECLINED, TENTATIVE, or DELEGATED. | | | | | CANCEL | Cancel an existing imprecise event. | | | | | REFRESH | A request is sent to an "Organizer" by an | | | "Attendee" asking for the latest version of an | | | imprecise event to be resent to the requester. | | | | | COUNTER | Counter a REQUEST with an alternative proposal, | | | Sent by an "Attendee" to the "Organizer". | | | | | DECLINECOUNTER | Decline a counter proposal. Sent to an | | | "Attendee" by the "Organizer". | +----------------+--------------------------------------------------+ 4.1.1. PUBLISH The "PUBLISH" method in a "VIMPRECISEEEVENT" calendar component is an unsolicited posting of an iCalendar object. Any CU may add published components to their calendar. The "Organizer" MUST be present in a published iCalendar component. "Attendees" MUST NOT be present. Its expected usage is for encapsulating an arbitrary imprecise event as an iCalendar object. The "Organizer" may subsequently update (with another "PUBLISH" method) or cancel (with a "CANCEL" method) a previously published "VIMPRECISEEVENT" calendar component. This method type is an iCalendar object that conforms to the following property constraints: Silva & Drummond Expires June 22, 2008 [Page 16] Internet-Draft Imprecise and alternative events December 2007 +---------------------+----------+----------------------------------+ | Component/Property | Presence | Comment | +---------------------+----------+----------------------------------+ | METHOD | 1 | MUST equal "PUBLISH" | | | | | | VIMPRECISEEVENT | 1 | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SUMMARY | 1 | Can be null | | UID | 1 | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present | | | | if 0 | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DUE | 0 or 1 | | | DURATION | 0 or 1 | MUST be present if PERCENT is | | | | present | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | MIN-GRANULARITY | 0 or 1 | if MAX-GRANULARITY is present, | | | | SHOULD be less than it | | MAX-GRANULARITY | 0 or 1 | if MIN-GRANULARITY is present, | | | | SHOULD be more than it | | PERCENT | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | | STATUS | 0 or 1 | MAY be one of | | | | TENTATIVE/CONFIRMED/CANCELLED | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | ATTENDEE | 0 | | | RANK | 0 | | | REQUEST-STATUS | 0 | | | | | | | VAVAILABILITY | 0+ | | | UID | 1 | | | BUSYTYPE | 0 or 1 | | | CATEGORIES | 0+ | | Silva & Drummond Expires June 22, 2008 [Page 17] Internet-Draft Imprecise and alternative events December 2007 | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DTSTAMP | 0 or 1 | | | DTSTART | 0 or 1 | | | DTEND | 0 or 1 | if present, DURATION MUST NOT | | | | occur | | DURATION | 0 or 1 | if present, DTEND MUST NOT occur | | LAST-MODIFIED | 0 or 1 | | | ORGANIZER | 0 or 1 | MUST contain the address of | | | | originator of available time | | | | data | | SUMMARY | 0 or 1 | | | URL | 0 or 1 | Specifies available time URL | | X-PROPERTY | 0+ | | | SEQUENCE | 0 | | | | | | | AVAILABLE | 1+ | | | UID | 1 | | | DTSTART | 1 | | | DTEND | 0 or 1 | if present, DURATION MUST NOT | | | | occur | | DURATION | 0 or 1 | if present, DTEND MUST NOT occur | | DTSTAMP | 0 or 1 | | | CATEGORIES | 0+ | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | EXDATE | 0+ | | | LAST-MODIFIED | 0 or 1 | | | RANK | 0 or 1 | | | RDATE | 0+ | | | RECURRENCE-ID | 0 or 1 | | | RRULE | 0 or 1 | | | SUMMARY | 0 or 1 | | | X-PROPERTY | 0+ | | | | | | | VFREEBUSY | 0+ | | | DTSTART | 1 | DateTime values must be in UTC | | DTEND | 1 | DateTime values must be in UTC | | FREEBUSY | 1+ | MUST NOT be "BUSY-UNAVAILABLE" | | | | time. Multiple instances are | | | | allowed. Multiple instances | | | | must be sorted in ascending | | | | order | | ORGANIZER | 1 | MUST contain the address of | | | | originator of free time data | | UID | 1 | | Silva & Drummond Expires June 22, 2008 [Page 18] Internet-Draft Imprecise and alternative events December 2007 | COMMENT | 0+ | | | CONTACT | 0 or 1 | | | DTSTAMP | 0 or 1 | | | URL | 0 or 1 | Specifies free time URL | | X-PROPERTY | 0+ | | | ATTENDEE | 0 | | | DURATION | 0 | | | REQUEST-STATUS | 0 | | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEVENTS | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +---------------------+----------+----------------------------------+ 4.1.2. REQUEST The "REQUEST" method in a "VIMPRECISEEEVENT" calendar component provides the following scheduling negotiation functions: o Invite "Attendees" to an imprecise event o Response to a REFRESH request o Update the details of an existing imprecise event o Update the status of "Attendees" of an existing imprecise event o Reconfirm an existing imprecise event o Forward a "VIMPRECISEEEVENT" to another uninvited CU o For an existing "VIMPRECISEEEVENT" calendar component, delegate the role of "Attendee" to another CU o For an existing "VIMPRECISEEEVENT" calendar component, changing the role of "Organizer" to another CU This method type is an iCalendar object that conforms to the following property constraints: Silva & Drummond Expires June 22, 2008 [Page 19] Internet-Draft Imprecise and alternative events December 2007 +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "REQUEST" | | | | | | VIMPRECISEEVENT | 1 | | | ATTENDEE | 1+ | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | SUMMARY | 1 | Can be null | | UID | 1 | | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DUE | 0 or 1 | | | DURATION | 0 or 1 | MUST be present if PERCENT is | | | | present | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | MIN-GRANULARITY | 0 or 1 | if MAX-GRANULARITY is present, | | | | SHOULD be less than it | | MAX-GRANULARITY | 0 or 1 | if MIN-GRANULARITY is present, | | | | SHOULD be more than it | | PERCENT | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | | STATUS | 0 or 1 | MAY be one of TENTATIVE/CONFIRMED | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | RANK | 0 | | | | | | | VAVAILABILITY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VFREEBUSY | 0+ | Same restrictions than those for | | | | the PUBLISH method | Silva & Drummond Expires June 22, 2008 [Page 20] Internet-Draft Imprecise and alternative events December 2007 | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEVENTS | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ Analogously to the "REQUEST" method in a "VEVENT" component, the use cases described in sections 3.2.2.2 to 3.2.2.7 of [I-D.ietf-calsify-2446bis] apply for the "VIMPRECISEEVENT" calendar component. 4.1.3. REPLY The "REPLY" method in a "VIMPRECISEEEVENT" calendar component is used to respond (e.g., accept or decline) to a "REQUEST" or to reply to a delegation "REQUEST". When used to provide a delegation response, the "Delegator" SHOULD include the calendar address of the "Delegate" on the "DELEGATED-TO" property parameter of the "Delegator's" "ATTENDEE" property. The "Delegate" SHOULD include the calendar address of the "Delegator" on the "DELEGATED-FROM" property parameter of the "Delegate's" "ATTENDEE" property. The "REPLY" method may also be used to respond to an unsuccessful "REQUEST" method. The "Organizer" of an imprecise event may receive the "REPLY" method from a CU not in the original "REQUEST". For example, a "REPLY" may be received from a "Delegate" to an event. In addition, the "REPLY" method may be received from an unknown CU (a "Party Crasher"). This uninvited "Attendee" may be accepted, or the "Organizer" may cancel the event for the uninvited "Attendee" by sending a "CANCEL" method to the uninvited "Attendee". Silva & Drummond Expires June 22, 2008 [Page 21] Internet-Draft Imprecise and alternative events December 2007 An "Attendee" can include a message to the "Organizer" using the "COMMENT" property. For example, if the user indicates tentative acceptance and wants to let the "Organizer" know why, the reason can be expressed in the "COMMENT" property value. The "Organizer" may also receive a "REPLY" from one CU on behalf of another. Like the scenario enumerated above for the "Organizer", "Attendees" may have another CU respond on their behalf. This is done using the "SENT-BY" parameter. The optional properties listed in the table below (those listed as "0+" or "0 or 1") MUST NOT be changed from those of the original request. If property changes are desired the COUNTER message must be used. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "REQUEST" | | | | | | VIMPRECISEEVENT | 1 | | | ATTENDEE | 1+ | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | SUMMARY | 1 | Can be null | | UID | 1 | | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DUE | 0 or 1 | | | DURATION | 0 or 1 | MUST be present if PERCENT is | | | | present | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | MIN-GRANULARITY | 0 or 1 | if MAX-GRANULARITY is present, | | | | SHOULD be less than it | Silva & Drummond Expires June 22, 2008 [Page 22] Internet-Draft Imprecise and alternative events December 2007 | MAX-GRANULARITY | 0 or 1 | if MIN-GRANULARITY is present, | | | | SHOULD be more than it | | PERCENT | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | | STATUS | 0 or 1 | | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | RANK | 0 | | | | | | | VAVAILABILITY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VFREEBUSY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEVENTS | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.1.4. CANCEL The "CANCEL" method in a "VIMPRECISEEEVENT" calendar component is used to send a cancellation notice of an existing imprecise event request to the "Attendees". The message is sent by the "Organizer" of the event. When a "VIMPRECISEEEVENT" is cancelled, the "SEQUENCE" property value Silva & Drummond Expires June 22, 2008 [Page 23] Internet-Draft Imprecise and alternative events December 2007 MUST be incremented. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "CANCEL" | | | | | | VIMPRECISEEVENT | 1 | | | ATTENDEE | 1+ | MUST include all "Attendees" | | | | being removed the event. MUST | | | | include all "Attendees" if the | | | | entire event is cancelled. | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | SUMMARY | 1 | Can be null | | UID | 1 | MUST be the UID of the original | | | | REQUEST | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DUE | 0 or 1 | | | DURATION | 0 or 1 | MUST be present if PERCENT is | | | | present | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | MIN-GRANULARITY | 0 or 1 | if MAX-GRANULARITY is present, | | | | SHOULD be less than it | | MAX-GRANULARITY | 0 or 1 | if MIN-GRANULARITY is present, | | | | SHOULD be more than it | | PERCENT | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | Silva & Drummond Expires June 22, 2008 [Page 24] Internet-Draft Imprecise and alternative events December 2007 | STATUS | 0 or 1 | MUST be set to CANCELLED. If | | | | uninviting specific "Attendees" | | | | then MUST NOT be included | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | RANK | 0 | | | | | | | VAVAILABILITY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VFREEBUSY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEVENTS | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.1.5. REFRESH The "REFRESH" method in a "VIMPRECISEEEVENT" calendar component is used by "Attendees" of an existing imprecise event to request an updated description from the event "Organizer". The "REFRESH" method must specify the "UID" property of the event to update. The "Organizer" responds with the latest description and version of the event. This method type is an iCalendar object that conforms to the following property constraints: Silva & Drummond Expires June 22, 2008 [Page 25] Internet-Draft Imprecise and alternative events December 2007 +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "REFRESH" | | | | | | VIMPRECISEEVENT | 1 | | | ATTENDEE | 1 | MUST be the address of requester | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | UID | 1 | MUST be the UID associated with | | | | original REQUEST | | COMMENT | 0+ | | | X-PROPERTY | 0+ | | | ATTACH | 0 | | | CATEGORIES | 0 | | | CLASS | 0 | | | CONTACT | 0 | | | CREATED | 0 | | | DESCRIPTION | 0 | | | DUE | 0 | | | DURATION | 0 | | | GEO | 0 | | | LAST-MODIFIED | 0 | | | LOCATION | 0 | | | MIN-GRANULARITY | 0 | | | MAX-GRANULARITY | 0 | | | PERCENT | 0 | | | PRIORITY | 0 | | | RANK | 0 | | | RELATED-TO | 0 | | | REQUEST-STATUS | 0 | | | RESOURCES | 0 | | | RRULE | 0 | | | SEQUENCE | 0 | | | STATUS | 0 | | | SUMMARY | 0 | | | TRANSP | 0 | | | URL | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEEVENTS | 0 | | Silva & Drummond Expires June 22, 2008 [Page 26] Internet-Draft Imprecise and alternative events December 2007 | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTIMEZONE | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.1.6. COUNTER The "COUNTER" method in a "VIMPRECISEEEVENT" calendar component is used by an "Attendee" of an existing event (a regular event, an imprecise event, or an alternatives event) to submit to the "Organizer" a counter proposal to the event description. The "Attendee" sends this message to the "Organizer" of the event. The counter proposal is an iCalendar object consisting of a VIMPRECISEEEVENT calendar component describing the complete description of the alternate event. The "Organizer" rejects the counter proposal by sending the "Attendee" a VIMPRECISEEEVENT "DECLINECOUNTER" method. The "Organizer" accepts the counter proposal by rescheduling the event as described in section 3.2.2.1 of [I-D.ietf-calsify-2446bis]. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "COUNTER" | | | | | | VIMPRECISEEVENT | 1 | | | DTSTAMP | 1 | | | ORGANIZER | 1 | MUST be the "Organizer" of the | | | | original event | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | SUMMARY | 1 | Can be null | | UID | 1 | MUST be the UID associated with | | | | the REQUEST being countered | | ATTACH | 0+ | | Silva & Drummond Expires June 22, 2008 [Page 27] Internet-Draft Imprecise and alternative events December 2007 | ATTENDEE | 0+ | Can also be used to propose other | | | | "Attendees" | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DUE | 0 or 1 | | | DURATION | 0 or 1 | MUST be present if PERCENT is | | | | present | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | MIN-GRANULARITY | 0 or 1 | if MAX-GRANULARITY is present, | | | | SHOULD be less than it | | MAX-GRANULARITY | 0 or 1 | if MIN-GRANULARITY is present, | | | | SHOULD be more than it | | PERCENT | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | | STATUS | 0 or 1 | Value must be one of | | | | CONFIRMED/TENATIVE/CANCELLED | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | RANK | 0 | | | | | | | VAVAILABILITY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VFREEBUSY | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEVENTS | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | Silva & Drummond Expires June 22, 2008 [Page 28] Internet-Draft Imprecise and alternative events December 2007 | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.1.7. DECLINECOUNTER The "DECLINECOUNTER" method in a "VIMPRECISEEEVENT" calendar component is used by the "Organizer" of an imprecise event to reject a counter proposal submitted by an "Attendee". The "Organizer" must send the "DECLINECOUNTER" message to the "Attendee" that sent the "COUNTER" method to the "Organizer". This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "DECLINECOUNTER" | | | | | | VIMPRECISEEVENT | 1 | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | UID | 1 | MUST be same UID specified in | | | | original REQUEST and subsequent | | | | COUNTER | | COMMENT | 0+ | | | REQUEST-STATUS | 0+ | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | X-PROPERTY | 0+ | | | ATTACH | 0 | | | ATTENDEE | 0 | | | CATEGORIES | 0 | | | CLASS | 0 | | | CONTACT | 0 | | | CREATED | 0 | | | DESCRIPTION | 0 | | | DUE | 0 | | | DURATION | 0 | | | GEO | 0 | | | LAST-MODIFIED | 0 | | Silva & Drummond Expires June 22, 2008 [Page 29] Internet-Draft Imprecise and alternative events December 2007 | LOCATION | 0 | | | MIN-GRANULARITY | 0 | | | MAX-GRANULARITY | 0 | | | PERCENT | 0 | | | PRIORITY | 0 | | | RANK | 0 | | | RELATED-TO | 0 | | | RESOURCES | 0 | | | RRULE | 0 | | | STATUS | 0 | | | SUMMARY | 0 | | | TRANSP | 0 | | | URL | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VALTERNATIVEEVENTS | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | | | | | | VTIMEZONE | 0 | | +--------------------+----------+-----------------------------------+ 4.2. Methods for VALTERNATIVEEVENTS Calendar Components This section defines the property set restrictions for the method types that are applicable to the "VALTERNATIVEEVENTS" calendar component. Each method is defined using a table that clarifies the property constraints that define the particular method. The following summarizes the methods that are defined for the "VALTERNATIVEEVENTS" calendar component. Silva & Drummond Expires June 22, 2008 [Page 30] Internet-Draft Imprecise and alternative events December 2007 +----------------+--------------------------------------------------+ | Method | Description | +----------------+--------------------------------------------------+ | PUBLISH | Post notification of an alternatives event. | | | Used primarily as a method of advertising the | | | existence of an alternatives event. | | | | | REQUEST | Make a request for an alternatives event. This | | | is an explicit invitation to one or more | | | "Attendees". Alternatives event requests are | | | also used to update or change an existing event. | | | Clients that cannot handle REQUEST may degrade | | | the event to view it as a PUBLISH. | | | | | REPLY | Reply to an alternatives event request. Clients | | | may set their status ("partstat") to ACCEPTED, | | | DECLINED, TENTATIVE, or DELEGATED. | | | | | CANCEL | Cancel an existing alternatives event. | | | | | REFRESH | A request is sent to an "Organizer" by an | | | "Attendee" asking for the latest version of an | | | alternatives event to be resent to the | | | requester. | | | | | COUNTER | Counter a REQUEST with an alternative proposal, | | | Sent by an "Attendee" to the "Organizer". | | | | | DECLINECOUNTER | Decline a counter proposal. Sent to an | | | "Attendee" by the "Organizer". | +----------------+--------------------------------------------------+ 4.2.1. PUBLISH The "PUBLISH" method in a "VALTERNATIVEEVENTS" calendar component is an unsolicited posting of an iCalendar object. Any CU may add published components to their calendar. The "Organizer" MUST be present in a published iCalendar component. "Attendees" MUST NOT be present. Its expected usage is for encapsulating an arbitrary alternatives event as an iCalendar object. The "Organizer" may subsequently update (with another "PUBLISH" method) or cancel (with a "CANCEL" method) a previously published "VALTERNATIVEEVENTS" calendar component. This method type is an iCalendar object that conforms to the following property constraints: Silva & Drummond Expires June 22, 2008 [Page 31] Internet-Draft Imprecise and alternative events December 2007 +---------------------+----------+----------------------------------+ | Component/Property | Presence | Comment | +---------------------+----------+----------------------------------+ | METHOD | 1 | MUST equal "PUBLISH" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1+ | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present | | | | if 0 | | SUMMARY | 1 | Can be null | | UID | 1 | | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | STATUS | 0 or 1 | MAY be one of | | | | TENTATIVE/CONFIRMED/CANCELLED | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | | | | | VEVENT | 0+ | MUST be one or more of VEVENT | | | | and VIMPRECISEEVENT. | | DTSTART | 1 | | | UID | 1 | Components with the same UID | | | | MUST be interpreted as a single | | | | event with instance-specific | | | | information. Components with | | | | different UID MUST be | | | | interpreted as different event | | | | alternatives. | | ATTACH | 0+ | | | ATTENDEE | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | Silva & Drummond Expires June 22, 2008 [Page 32] Internet-Draft Imprecise and alternative events December 2007 | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DTSTAMP | 0 or 1 | | | DTEND | 0 or 1 | if present DURATION MUST NOT be | | | | present | | DURATION | 0 or 1 | if present DTEND MUST NOT be | | | | present | | EXDATE | 0+ | | | EXRULE | 0+ | | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | PRIORITY | 0 or 1 | | | ORGANIZER | 0 or 1 | | | RANK | 0+ | | | RDATE | 0+ | | | RECURRENCE-ID | 0 or 1 | only if referring to an instance | | | | of a recurring calendar | | | | component. Otherwise it MUST | | | | NOT be present. | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | | STATUS | 0 or 1 | MAY be one of | | | | TENTATIVE/CONFIRMED/CANCELLED | | SUMMARY | 0 or 1 | Can be null | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | SEQUENCE | 0 | | | | | | | VIMPRECISEEVENT | 0+ | MUST be one or more of VEVENT | | | | and VIMPRECISEEVENT | | UID | 1 | | | ATTACH | 0+ | | | ATTENDEE | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | DTSTAMP | 0 or 1 | | | DUE | 0 or 1 | | Silva & Drummond Expires June 22, 2008 [Page 33] Internet-Draft Imprecise and alternative events December 2007 | DURATION | 0 or 1 | MUST be present if DUE is | | | | present | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | MIN-GRANULARITY | 0 or 1 | if MAX-GRANULARITY is present, | | | | SHOULD be less than it | | MAX-GRANULARITY | 0 or 1 | if MIN-GRANULARITY is present, | | | | SHOULD be more than it | | ORGANIZER | 0 or 1 | | | PERCENT | 0 or 1 | | | PRIORITY | 0 or 1 | | | RANK | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | RRULE | 0+ | | | STATUS | 0 or 1 | MAY be one of | | | | TENTATIVE/CONFIRMED/CANCELLED | | SUMMARY | 0 or 1 | Can be null | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | SEQUENCE | 0 | | | | | | | VAVAILABILITY | 0+ | Same restrictions than those for | | | | the PUBLISH method in the | | | | VIMPRECISEEVENT component | | | | | | VFREEBUSY | 0+ | Same restrictions than those for | | | | the PUBLISH method in the | | | | VIMPRECISEEVENT component | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | Silva & Drummond Expires June 22, 2008 [Page 34] Internet-Draft Imprecise and alternative events December 2007 | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +---------------------+----------+----------------------------------+ 4.2.2. REQUEST The "REQUEST" method in a "VALTERNATIVEEVENTS" calendar component provides the following scheduling negotiation functions: o Invite "Attendees" to an alternative events o Response to a REFRESH request o Update the details of an existing alternative events o Update the status of "Attendees" of an existing alternative events o Reconfirm an existing alternatives event o Forward a "VALTERNATIVEEVENTS" to another uninvited CU o For an existing "VALTERNATIVEEVENTS" calendar component, delegate the role of "Attendee" to another CU o For an existing "VALTERNATIVEEVENTS" calendar component, changing the role of "Organizer" to another CU The "Organizer" originates the "REQUEST". The recipients of the "REQUEST" method are the CUs invited to the event, the "Attendees". "Attendees" use the "REPLY" method to convey attendance status to the "Organizer". The "UID" and "SEQUENCE" properties are used to distinguish the various uses of the "REQUEST" method. If the "UID" property value in the "REQUEST" is not found on the recipient's calendar, then the "REQUEST" is for a new "VALTERNATIVEEVENTS" calendar component. If the "UID" property value is found on the recipient's calendar, then the "REQUEST" is for an update, or a reconfirm of the "VALTERNATIVEEVENTS" calendar component. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "REQUEST" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1+ | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | Silva & Drummond Expires June 22, 2008 [Page 35] Internet-Draft Imprecise and alternative events December 2007 | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | SUMMARY | 1 | Can be null | | UID | 1 | | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | STATUS | 0 or 1 | MAY be one of TENTATIVE/CONFIRMED | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | | | | | VEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VIMPRECISEEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | Silva & Drummond Expires June 22, 2008 [Page 36] Internet-Draft Imprecise and alternative events December 2007 | VTODO | 0 | | +--------------------+----------+-----------------------------------+ Analogously to the "REQUEST" method in a "VEVENT" component, the use cases described in sections 3.2.2.2 to 3.2.2.7 of [I-D.ietf-calsify-2446bis] apply for the "VALTERNATIVEEVENTS" calendar component. 4.2.3. REPLY The "REPLY" method in a "VALTERNATIVEEVENTS" calendar component is used to respond (e.g., accept or decline) to a "REQUEST" or to reply to a delegation "REQUEST". When used to provide a delegation response, the "Delegator" SHOULD include the calendar address of the "Delegate" on the "DELEGATED-TO" property parameter of the "Delegator's" "ATTENDEE" property. The "Delegate" SHOULD include the calendar address of the "Delegator" on the "DELEGATED-FROM" property parameter of the "Delegate's" "ATTENDEE" property. The "REPLY" method may also be used to respond to an unsuccessful "REQUEST" method. The "Organizer" of an alternatives event may receive the "REPLY" method from a CU not in the original "REQUEST". For example, a "REPLY" may be received from a "Delegate" to an event. In addition, the "REPLY" method may be received from an unknown CU (a "Party Crasher"). This uninvited "Attendee" may be accepted, or the "Organizer" may cancel the event for the uninvited "Attendee" by sending a "CANCEL" method to the uninvited "Attendee". An "Attendee" can include a message to the "Organizer" using the "COMMENT" property. For example, if the user indicates tentative acceptance and wants to let the "Organizer" know why, the reason can be expressed in the "COMMENT" property value. The "Organizer" may also receive a "REPLY" from one CU on behalf of another. Like the scenario enumerated above for the "Organizer", "Attendees" may have another CU respond on their behalf. This is done using the "SENT-BY" parameter. The optional properties listed in the table below (those listed as "0+" or "0 or 1") MUST NOT be changed from those of the original request. If property changes are desired the COUNTER message must be used. This method type is an iCalendar object that conforms to the following property constraints: Silva & Drummond Expires June 22, 2008 [Page 37] Internet-Draft Imprecise and alternative events December 2007 +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "REPLY" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1 | MUST be the address of the | | | | Attendee replying | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST if non-zero, MUST be the | | | | sequence number of the original | | | | REQUEST. MAY be present if 0 | | SUMMARY | 0 or 1 | | | UID | 1 | MUST be the UID of the original | | | | REQUEST | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | STATUS | 0 or 1 | | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | | | | | VEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VIMPRECISEEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | Silva & Drummond Expires June 22, 2008 [Page 38] Internet-Draft Imprecise and alternative events December 2007 | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.2.4. CANCEL The "CANCEL" method in a "VALTERNATIVEEVENTS" calendar component is used to send a cancellation notice of an existing alternatives event request to the "Attendees". The message is sent by the "Organizer" of the event. When a "VALTERNATIVEEVENTS" is cancelled, the "SEQUENCE" property value MUST be incremented. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "CANCEL" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1 | MUST be the address of the | | | | Attendee replying | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST if non-zero, MUST be the | | | | sequence number of the original | | | | REQUEST. MAY be present if 0 | | SUMMARY | 0 or 1 | | | UID | 1 | MUST be the UID of the original | | | | REQUEST | | ATTACH | 0+ | | | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | Silva & Drummond Expires June 22, 2008 [Page 39] Internet-Draft Imprecise and alternative events December 2007 | DESCRIPTION | 0 or 1 | | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | STATUS | 0 or 1 | MUST be set to CANCELLED. If | | | | uninviting specific "Attendees" | | | | then MUST NOT be included. | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | | | | | VEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VIMPRECISEEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.2.5. REFRESH The "REFRESH" method in a "VALTERNATIVEEVENTS" calendar component is used by "Attendees" of an existing alternatives event to request an updated description from the event "Organizer". The "REFRESH" method must specify the "UID" property of the event to update. The "Organizer" responds with the latest description and version of the Silva & Drummond Expires June 22, 2008 [Page 40] Internet-Draft Imprecise and alternative events December 2007 event. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "REFRESH" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1 | MUST be the address of requester | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | UID | 1 | MUST be the UID associated with | | | | original REQUEST | | COMMENT | 0+ | | | X-PROPERTY | 0+ | | | ATTACH | 0 | | | CATEGORIES | 0 | | | CLASS | 0 | | | CONTACT | 0 | | | CREATED | 0 | | | DESCRIPTION | 0 | | | GEO | 0 | | | LAST-MODIFIED | 0 | | | LOCATION | 0 | | | PRIORITY | 0 | | | RELATED-TO | 0 | | | REQUEST-STATUS | 0 | | | RESOURCES | 0 | | | SEQUENCE | 0 | | | STATUS | 0 | | | SUMMARY | 0 | | | TRANSP | 0 | | | URL | 0 | | | | | | | VEVENT | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | Silva & Drummond Expires June 22, 2008 [Page 41] Internet-Draft Imprecise and alternative events December 2007 | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTIMEZONE | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 4.2.6. COUNTER The "COUNTER" method in a "VALTERNATIVEEVENTS" calendar component is used by an "Attendee" of an existing event (a regular event, an imprecise event, or an alternatives event) to submit to the "Organizer" a counter proposal to the event description. The "Attendee" sends this message to the "Organizer" of the event. The counter proposal is an iCalendar object consisting of a VALTERNATIVEEVENTS calendar component describing the complete description of the alternate event. The "Organizer" rejects the counter proposal by sending the "Attendee" a VALTERNATIVEEVENTS "DECLINECOUNTER" method. The "Organizer" accepts the counter proposal by rescheduling the event as described in section 3.2.2.1 of [I-D.ietf-calsify-2446bis]. This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "COUNTER" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1+ | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | SUMMARY | 1 | Can be null | | UID | 1 | MUST be the UID associated with | | | | original REQUEST | | ATTACH | 0+ | | Silva & Drummond Expires June 22, 2008 [Page 42] Internet-Draft Imprecise and alternative events December 2007 | CATEGORIES | 0+ | | | CLASS | 0 or 1 | | | COMMENT | 0+ | | | CONTACT | 0+ | | | CREATED | 0 or 1 | | | DESCRIPTION | 0 or 1 | | | GEO | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | | | LOCATION | 0 or 1 | | | PRIORITY | 0 or 1 | | | RELATED-TO | 0+ | | | REQUEST-STATUS | 0+ | | | RESOURCES | 0+ | | | STATUS | 0 or 1 | Value must be one of | | | | CONFIRMED/TENTATIVE/CANCELLED | | TRANSP | 0 or 1 | | | URL | 0 or 1 | | | X-PROPERTY | 0+ | | | | | | | VEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VIMPRECISEEVENT | 0+ | Same restrictions than those for | | | | the PUBLISH method | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ Silva & Drummond Expires June 22, 2008 [Page 43] Internet-Draft Imprecise and alternative events December 2007 4.2.7. DECLINECOUNTER The "DECLINECOUNTER" method in a "VALTERNATIVEEVENTS" calendar component is used by the "Organizer" of an alternative events to reject a counter proposal submitted by an "Attendee". The "Organizer" must send the "DECLINECOUNTER" message to the "Attendee" that sent the "COUNTER" method to the "Organizer". This method type is an iCalendar object that conforms to the following property constraints: +--------------------+----------+-----------------------------------+ | Component/Property | Presence | Comment | +--------------------+----------+-----------------------------------+ | METHOD | 1 | MUST equal "DECLINECOUNTER" | | | | | | VALTERNATIVEEVENTS | 1 | | | ATTENDEE | 1+ | | | DTSTAMP | 1 | | | ORGANIZER | 1 | | | UID | 1 | MUST be same UID specified in | | | | original REQUEST and subsequent | | | | COUNTER | | COMMENT | 0+ | | | REQUEST-STATUS | 0+ | | | SEQUENCE | 0 or 1 | MUST be present if value is | | | | greater than 0, MAY be present if | | | | 0 | | X-PROPERTY | 0+ | | | ATTACH | 0 | | | CATEGORIES | 0 | | | CLASS | 0 | | | CONTACT | 0 | | | CREATED | 0 | | | DESCRIPTION | 0 | | | GEO | 0 | | | LAST-MODIFIED | 0 | | | LOCATION | 0 | | | PRIORITY | 0 | | | RELATED-TO | 0 | | | RESOURCES | 0 | | | STATUS | 0 | | | SUMMARY | 0 | | | TRANSP | 0 | | | URL | 0 | | | | | | | VEVENT | 0 | | | | | | Silva & Drummond Expires June 22, 2008 [Page 44] Internet-Draft Imprecise and alternative events December 2007 | VIMPRECISEEVENT | 0 | | | | | | | VTIMEZONE | 0+ | MUST be present if any date/time | | | | refers to a timezone | | | | | | X-COMPONENT | 0+ | | | | | | | VALARM | 0 | | | | | | | VAVAILABILITY | 0 | | | | | | | VEVENT | 0 | | | | | | | VFREEBUSY | 0 | | | | | | | VIMPRECISEEVENT | 0 | | | | | | | VJOURNAL | 0 | | | | | | | VTODO | 0 | | +--------------------+----------+-----------------------------------+ 5. Examples These examples are complementary to those presented in [I-D.ietf-calsify-2446bis]. 5.1. Published Imprecise Event The iCalendar object below describes a published imprecise event, organized by a person "A", with the purpose to announce an event for which the exact start time is not defined yet. Silva & Drummond Expires June 22, 2008 [Page 45] Internet-Draft Imprecise and alternative events December 2007 BEGIN:VCALENDAR PRODID:-//Unicamp/iScheduler//EN METHOD:PUBLISH VERSION:2.0 BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com ORGANIZER:mailto:A@example.com DTSTAMP:20071005T133225Z SUMMARY:Department meeting DURATION:PT2H BEGIN:VFREEBUSY UID:20071005T133225Z-00001A@example.com DTSTAMP:20071005T133225Z FREEBUSY;FBTYPE=FREE:20080401T080000Z/20080401T120000Z FREEBUSY;FBTYPE=FREE:20080401T140000Z/20080401T180000Z END:VFREEBUSY END:VIMPRECISEEVENT END:VCALENDAR 5.2. An Imprecise Event Request The iCalendar object below describes a new version of the previous event, for which "B", "C" and "D" are invited to participate. The inclusion of "E" as a non-participant is the equivalent of a 'Cc' (carbon-copy) operation in email. BEGIN:VCALENDAR PRODID:-//Unicamp/iScheduler//EN METHOD:REQUEST VERSION:2.0 BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com SEQUENCE:1 ORGANIZER:mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:A@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=B:mailto:B@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=C:mailto:C@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=D:mailto:D@example.com ATTENDEE;RSVP=FALSE;TYPE=ROOM:conf_Big@example.com ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:E@example.com DTSTAMP:20071005T133225Z SUMMARY:Department meeting DURATION:PT2H BEGIN:VFREEBUSY UID:20071005T133225Z-00001A@example.com FREEBUSY;FBTYPE=FREE:20080401T080000Z/20080401T120000Z END:VFREEBUSY END:VIMPRECISEEVENT Silva & Drummond Expires June 22, 2008 [Page 46] Internet-Draft Imprecise and alternative events December 2007 END:VCALENDAR 5.3. Reply to an Imprecise Event Request The iCalendar object below describes an answer from "B", who accepts the event proposal from "A". BEGIN:VCALENDAR PRODID:-//Unicamp/iScheduler//EN METHOD:REPLY VERSION:2.0 BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com SEQUENCE:1 ORGANIZER:mailto:A@example.com ATTENDEE;PARTSTAT=ACCEPTED;CN=B:mailto:B@example.com REQUEST-STATUS:2.0;Success DTSTAMP:20071011T145000Z COMMENT:Perfect! I'll be there. END:VIMPRECISEEVENT END:VCALENDAR 5.4. Counter an Imprecise Event Request The iCalendar object below describes a counterproposal from "C", who offers more than one option for scheduling the event. The VALTERNATIVEEVENTS component refers to the same UID of the original VIMPRECISEEVENT REQUEST. Silva & Drummond Expires June 22, 2008 [Page 47] Internet-Draft Imprecise and alternative events December 2007 BEGIN:VCALENDAR PRODID:-//Unicamp/iScheduler//EN METHOD:COUNTER VERSION:2.0 BEGIN:VALTERNATIVEEVENTS UID:20071005T133225Z-00001@example.com SEQUENCE:1 ORGANIZER:mailto:A@example.com ATTENDEE;ROLE=CHAIR;CN=A:mailto:A@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=B:mailto:B@example.com ATTENDEE;TYPE=INDIVIDUAL;CN=C:mailto:C@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=D:mailto:D@example.com ATTENDEE;RSVP=FALSE;TYPE=ROOM:conf_Big@example.com ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:E@example.com DTSTAMP:20071009T201659Z SUMMARY:Department meeting COMMENT:What do you think about these other times? BEGIN:VEVENT UID:20071005T133225Z-00001-A@example.com DTSTART:20080401T090000Z DTEND:20080401T110000Z END:VEVENT BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001-B@example.com BEGIN:VFREEBUSY UID:20071005T133225Z-00001-B1@example.com FREEBUSY;FBTYPE=FREE:20080401T150000Z/20080401T190000Z END:VFREEBUSY END:VIMPRECISEEVENT END:VALTERNATIVEEVENTS END:VCALENDAR 5.5. Update an Event Description The iCalendar object below describes a message from "D" asking for the updated event description. Note that it is issued with the VIMPRECISEEVENT component, which is the most recent known by "D". Silva & Drummond Expires June 22, 2008 [Page 48] Internet-Draft Imprecise and alternative events December 2007 BEGIN:VCALENDAR PRODID:-//Unicamp/iScheduler//EN METHOD:REFRESH VERSION:2.0 BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001@example.com SEQUENCE:1 ORGANIZER:mailto:A@example.com ATTENDEE;CN=D:mailto:D@example.com DTSTAMP:20071010T072859Z END:VIMPRECISEEVENT END:VCALENDAR The iCalendar object below describes the updated version of the event, in response to "D". It reflects the acceptance of the counterproposal from "C". BEGIN:VCALENDAR PRODID:-//Unicamp/iScheduler//EN METHOD:REQUEST VERSION:2.0 BEGIN:VALTERNATIVEEVENTS UID:20071005T133225Z-00001@example.com SEQUENCE:2 ORGANIZER:mailto:A@example.com ATTENDEE;ROLE=CHAIR;CN=A:mailto:A@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=B:mailto:B@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=C:mailto:C@example.com ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=D:mailto:D@example.com ATTENDEE;RSVP=FALSE;TYPE=ROOM:conf_Big@example.com ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:E@example.com DTSTAMP:20071011T221500Z SUMMARY:Department meeting COMMENT:C's suggestion is great! BEGIN:VEVENT UID:20071005T133225Z-00001-A@example.com DTSTART:20080401T090000Z DTEND:20080401T110000Z END:VEVENT BEGIN:VIMPRECISEEVENT UID:20071005T133225Z-00001-B@example.com BEGIN:VFREEBUSY UID:20071005T133225Z-00001-B1@example.com FREEBUSY;FBTYPE=FREE:20080401T150000Z/20080401T190000Z END:VFREEBUSY END:VIMPRECISEEVENT END:VALTERNATIVEEVENTS END:VCALENDAR Silva & Drummond Expires June 22, 2008 [Page 49] Internet-Draft Imprecise and alternative events December 2007 6. IANA Considerations TBD according to IANA registration procedures defined in [I-D.ietf-calsify-rfc2445bis]. 7. Security Considerations This specification does not add any additional security issues that are not already present in [I-D.ietf-calsify-rfc2445bis] and [I-D.ietf-calsify-2446bis]. 8. Acknowledgements The authors would like to thank the following individuals for their previous work on calendaring and scheduling standards, contributing ideas and support for writing this specification: Bernard Desruisseaux, Cyrus Daboo, Lisa Dusseault, and Tim Hare. 9. References 9.1. Normative References [I-D.daboo-calendar-availability] Daboo, C. and B. Desruisseaux, "Calendar Availability", draft-daboo-calendar-availability-00 (work in progress), November 2006. [I-D.desruisseaux-caldav-sched] Daboo, C., Desruisseaux, B., and L. Dusseault, "CalDAV Scheduling Extensions to WebDAV", draft-desruisseaux-caldav-sched-04 (work in progress), November 2007. [I-D.ietf-calsify-2446bis] Daboo, C., "iCalendar Transport-Independent Interoperability Protocol (iTIP)", draft-ietf-calsify-2446bis-04 (work in progress), November 2007. [I-D.ietf-calsify-rfc2445bis] Desruisseaux, B., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", draft-ietf-calsify-rfc2445bis-07 (work in progress), July 2007. Silva & Drummond Expires June 22, 2008 [Page 50] Internet-Draft Imprecise and alternative events December 2007 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, March 2007. 9.2. Informative References [SD98] Sen, S. and E. Durfee, "A Formal Study on Distributed Meeting Scheduling", Group Decision and Negotiation, 7(3): 265-289, 1998. [SL02] Craig, S. and R. Letsinger, "An ontology for publishing and scheduling events and the lessons learned in developing it", HP Labs Technical Report HPL-2002-162, 2002. Appendix A. Design Considerations This section points out some protocol design issues concerning the described extensions. In particular, the need of new special "event" components to support imprecise and alternative events can be questioned. They can represent an interoperability problem with current implementations, and may overload workflow scheduling requirements, making it more complex, as VIMPRECISEEVENT and VALTERNATIVEEVENTS are intended to be used interchangeably with VEVENT during scheduling negotiation. When receiving a VEVENT / VIMPRECISEEVENT / VALTERNATIVEEVENTS scheduling message, it will be necessary to look for pre-existing components of these three types (and not only VEVENT components anymore). One may argue that a simpler solution for this would be an extension of the existing VEVENT component and method types to support imprecise and alternative descriptions. Design choices that could be made to do so - and reasons for not adopting them - are presented here. A.1. Avoiding VALTERNATIVEEVENTS An extension of VEVENT to support alternative events descriptions could consist on using the RELATED-TO property to link multiple event components with each their own alternatives and creating a new property to denote that these components should be interpreted as alternative descriptions. However, because only one UID is used for all VEVENT components, that wouldn't allow for this use case: user A Silva & Drummond Expires June 22, 2008 [Page 51] Internet-Draft Imprecise and alternative events December 2007 suggests an event with instance specific information, and user B wants to COUNTER with two alternatives - a new one (possibly with a high rank), and the original one, composed by several instances (with a lower rank). In this case, both alternatives proposed by user B must be identified by the same original UID from A's invitation. This can be solved by a VALTERNATIVEEVENTS wrapper component which would have that UID. Using VEVENT components with different UIDs and grouping those which have the same UID as recurring events with instance specific information would not be a solution, because the reference to the UID of the original request is lost. Using another new relationship parameter and RECURRENCE-ID as a secondary key to do this grouping is also limiting, because it would prohibit two alternatives starting at the same time but with different properties (e.g., location). Thus, a solution without VALTERNATIVEEVENTS would not be really flexible. A.2. Avoiding VIMPRECISEEVENT Some alternatives for not creating a new VIMPRECISEEVENT component could also be considered. Relax VEVENT and allow it to be a container for VFREEBUSY and VAVAILABILITY components would be a bad solution, as present implementations would have problems attempting to parse these (so far invalid) VEVENT components. But a new property could be created to denote that the event should be interpreted as an imprecise description, and this event component could be linked with VFREEBUSY and VAVAILABILITY components via a new property or even RELATED-TO. But that would imply on ignoring the DTSTART and DTEND properties, because they do not make sense in an imprecise event. Since they are always expected, their meaning could be changed by the presence of another property, which should also enforce the additional recurrence limitations described on this specification. The drawback with this approach is that, by definition, an event takes up time on a calendar, what would demand workarounds (e.g., setting TRANSP: TRANSPARENT) so as to prevent these events in a calendar store to be accounted in free-busy queries by current implementations. Using 0+ VFREEBUSY and VAVAILABILITY components in a VEVENT iTIP message would not be a satisfactory option either: if two or more imprecise descriptions were used as alternative events, the available periods of time would refer to all descriptions, and not to a specific one, due to the single UID constraint for VEVENT methods. That can be a problem if the availability depends on properties of the event description (e.g., location), what makes of VIMPRECISEEVENT a simpler way to separate semantics between regular and imprecise events. Silva & Drummond Expires June 22, 2008 [Page 52] Internet-Draft Imprecise and alternative events December 2007 A.3. Compatibility We definitely agree that creating the new components breaks compatibility with current implementations and can raise interoperability issues. On the other hand, it should be considered that the purpose of these extensions is to add new semantics to scheduling negotiation, not only additional information to the concept of events as is. While adapting the VEVENT component could be a good fallback for CUAs not implementing the extensions, it would result in meaningless - or even incorrect - interpretation, what would not be useful and might cause problems. CUAs without the capability to understand the concept of imprecise and alternative events should indeed complain about receiving an invalid iTIP message (maybe replying with a request-status error 3.12/3.13) and be out of scheduling negotiation rounds until only one VEVENT description comes into consideration. Appendix B. Change History (to be removed by RFC Editor prior to publication) Changes from -00: a. Description of the methods for the new components revised and completed. b. Added text to clarify relationship among regular, imprecise and alternative events, and a description on how their methods can be used interchangeably. c. Changed intended status to experimental. d. Added percent property to imprecise events. e. New minimum and maximum granularity properties added to imprecise events. f. Simplified restriction tables by referring to repeating restrictions on sub-components already presented. g. Design Considerations on appendix A rewritten and made permanent. h. Minor editorial changes. Silva & Drummond Expires June 22, 2008 [Page 53] Internet-Draft Imprecise and alternative events December 2007 Authors' Addresses Fabio Silva University of Campinas - Institute of Computing Caixa Postal 6176 Campinas, SP 13084-971 Brazil Email: fabio.silva@gmail.com Rogerio Drummond University of Campinas - Institute of Computing Caixa Postal 6176 Campinas, SP 13084-971 Brazil Email: rog@ic.unicamp.br Silva & Drummond Expires June 22, 2008 [Page 54] Internet-Draft Imprecise and alternative events December 2007 Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Silva & Drummond Expires June 22, 2008 [Page 55]