1
2
3
4
5
6
7Network Working Group C. Daboo, Ed.
8Request for Comments: 5546 Apple Inc.
9Obsoletes: 2446 December 2009
10Updates: 5545
11Category: Standards Track
12
13
14 iCalendar Transport-Independent Interoperability Protocol (iTIP)
15
16Abstract
17
18 This document specifies a protocol that uses the iCalendar object
19 specification to provide scheduling interoperability between
20 different calendaring systems. This is done without reference to a
21 specific transport protocol so as to allow multiple methods of
22 communication between systems. Subsequent documents will define
23 profiles of this protocol that use specific, interoperable methods of
24 communication between systems.
25
26 The iCalendar Transport-Independent Interoperability Protocol (iTIP)
27 complements the iCalendar object specification by adding semantics
28 for group scheduling methods commonly available in current
29 calendaring systems. These scheduling methods permit two or more
30 calendaring systems to perform transactions such as publishing,
31 scheduling, rescheduling, responding to scheduling requests,
32 negotiating changes, or canceling.
33
34Status of This Memo
35
36 This document specifies an Internet standards track protocol for the
37 Internet community, and requests discussion and suggestions for
38 improvements. Please refer to the current edition of the "Internet
39 Official Protocol Standards" (STD 1) for the standardization state
40 and status of this protocol. Distribution of this memo is unlimited.
41
42Copyright Notice
43
44 Copyright (c) 2009 IETF Trust and the persons identified as the
45 document authors. All rights reserved.
46
47 This document is subject to BCP 78 and the IETF Trust's Legal
48 Provisions Relating to IETF Documents
49 (http://trustee.ietf.org/license-info) in effect on the date of
50 publication of this document. Please review these documents
51 carefully, as they describe your rights and restrictions with respect
52 to this document. Code Components extracted from this document must
53
54
55
56
57
58Daboo Standards Track [Page 1]
59
60RFC 5546 iTIP December 2009
61
62
63 include Simplified BSD License text as described in Section 4.e of
64 the Trust Legal Provisions and are provided without warranty as
65 described in the BSD License.
66
67 This document may contain material from IETF Documents or IETF
68 Contributions published or made publicly available before November
69 10, 2008. The person(s) controlling the copyright in some of this
70 material may not have granted the IETF Trust the right to allow
71 modifications of such material outside the IETF Standards Process.
72 Without obtaining an adequate license from the person(s) controlling
73 the copyright in such materials, this document may not be modified
74 outside the IETF Standards Process, and derivative works of it may
75 not be created outside the IETF Standards Process, except to format
76 it for publication as an RFC or to translate it into languages other
77 than English.
78
79Table of Contents
80
81 1. Introduction and Overview .......................................5
82 1.1. Formatting Conventions .....................................5
83 1.2. Related Documents ..........................................6
84 1.3. Roles ......................................................6
85 1.4. Methods ....................................................7
86 2. Interoperability Models .........................................9
87 2.1. Application Protocol ......................................10
88 2.1.1. Scheduling State ...................................10
89 2.1.2. Delegation .........................................10
90 2.1.3. Acting on Behalf of Other Calendar Users ...........11
91 2.1.4. Component Revisions ................................11
92 2.1.5. Message Sequencing .................................12
93 3. Application Protocol Elements ..................................13
94 3.1. Common Component Restriction Tables .......................15
95 3.1.1. VCALENDAR ..........................................15
96 3.1.2. VTIMEZONE ..........................................15
97 3.1.3. VALARM .............................................17
98 3.2. Methods for VEVENT Calendar Components ....................17
99 3.2.1. PUBLISH ............................................18
100 3.2.2. REQUEST ............................................20
101 3.2.3. REPLY ..............................................25
102 3.2.4. ADD ................................................27
103 3.2.5. CANCEL .............................................29
104 3.2.6. REFRESH ............................................31
105 3.2.7. COUNTER ............................................33
106 3.2.8. DECLINECOUNTER .....................................35
107 3.3. Methods for VFREEBUSY Components ..........................37
108 3.3.1. PUBLISH ............................................37
109 3.3.2. REQUEST ............................................40
110 3.3.3. REPLY ..............................................42
111
112
113
114Daboo Standards Track [Page 2]
115
116RFC 5546 iTIP December 2009
117
118
119 3.4. Methods for VTODO Components ..............................44
120 3.4.1. PUBLISH ............................................44
121 3.4.2. REQUEST ............................................46
122 3.4.3. REPLY ..............................................51
123 3.4.4. ADD ................................................53
124 3.4.5. CANCEL .............................................55
125 3.4.6. REFRESH ............................................57
126 3.4.7. COUNTER ............................................59
127 3.4.8. DECLINECOUNTER .....................................61
128 3.5. Methods for VJOURNAL Components ...........................62
129 3.5.1. PUBLISH ............................................63
130 3.5.2. ADD ................................................64
131 3.5.3. CANCEL .............................................66
132 3.6. Status Replies ............................................68
133 3.7. Implementation Considerations .............................77
134 3.7.1. Working With Recurrence Instances ..................77
135 3.7.2. Attendee Property Considerations ...................78
136 3.7.3. Extension Tokens ...................................79
137 4. Examples .......................................................79
138 4.1. Published Event Examples ..................................79
139 4.1.1. A Minimal Published Event ..........................80
140 4.1.2. Changing a Published Event .........................80
141 4.1.3. Canceling a Published Event ........................81
142 4.1.4. A Rich Published Event .............................81
143 4.1.5. Anniversaries or Events Attached to Entire Days ....83
144 4.2. Group Event Examples ......................................83
145 4.2.1. A Group Event Request ..............................84
146 4.2.2. Reply to a Group Event Request .....................85
147 4.2.3. Update an Event ....................................85
148 4.2.4. Countering an Event Proposal .......................86
149 4.2.5. Delegating an Event ................................88
150 4.2.6. Delegate Accepts the Meeting .......................90
151 4.2.7. Delegate Declines the Meeting ......................91
152 4.2.8. Forwarding an Event Request ........................92
153 4.2.9. Cancel a Group Event ...............................92
154 4.2.10. Removing Attendees ................................93
155 4.2.11. Replacing the Organizer ...........................95
156 4.3. Busy Time Examples ........................................96
157 4.3.1. Publish Busy Time ..................................96
158 4.3.2. Request Busy Time ..................................96
159 4.3.3. Reply to a Busy Time Request .......................97
160 4.4. Recurring Event and Time Zone Examples ....................98
161 4.4.1. A Recurring Event Spanning Time Zones ..............98
162 4.4.2. Modify a Recurring Instance ........................99
163 4.4.3. Cancel an Instance ................................101
164 4.4.4. Cancel a Recurring Event ..........................101
165 4.4.5. Change All Future Instances .......................102
166 4.4.6. Add a New Instance to a Recurring Event ...........102
167
168
169
170Daboo Standards Track [Page 3]
171
172RFC 5546 iTIP December 2009
173
174
175 4.4.7. Add a New Series of Instances to a
176 Recurring Event ...................................103
177 4.4.8. Refreshing a Recurring Event ......................104
178 4.4.9. Counter an Instance of a Recurring Event ..........106
179 4.4.10. Error Reply to a Request .........................107
180 4.5. Group To-Do Examples .....................................108
181 4.5.1. A VTODO Request ...................................109
182 4.5.2. A VTODO Reply .....................................110
183 4.5.3. A VTODO Request for Updated Status ................110
184 4.5.4. A Reply: Percent-Complete .........................111
185 4.5.5. A Reply: Completed ................................111
186 4.5.6. An Updated VTODO Request ..........................112
187 4.5.7. Recurring VTODOs ..................................112
188 4.6. Journal Examples .........................................113
189 4.7. Other Examples ...........................................114
190 4.7.1. Event Refresh .....................................114
191 4.7.2. Bad RECURRENCE-ID .................................114
192 5. Application Protocol Fallbacks ................................116
193 5.1. Partial Implementation ...................................116
194 5.1.1. Event-Related Fallbacks ...........................117
195 5.1.2. Free/Busy-Related Fallbacks .......................119
196 5.1.3. To-Do-Related Fallbacks ...........................120
197 5.1.4. Journal-Related Fallbacks .........................122
198 5.2. Latency Issues ...........................................123
199 5.2.1. Cancellation of an Unknown Calendar Component .....123
200 5.2.2. Unexpected Reply from an Unknown Delegate .........124
201 5.3. Sequence Number ..........................................124
202 6. Security Considerations .......................................124
203 6.1. Security Threats .........................................124
204 6.1.1. Spoofing the Organizer ............................124
205 6.1.2. Spoofing the Attendee .............................124
206 6.1.3. Unauthorized Replacement of the Organizer .........125
207 6.1.4. Eavesdropping and Data Integrity ..................125
208 6.1.5. Flooding a Calendar ...............................125
209 6.1.6. Unauthorized REFRESH Requests .....................125
210 6.2. Recommendations ..........................................125
211 6.2.1. Securing iTIP transactions ........................125
212 6.2.2. Implementation Controls ...........................126
213 6.2.3. Access Controls and Filtering .....................126
214 6.3. Privacy Issues ...........................................126
215 7. IANA Considerations ...........................................127
216 7.1. Registration Template for REQUEST-STATUS Values ..........127
217 7.2. Additions to iCalendar METHOD Registry ...................127
218 7.3. REQUEST-STATUS Value Registry ............................129
219 8. Acknowledgments ...............................................130
220 9. References ....................................................131
221 9.1. Normative References .....................................131
222 9.2. Informative References ...................................131
223
224
225
226Daboo Standards Track [Page 4]
227
228RFC 5546 iTIP December 2009
229
230
231 Appendix A. Differences from RFC 2446 ...........................132
232 A.1. Changed Restrictions .....................................132
233 A.2. Deprecated Features ......................................133
234
2351. Introduction and Overview
236
237 This document specifies how calendaring systems use iCalendar
238 [RFC5545] objects to interoperate with other calendaring systems. In
239 particular, it specifies how to schedule events, to-dos, or daily
240 journal entries. It further specifies how to search for available
241 busy time information. It does so in a general way, without
242 specifying how communication between different systems actually takes
243 place. Subsequent documents will specify transport bindings between
244 systems that use this protocol.
245
246 This protocol is based on messages sent from an originator to one or
247 more recipients. For certain types of messages, a recipient may
248 reply in order to update their status and may also return
249 transaction/request status information. The protocol supports the
250 ability for the message originator to modify or cancel the original
251 message. The protocol also supports the ability for recipients to
252 suggest changes to the originator of a message. The elements of the
253 protocol also define the user roles for its transactions.
254
255 This specification obsoletes RFC 2446 - a list of important changes
256 is provided in Appendix A.
257
2581.1. Formatting Conventions
259
260 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
261 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
262 document are to be interpreted as described in [RFC2119].
263
264 Calendaring and scheduling roles are referred to in quoted-strings of
265 text with the first character of each word in upper case. For
266 example, "Organizer" refers to a role of a "Calendar User" (CU)
267 within the scheduling protocol.
268
269 Calendar components defined by [RFC5545] are referred to with
270 capitalized, quoted-strings of text. All calendar components start
271 with the letter "V". For example, "VEVENT" refers to the event
272 calendar component, "VTODO" refers to the to-do calendar component,
273 and "VJOURNAL" refers to the daily journal calendar component.
274
275
276
277
278
279
280
281
282Daboo Standards Track [Page 5]
283
284RFC 5546 iTIP December 2009
285
286
287 Scheduling methods are referred to with capitalized, quoted-strings
288 of text. For example, "REQUEST" refers to the method for requesting
289 a scheduling calendar component be created or modified; "REPLY"
290 refers to the method a recipient of a request uses to update their
291 status with the "Organizer" of the calendar component.
292
293 Properties defined by [RFC5545] are referred to with capitalized,
294 quoted-strings of text, followed by the word "property". For
295 example, "ATTENDEE" property refers to the iCalendar property used to
296 convey the calendar address of a "Calendar User".
297
298 Property parameters defined by this specification are referred to
299 with capitalized, quoted-strings of text, followed by the word
300 "parameter". For example, "VALUE" parameter refers to the iCalendar
301 property parameter used to override the default data type for a
302 property value.
303
304 Enumerated values defined by this specification are referred to with
305 capitalized text, either alone or followed by the word "value".
306
307 In tables, the quoted-string text is specified without quotes in
308 order to minimize the table length.
309
3101.2. Related Documents
311
312 Implementers will need to be familiar with several other
313 specifications that, along with this one, describe the Internet
314 calendaring and scheduling standards. The related documents are:
315
316 [RFC5545] - specifies the objects, data types, properties, and
317 property parameters used in the protocols, along with the methods
318 for representing and encoding them.
319
320 [iMIP] - specifies an Internet email binding for iTIP.
321
322 This specification does not attempt to repeat the concepts or
323 definitions from these other specifications. Where possible,
324 explicit references are made to the other specifications.
325
3261.3. Roles
327
328 Exchanges of iCalendar objects for the purposes of group calendaring
329 and scheduling occur between "Calendar Users" (CUs). CUs take on
330 several roles in iTIP:
331
332
333
334
335
336
337
338Daboo Standards Track [Page 6]
339
340RFC 5546 iTIP December 2009
341
342
343 +-----------+-------------------------------------------------------+
344 | Role | Description |
345 +-----------+-------------------------------------------------------+
346 | Organizer | The CU who initiates an exchange takes on the role of |
347 | | Organizer. For example, the CU who proposes a group |
348 | | meeting is the Organizer. |
349 | | |
350 | Attendee | CUs who are included in the scheduling message as |
351 | | possible recipients of that scheduling message. For |
352 | | example, the CUs asked to participate in a group |
353 | | meeting by the Organizer take on the role of |
354 | | Attendee. |
355 | | |
356 | Other CU | A CU that is not explicitly included in a scheduling |
357 | | message, i.e., not the Organizer or an Attendee. |
358 +-----------+-------------------------------------------------------+
359
360 Note that "ROLE" is also a descriptive parameter to the iCalendar
361 "ATTENDEE" property. Its use is to convey descriptive context about
362 an "Attendee" -- such as "chair", "required participant", or "non-
363 required participant" -- and has nothing to do with the calendaring
364 workflow.
365
3661.4. Methods
367
368 The iTIP methods are listed below and their usage and semantics are
369 defined in Section 3 of this document.
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394Daboo Standards Track [Page 7]
395
396RFC 5546 iTIP December 2009
397
398
399 +----------------+--------------------------------------------------+
400 | Method | Description |
401 +----------------+--------------------------------------------------+
402 | PUBLISH | Used to publish an iCalendar object to one or |
403 | | more "Calendar Users". There is no |
404 | | interactivity between the publisher and any |
405 | | other "Calendar User". An example might include |
406 | | a baseball team publishing its schedule to the |
407 | | public. |
408 | | |
409 | REQUEST | Used to schedule an iCalendar object with other |
410 | | "Calendar Users". Requests are interactive in |
411 | | that they require the receiver to respond using |
412 | | the reply methods. Meeting requests, busy-time |
413 | | requests, and the assignment of tasks to other |
414 | | "Calendar Users" are all examples. Requests are |
415 | | also used by the Organizer to update the status |
416 | | of an iCalendar object. |
417 | | |
418 | REPLY | A reply is used in response to a request to |
419 | | convey Attendee status to the Organizer. |
420 | | Replies are commonly used to respond to meeting |
421 | | and task requests. |
422 | | |
423 | ADD | Add one or more new instances to an existing |
424 | | recurring iCalendar object. |
425 | | |
426 | CANCEL | Cancel one or more instances of an existing |
427 | | iCalendar object. |
428 | | |
429 | REFRESH | Used by an Attendee to request the latest |
430 | | version of an iCalendar object. |
431 | | |
432 | COUNTER | Used by an Attendee to negotiate a change in an |
433 | | iCalendar object. Examples include the request |
434 | | to change a proposed event time or change the |
435 | | due date for a task. |
436 | | |
437 | DECLINECOUNTER | Used by the Organizer to decline the proposed |
438 | | counter proposal. |
439 +----------------+--------------------------------------------------+
440
441
442
443
444
445
446
447
448
449
450Daboo Standards Track [Page 8]
451
452RFC 5546 iTIP December 2009
453
454
455 Group scheduling in iTIP is accomplished using the set of "request"
456 and "response" methods described above. The following table shows
457 the methods broken down by who can send them.
458
459 +------------+------------------------------------------------------+
460 | Originator | Methods |
461 +------------+------------------------------------------------------+
462 | Organizer | PUBLISH, REQUEST, ADD, CANCEL, DECLINECOUNTER |
463 | | |
464 | Attendee | REPLY, REFRESH, COUNTER, REQUEST (only when |
465 | | delegating) |
466 +------------+------------------------------------------------------+
467
468 Note that for some calendar component types, the allowable methods
469 are a subset of the above set. In addition, apart from "VTIMEZONE"
470 iCalendar components, only one component type is allowed in a single
471 iTIP message.
472
4732. Interoperability Models
474
475 There are two distinct protocols relevant to interoperability: an
476 "application protocol" and a "transport protocol". The application
477 protocol defines the content of the iCalendar objects sent between
478 sender and receiver to accomplish the scheduling transactions listed
479 above. The transport protocol defines how the iCalendar objects are
480 sent between the sender and receiver. This document focuses on the
481 application protocol. Binding documents such as [iMIP] focus on the
482 transport protocol.
483
484 The connection between sender and receiver in the diagram below
485 refers to the application protocol. The iCalendar objects passed
486 from the sender to the receiver are presented in Section 3,
487 "Application Protocol Elements".
488
489 +----------+ +----------+
490 | | iTIP | |
491 | Sender |<-------------->| Receiver |
492 | | | |
493 +----------+ +----------+
494
495 There are several variations of this diagram in which the sender and
496 receiver take on various roles of a "Calendar User Agent" (CUA) or a
497 "Calendar Service" (CS).
498
499 The architecture of iTIP is depicted in the diagram below. An
500 application written to this specification may work with bindings for
501 the store-and-forward transport, the real-time transport, or both.
502 Also note that iTIP could be bound to other transports.
503
504
505
506Daboo Standards Track [Page 9]
507
508RFC 5546 iTIP December 2009
509
510
511 +--------------------------------------------------------+
512 | iTIP Protocol |
513 +--------------------------------------------------------+
514 | Transport |
515 + - - - - - + - - - - - - + - - - - - +
516 | Real-Time | Store-and-Forward | Others |
517 +-----------------+--------------------+-----------------+
518
5192.1. Application Protocol
520
521 In the iTIP model, an iCalendar object is created and managed by an
522 "Organizer". The "Organizer" interacts with other CUs by sending one
523 or more of the iTIP messages listed above. "Attendees" use the
524 "REPLY" method to communicate their status. "Attendees" do not make
525 direct changes to the master iCalendar object. They can, however,
526 use the "COUNTER" method to suggest changes to the "Organizer". In
527 any case, the "Organizer" has complete control over the master
528 iCalendar object.
529
5302.1.1. Scheduling State
531
532 There are two distinct states relevant to iCalendar objects used in
533 scheduling: the overall state of the iCalendar object and the state
534 associated with an "Attendee" in that iCalendar object.
535
536 The state of an iCalendar object is defined by the "STATUS" property
537 and is controlled by the "Organizer." There is no default value for
538 the "STATUS" property. The "Organizer" sets the "STATUS" property to
539 the appropriate value for each iCalendar object.
540
541 The state of a particular "Attendee" relative to an iCalendar object
542 used for scheduling is defined by the "PARTSTAT" parameter in the
543 "ATTENDEE" property for each "Attendee". When an "Organizer" issues
544 the initial iCalendar object, "Attendee" status is typically unknown.
545 The "Organizer" specifies this by setting the "PARTSTAT" parameter to
546 "NEEDS-ACTION". Each "Attendee" modifies their "ATTENDEE" property
547 "PARTSTAT" parameter to an appropriate value as part of a "REPLY"
548 message sent back to the "Organizer".
549
5502.1.2. Delegation
551
552 Delegation is defined as the process by which an "Attendee" grants
553 another CU (or several CUs) the right to attend on their behalf. The
554 "Organizer" is made aware of this change because the delegating
555 "Attendee" informs the "Organizer". These steps are detailed in the
556 "REQUEST" method sections for the appropriate components.
557
558
559
560
561
562Daboo Standards Track [Page 10]
563
564RFC 5546 iTIP December 2009
565
566
5672.1.3. Acting on Behalf of Other Calendar Users
568
569 In many organizations, one user will act on behalf of another to
570 organize and/or respond to meeting requests. iTIP provides two
571 mechanisms that support these activities.
572
573 First, the "Organizer" is treated as a special entity, separate from
574 "Attendees". All responses from "Attendees" flow to the "Organizer",
575 making it easy to separate a "Calendar User" organizing a meeting
576 from "Calendar Users" attending the meeting. Additionally, iCalendar
577 provides descriptive roles for each "Attendee". For instance, a role
578 of "chair" may be ascribed to one or more "Attendees". The "chair"
579 and the "Organizer" may or may not be the same "Calendar User". This
580 maps well to scenarios where an assistant may manage meeting
581 logistics for another individual who chairs a meeting.
582
583 Second, a "SENT-BY" parameter may be specified in either the
584 "Organizer" or "Attendee" properties. When specified, the "SENT-BY"
585 parameter indicates that the responding CU acted on behalf of the
586 specified "Attendee" or "Organizer".
587
5882.1.4. Component Revisions
589
590 The "SEQUENCE" property is used by the "Organizer" to indicate
591 revisions to the calendar component. When the "Organizer" makes
592 changes to one of the following properties, the sequence number MUST
593 be incremented:
594
595 o "DTSTART"
596
597 o "DTEND"
598
599 o "DURATION"
600
601 o "DUE"
602
603 o "RRULE"
604
605 o "RDATE"
606
607 o "EXDATE"
608
609 o "STATUS"
610
611 In addition, changes made by the "Organizer" to other properties MAY
612 also require the sequence number to be incremented. The "Organizer"
613 CUA MUST increment the sequence number whenever it makes changes to
614 properties in the calendar component that the "Organizer" deems will
615
616
617
618Daboo Standards Track [Page 11]
619
620RFC 5546 iTIP December 2009
621
622
623 jeopardize the validity of the participation status of the
624 "Attendees". For example, changing the location of a meeting from
625 one location to another distant location could effectively impact the
626 participation status of the "Attendees".
627
628 Depending on the "METHOD", the "SEQUENCE" property MUST follow these
629 rules in the context of iTIP:
630
631 o For the "PUBLISH" and "REQUEST" methods, the "SEQUENCE" property
632 value is incremented according to the rules stated above.
633
634 o The "SEQUENCE" property value MUST be incremented each time the
635 "Organizer" uses the "ADD" or "CANCEL" methods.
636
637 o The "SEQUENCE" property value MUST NOT be incremented when using
638 "REPLY", "REFRESH", "COUNTER", "DECLINECOUNTER", or when sending a
639 delegation "REQUEST".
640
641 In some circumstances, the "Organizer" may not have received
642 responses to the final revision sent out. In this situation, the
643 "Organizer" may wish to send an update "REQUEST" and set "RSVP=TRUE"
644 for all "Attendees" so that current responses can be collected.
645
646 The value of the "SEQUENCE" property contained in a response from an
647 "Attendee" may not always match the "Organizer's" revision.
648 Implementations may choose to have the CUA indicate to the CU that
649 the response is to an iCalendar object that has been revised, and
650 allow the CU to decide whether or not to accept the response.
651
652 Whilst a change in sequence number is indicative of a significant
653 change to a previously scheduled item, "Attendee" CUAs SHOULD NOT
654 rely solely on a change in sequence number as a means of detecting a
655 significant change. Instead, CUAs SHOULD compare the old and new
656 versions of the calendar components, determine the exact nature of
657 the changes, and make decisions -- possibly based on "Calendar User"
658 preferences -- as to whether the user needs to be explicitly informed
659 of the change.
660
6612.1.5. Message Sequencing
662
663 CUAs that handle the iTIP application protocol must often correlate a
664 component in a calendar store with a component received in the iTIP
665 message. For example, an event may be updated with a later revision
666 of the same event. To accomplish this, a CUA must correlate the
667 version of the event already in its calendar store with the version
668 sent in the iTIP message. In addition to this correlation, there are
669 several factors that can cause iTIP messages to arrive in an
670 unexpected order. That is, an "Organizer" could receive a reply to
671
672
673
674Daboo Standards Track [Page 12]
675
676RFC 5546 iTIP December 2009
677
678
679 an earlier revision of a component after receiving a reply to a later
680 revision.
681
682 To maximize interoperability and to handle messages that arrive in an
683 unexpected order, use the following rules:
684
685 1. The primary key for referencing a particular iCalendar component
686 is the "UID" property value. To reference an instance of a
687 recurring component, the primary key is composed of the "UID" and
688 the "RECURRENCE-ID" properties.
689
690 2. The secondary key for referencing a component is the "SEQUENCE"
691 property value. For components where the "UID" and
692 "RECURRENCE-ID" property values are the same, the component with
693 the highest numeric value for the "SEQUENCE" property obsoletes
694 all other revisions of the component with lower values.
695
696 3. "Attendees" send "REPLY" messages to the "Organizer". For
697 replies where the "UID" and "RECURRENCE-ID" property values are
698 the same, the value of the "SEQUENCE" property indicates the
699 revision of the component to which the "Attendee" is replying.
700 The reply with the highest numeric value for the "SEQUENCE"
701 property obsoletes all other replies with lower values.
702
703 4. In situations where the "UID", "RECURRENCE-ID", and "SEQUENCE"
704 property values match, the "DTSTAMP" property is used as the tie-
705 breaker. The component with the latest "DTSTAMP" overrides all
706 others. Similarly, for "Attendee" responses where the "UID",
707 "RECURRENCE-ID", and "SEQUENCE" property values match, the
708 response with the latest "DTSTAMP" overrides all others.
709
710 Hence, CUAs will need to persist the following component properties
711 in order to correctly process iTIP messages: "UID", "RECURRENCE-ID",
712 "SEQUENCE", and "DTSTAMP". Furthermore, for each "ATTENDEE" property
713 of a component, "Organizer" CUAs will need to persist the "SEQUENCE"
714 and "DTSTAMP" property values associated with the "Attendee's" last
715 response, so that any earlier responses from an "Attendee" that are
716 received out of order (e.g., due to a delay in the transport) can be
717 correctly discarded.
718
7193. Application Protocol Elements
720
721 iTIP messages are "text/calendar" MIME entities that contain
722 calendaring and scheduling information. The particular type of
723 iCalendar message is referred to as the "method type". Each method
724 type is identified by a "METHOD" property specified as part of the
725 "text/calendar" content type. The table below shows various
726
727
728
729
730Daboo Standards Track [Page 13]
731
732RFC 5546 iTIP December 2009
733
734
735 combinations of calendar components and the method types that this
736 specification supports.
737
738 +----------------+--------+-------+----------+-----------+
739 | | VEVENT | VTODO | VJOURNAL | VFREEBUSY |
740 +----------------+--------+-------+----------+-----------+
741 | PUBLISH | Yes | Yes | Yes | Yes |
742 | REQUEST | Yes | Yes | No | Yes |
743 | REFRESH | Yes | Yes | No | No |
744 | CANCEL | Yes | Yes | Yes | No |
745 | ADD | Yes | Yes | Yes | No |
746 | REPLY | Yes | Yes | No | Yes |
747 | COUNTER | Yes | Yes | No | No |
748 | DECLINECOUNTER | Yes | Yes | No | No |
749 +----------------+--------+-------+----------+-----------+
750
751 Each method type is defined in terms of its associated components and
752 properties. Some components and properties are required, some are
753 optional, and others are excluded. The restrictions are expressed in
754 this document using a simple "restriction table". The first column
755 indicates the name of a component or property. Properties of the
756 iCalendar object are not indented. Properties of a component are
757 indented. The second column (the "Presence" column) indicates
758 whether or not a component or property should be present and, if
759 present, how many times it can occur. The third column contains
760 comments for further clarification.
761
762 The presence column uses the following values to assert whether a
763 property is required or optional, and the number of times it may
764 appear in the iCalendar object.
765
766 +----------------+--------------------------------------------------+
767 | Presence Value | Description |
768 +----------------+--------------------------------------------------+
769 | 1 | One instance MUST be present. |
770 | 1+ | At least one instance MUST be present. |
771 | 0 | Instances of this property MUST NOT be present. |
772 | 0+ | Multiple instances MAY be present. |
773 | 0 or 1 | Up to 1 instance of this property MAY be |
774 | | present. |
775 +----------------+--------------------------------------------------+
776
777 The tables also call out "IANA-PROPERTY", "X-PROPERTY", "IANA-
778 COMPONENT", and "X-COMPONENT" to show where registered and
779 experimental property and component extensions can appear. The
780 tables do not lay out the restrictions of property parameters. Those
781 restrictions are defined in [RFC5545].
782
783
784
785
786Daboo Standards Track [Page 14]
787
788RFC 5546 iTIP December 2009
789
790
7913.1. Common Component Restriction Tables
792
7933.1.1. VCALENDAR
794
795 The restriction table below applies to properties of the iCalendar
796 object. That is, the properties at the outermost scope.
797
798 +-----------------------------------------------------+
799 | Constraints for Properties in a VCALENDAR Component |
800 +-----------------------------------------------------+
801
802 +--------------------+----------+--------------------+
803 | Component/Property | Presence | Comment |
804 +--------------------+----------+--------------------+
805 | CALSCALE | 0 or 1 | |
806 | PRODID | 1 | |
807 | VERSION | 1 | Value MUST be 2.0. |
808 | IANA-PROPERTY | 0+ | |
809 | X-PROPERTY | 0+ | |
810 +--------------------+----------+--------------------+
811
8123.1.2. VTIMEZONE
813
814 "VTIMEZONE" components may be referred to by other components via a
815 "TZID" parameter on a "DATETIME" value type. The property
816 restrictions in the table below apply to any "VTIMEZONE" component in
817 an iTIP message.
818
819 +--------------------------------------+
820 | Constraints for VTIMEZONE Components |
821 +--------------------------------------+
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842Daboo Standards Track [Page 15]
843
844RFC 5546 iTIP December 2009
845
846
847 +--------------------+----------+-----------------------------------+
848 | Component/Property | Presence | Comment |
849 +--------------------+----------+-----------------------------------+
850 | VTIMEZONE | 0+ | MUST be present if any date/time |
851 | | | refers to timezone. |
852 | DAYLIGHT | 0+ | MUST be one or more of either |
853 | | | STANDARD or DAYLIGHT. |
854 | COMMENT | 0+ | |
855 | DTSTART | 1 | MUST be local time format. |
856 | RDATE | 0+ | |
857 | RRULE | 0 or 1 | |
858 | TZNAME | 0+ | |
859 | TZOFFSETFROM | 1 | |
860 | TZOFFSETTO | 1 | |
861 | IANA-PROPERTY | 0+ | |
862 | X-PROPERTY | 0+ | |
863 | LAST-MODIFIED | 0 or 1 | |
864 | STANDARD | 0+ | MUST be one or more of either |
865 | | | STANDARD or DAYLIGHT. |
866 | COMMENT | 0+ | |
867 | DTSTART | 1 | MUST be local time format. |
868 | RDATE | 0+ | If present, RRULE MUST NOT be |
869 | | | present. |
870 | RRULE | 0 or 1 | If present, RDATE MUST NOT be |
871 | | | present. |
872 | TZNAME | 0+ | |
873 | TZOFFSETFROM | 1 | |
874 | TZOFFSETTO | 1 | |
875 | IANA-PROPERTY | 0+ | |
876 | X-PROPERTY | 0+ | |
877 | TZID | 1 | |
878 | TZURL | 0 or 1 | |
879 | IANA-PROPERTY | 0+ | |
880 | X-PROPERTY | 0+ | |
881 +--------------------+----------+-----------------------------------+
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898Daboo Standards Track [Page 16]
899
900RFC 5546 iTIP December 2009
901
902
9033.1.3. VALARM
904
905 The property restrictions in the table below apply to any "VALARM"
906 component in an iTIP message.
907
908 +-----------------------------------+
909 | Constraints for VALARM Components |
910 +-----------------------------------+
911
912 +--------------------+----------+-----------------------------------+
913 | Component/Property | Presence | Comment |
914 +--------------------+----------+-----------------------------------+
915 | VALARM | 0+ | |
916 | ACTION | 1 | |
917 | ATTACH | 0+ | |
918 | ATTENDEE | 0+ | |
919 | DESCRIPTION | 0 or 1 | |
920 | DURATION | 0 or 1 | If present, REPEAT MUST be |
921 | | | present. |
922 | REPEAT | 0 or 1 | If present, DURATION MUST be |
923 | | | present. |
924 | SUMMARY | 0 or 1 | |
925 | TRIGGER | 1 | |
926 | IANA-PROPERTY | 0+ | |
927 | X-PROPERTY | 0+ | |
928 +--------------------+----------+-----------------------------------+
929
9303.2. Methods for VEVENT Calendar Components
931
932 This section defines the property set restrictions for the method
933 types that are applicable to the "VEVENT" calendar component. Each
934 method is defined using a table that clarifies the property
935 constraints that define the particular method.
936
937 The following summarizes the methods that are defined for the
938 "VEVENT" calendar component.
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954Daboo Standards Track [Page 17]
955
956RFC 5546 iTIP December 2009
957
958
959 +----------------+--------------------------------------------------+
960 | Method | Description |
961 +----------------+--------------------------------------------------+
962 | PUBLISH | Post notification of an event. Used primarily |
963 | | as a method of advertising the existence of an |
964 | | event. |
965 | | |
966 | REQUEST | Make a request for an event. This is an |
967 | | explicit invitation to one or more Attendees. |
968 | | Event requests are also used to update or change |
969 | | an existing event. Clients that cannot handle |
970 | | REQUEST MAY degrade the event to view it as a |
971 | | PUBLISH. |
972 | | |
973 | REPLY | Reply to an event request. Clients may set |
974 | | their status (PARTSTAT) to ACCEPTED, DECLINED, |
975 | | TENTATIVE, or DELEGATED. |
976 | | |
977 | ADD | Add one or more instances to an existing event. |
978 | | |
979 | CANCEL | Cancel one or more instances of an existing |
980 | | event. |
981 | | |
982 | REFRESH | A request is sent to an Organizer by an Attendee |
983 | | asking for the latest version of an event to be |
984 | | resent to the requester. |
985 | | |
986 | COUNTER | Counter a REQUEST with an alternative proposal. |
987 | | Sent by an Attendee to the Organizer. |
988 | | |
989 | DECLINECOUNTER | Decline a counter proposal. Sent to an Attendee |
990 | | by the Organizer. |
991 +----------------+--------------------------------------------------+
992
9933.2.1. PUBLISH
994
995 The "PUBLISH" method in a "VEVENT" calendar component is an
996 unsolicited posting of an iCalendar object. Any CU may add published
997 components to their calendar. The "Organizer" MUST be present in a
998 published iCalendar component. "Attendees" MUST NOT be present. Its
999 expected usage is for encapsulating an arbitrary event as an
1000 iCalendar object. The "Organizer" may subsequently update (with
1001 another "PUBLISH" method), add instances to (with an "ADD" method),
1002 or cancel (with a "CANCEL" method) a previously published "VEVENT"
1003 calendar component.
1004
1005 This method type is an iCalendar object that conforms to the
1006 following property constraints:
1007
1008
1009
1010Daboo Standards Track [Page 18]
1011
1012RFC 5546 iTIP December 2009
1013
1014
1015 +----------------------------------------------+
1016 | Constraints for a METHOD:PUBLISH of a VEVENT |
1017 +----------------------------------------------+
1018
1019 +--------------------+----------+-----------------------------------+
1020 | Component/Property | Presence | Comment |
1021 +--------------------+----------+-----------------------------------+
1022 | METHOD | 1 | MUST equal PUBLISH. |
1023 | | | |
1024 | VEVENT | 1+ | |
1025 | DTSTAMP | 1 | |
1026 | DTSTART | 1 | |
1027 | ORGANIZER | 1 | |
1028 | SUMMARY | 1 | Can be null. |
1029 | UID | 1 | |
1030 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1031 | | | of a recurring calendar |
1032 | | | component. Otherwise, it MUST |
1033 | | | NOT be present. |
1034 | SEQUENCE | 0 or 1 | MUST be present if value is |
1035 | | | greater than 0; MAY be present if |
1036 | | | 0. |
1037 | ATTACH | 0+ | |
1038 | CATEGORIES | 0+ | |
1039 | CLASS | 0 or 1 | |
1040 | COMMENT | 0+ | |
1041 | CONTACT | 0 or 1 | |
1042 | CREATED | 0 or 1 | |
1043 | DESCRIPTION | 0 or 1 | Can be null. |
1044 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1045 | | | present. |
1046 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1047 | | | present. |
1048 | EXDATE | 0+ | |
1049 | GEO | 0 or 1 | |
1050 | LAST-MODIFIED | 0 or 1 | |
1051 | LOCATION | 0 or 1 | |
1052 | PRIORITY | 0 or 1 | |
1053 | RDATE | 0+ | |
1054 | RELATED-TO | 0+ | |
1055 | RESOURCES | 0+ | |
1056 | RRULE | 0 or 1 | |
1057 | STATUS | 0 or 1 | MAY be one of |
1058 | | | TENTATIVE/CONFIRMED/CANCELLED. |
1059 | TRANSP | 0 or 1 | |
1060 | URL | 0 or 1 | |
1061 | IANA-PROPERTY | 0+ | |
1062 | X-PROPERTY | 0+ | |
1063
1064
1065
1066Daboo Standards Track [Page 19]
1067
1068RFC 5546 iTIP December 2009
1069
1070
1071 | ATTENDEE | 0 | |
1072 | REQUEST-STATUS | 0 | |
1073 | | | |
1074 | VALARM | 0+ | |
1075 | | | |
1076 | VFREEBUSY | 0 | |
1077 | | | |
1078 | VJOURNAL | 0 | |
1079 | | | |
1080 | VTODO | 0 | |
1081 | | | |
1082 | VTIMEZONE | 0+ | MUST be present if any date/time |
1083 | | | refers to a timezone. |
1084 | | | |
1085 | IANA-COMPONENT | 0+ | |
1086 | X-COMPONENT | 0+ | |
1087 +--------------------+----------+-----------------------------------+
1088
10893.2.2. REQUEST
1090
1091 The "REQUEST" method in a "VEVENT" component provides the following
1092 scheduling functions:
1093
1094 o Invite "Attendees" to an event.
1095
1096 o Reschedule an existing event.
1097
1098 o Response to a "REFRESH" request.
1099
1100 o Update the details of an existing event, without rescheduling it.
1101
1102 o Update the status of "Attendees" of an existing event, without
1103 rescheduling it.
1104
1105 o Reconfirm an existing event, without rescheduling it.
1106
1107 o Forward a "VEVENT" to another uninvited CU.
1108
1109 o For an existing "VEVENT" calendar component, delegate the role of
1110 "Attendee" to another CU.
1111
1112 o For an existing "VEVENT" calendar component, change the role of
1113 "Organizer" to another CU.
1114
1115 The "Organizer" originates the "REQUEST". The recipients of the
1116 "REQUEST" method are the CUs invited to the event, the "Attendees".
1117 "Attendees" use the "REPLY" method to convey attendance status to the
1118 "Organizer".
1119
1120
1121
1122Daboo Standards Track [Page 20]
1123
1124RFC 5546 iTIP December 2009
1125
1126
1127 The "UID" and "SEQUENCE" properties are used to distinguish the
1128 various uses of the "REQUEST" method. If the "UID" property value in
1129 the "REQUEST" is not found on the recipient's calendar, then the
1130 "REQUEST" is for a new "VEVENT" calendar component. If the "UID"
1131 property value is found on the recipient's calendar, then the
1132 "REQUEST" is for a rescheduling, an update, or a reconfirmation of
1133 the "VEVENT" calendar component.
1134
1135 For the "REQUEST" method, multiple "VEVENT" components in a single
1136 iCalendar object are only permitted for components with the same
1137 "UID" property. That is, a series of recurring events may have
1138 instance-specific information. In this case, multiple "VEVENT"
1139 components are needed to express the entire series.
1140
1141 This method type is an iCalendar object that conforms to the
1142 following property constraints:
1143
1144 +----------------------------------------------+
1145 | Constraints for a METHOD:REQUEST of a VEVENT |
1146 +----------------------------------------------+
1147
1148 +--------------------+----------+-----------------------------------+
1149 | Component/Property | Presence | Comment |
1150 +--------------------+----------+-----------------------------------+
1151 | METHOD | 1 | MUST be REQUEST. |
1152 | | | |
1153 | VEVENT | 1+ | All components MUST have the same |
1154 | | | UID. |
1155 | ATTENDEE | 1+ | |
1156 | DTSTAMP | 1 | |
1157 | DTSTART | 1 | |
1158 | ORGANIZER | 1 | |
1159 | SEQUENCE | 0 or 1 | MUST be present if value is |
1160 | | | greater than 0; MAY be present if |
1161 | | | 0. |
1162 | SUMMARY | 1 | Can be null. |
1163 | UID | 1 | |
1164 | ATTACH | 0+ | |
1165 | CATEGORIES | 0+ | |
1166 | CLASS | 0 or 1 | |
1167 | COMMENT | 0+ | |
1168 | CONTACT | 0+ | |
1169 | CREATED | 0 or 1 | |
1170 | DESCRIPTION | 0 or 1 | Can be null. |
1171 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1172 | | | present. |
1173
1174
1175
1176
1177
1178Daboo Standards Track [Page 21]
1179
1180RFC 5546 iTIP December 2009
1181
1182
1183 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1184 | | | present. |
1185 | EXDATE | 0+ | |
1186 | GEO | 0 or 1 | |
1187 | LAST-MODIFIED | 0 or 1 | |
1188 | LOCATION | 0 or 1 | |
1189 | PRIORITY | 0 or 1 | |
1190 | RDATE | 0+ | |
1191 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1192 | | | of a recurring calendar |
1193 | | | component. Otherwise, it MUST |
1194 | | | NOT be present. |
1195 | RELATED-TO | 0+ | |
1196 | REQUEST-STATUS | 0 | |
1197 | RESOURCES | 0+ | |
1198 | RRULE | 0 or 1 | |
1199 | STATUS | 0 or 1 | MAY be one of |
1200 | | | TENTATIVE/CONFIRMED. |
1201 | TRANSP | 0 or 1 | |
1202 | URL | 0 or 1 | |
1203 | IANA-PROPERTY | 0+ | |
1204 | X-PROPERTY | 0+ | |
1205 | | | |
1206 | VALARM | 0+ | |
1207 | | | |
1208 | VTIMEZONE | 0+ | MUST be present if any date/time |
1209 | | | refers to a timezone. |
1210 | | | |
1211 | IANA-COMPONENT | 0+ | |
1212 | X-COMPONENT | 0+ | |
1213 | | | |
1214 | VFREEBUSY | 0 | |
1215 | | | |
1216 | VJOURNAL | 0 | |
1217 | | | |
1218 | VTODO | 0 | |
1219 +--------------------+----------+-----------------------------------+
1220
12213.2.2.1. Rescheduling an Event
1222
1223 The "REQUEST" method may be used to reschedule an event. A
1224 rescheduled event involves a change to the existing event in terms of
1225 its time or recurrence intervals and possibly the location or
1226 description. If the recipient CUA of a "REQUEST" method finds that
1227 the "UID" property value already exists on the calendar but that the
1228 "SEQUENCE" (or "DTSTAMP") property value in the "REQUEST" method is
1229 greater than the value for the existing event, then the "REQUEST"
1230 method describes a rescheduling of the event.
1231
1232
1233
1234Daboo Standards Track [Page 22]
1235
1236RFC 5546 iTIP December 2009
1237
1238
12393.2.2.2. Updating or Reconfirmation of an Event
1240
1241 The "REQUEST" method may be used to update or reconfirm an event. An
1242 update to an existing event does not involve changes to the time or
1243 recurrence intervals, and might not involve a change to the location
1244 or description for the event. If the recipient CUA of a "REQUEST"
1245 method finds that the "UID" property value already exists on the
1246 calendar and that the "SEQUENCE" property value in the "REQUEST" is
1247 the same as the value for the existing event, then the "REQUEST"
1248 method describes an update of the event details, but not a
1249 rescheduling of the event.
1250
1251 The update "REQUEST" method is the appropriate response to a
1252 "REFRESH" method sent from an "Attendee" to the "Organizer" of an
1253 event.
1254
1255 The "Organizer" of an event may also send unsolicited "REQUEST"
1256 methods. The unsolicited "REQUEST" methods may be used to update the
1257 details of the event without rescheduling it, to update the
1258 "PARTSTAT" parameter of "Attendees", or to reconfirm the event.
1259
12603.2.2.3. Delegating an Event to Another CU
1261
1262 Some calendar and scheduling systems allow "Attendees" to delegate
1263 their presence at an event to another "Calendar User". iTIP supports
1264 this concept using the following workflow. Any "Attendee" may
1265 delegate their right to participate in a calendar "VEVENT" to another
1266 CU. The implication is that the delegate participates in lieu of the
1267 original "Attendee", NOT in addition to the "Attendee". The
1268 delegator MUST notify the "Organizer" of this action using the steps
1269 outlined below. Implementations may support or restrict delegation
1270 as they see fit. For instance, some implementations may restrict a
1271 delegate from delegating a "REQUEST" to another CU.
1272
1273 The "Delegator" of an event forwards the existing "REQUEST" to the
1274 "Delegate". The "REQUEST" method MUST include an "ATTENDEE" property
1275 with the calendar address of the "Delegate". The "Delegator" MUST
1276 also send a "REPLY" method to the "Organizer" with the "Delegator's"
1277 "ATTENDEE" property "PARTSTAT" parameter value set to "DELEGATED".
1278 In addition, the "DELEGATED-TO" parameter MUST be included with the
1279 calendar address of the "Delegate". Also, a new "ATTENDEE" property
1280 for the "Delegate" MUST be included and must specify the calendar
1281 user address set in the "DELEGATED-TO" parameter, as above.
1282
1283 In response to the request, the "Delegate" MUST send a "REPLY" method
1284 to the "Organizer", and optionally to the "Delegator". The "REPLY"
1285 method SHOULD include the "ATTENDEE" property with the "DELEGATED-
1286 FROM" parameter value of the "Delegator's" calendar address.
1287
1288
1289
1290Daboo Standards Track [Page 23]
1291
1292RFC 5546 iTIP December 2009
1293
1294
1295 The "Delegator" may continue to receive updates to the event even
1296 though they will not be attending. This is accomplished by the
1297 "Delegator" setting their "role" attribute to "NON-PARTICIPANT" in
1298 the "REPLY" to the "Organizer".
1299
13003.2.2.4. Changing the Organizer
1301
1302 The situation may arise where the "Organizer" of a "VEVENT" is no
1303 longer able to perform the "Organizer" role and abdicates without
1304 passing on the "Organizer" role to someone else. When this occurs,
1305 the "Attendees" of the "VEVENT" may use out-of-band mechanisms to
1306 communicate the situation and agree upon a new "Organizer". The new
1307 "Organizer" should then send out a new "REQUEST" with a modified
1308 version of the "VEVENT" in which the "SEQUENCE" number has been
1309 incremented and the "ORGANIZER" property has been changed to the new
1310 "Organizer".
1311
13123.2.2.5. Sending on Behalf of the Organizer
1313
1314 There are a number of scenarios that support the need for a "Calendar
1315 User" to act on behalf of the "Organizer" without explicit role
1316 changing. This might be the case if the CU designated as "Organizer"
1317 is sick or unable to perform duties associated with that function.
1318 In these cases, iTIP supports the notion of one CU acting on behalf
1319 of another. Using the "SENT-BY" parameter, a "Calendar User" could
1320 send an updated "VEVENT" "REQUEST". In the case where one CU sends
1321 on behalf of another CU, the "Attendee" responses are still directed
1322 back towards the CU designated as "Organizer".
1323
13243.2.2.6. Forwarding to an Uninvited CU
1325
1326 An "Attendee" invited to a "VEVENT" calendar component may send the
1327 "VEVENT" calendar component to another new CU not previously
1328 associated with the "VEVENT" calendar component. The current
1329 "Attendee" invited to the "VEVENT" calendar component does this by
1330 forwarding the original "REQUEST" method to the new CU. The new CU
1331 can send a "REPLY" to the "Organizer" of the "VEVENT" calendar
1332 component. The reply contains an "ATTENDEE" property for the new CU.
1333
1334 The "Organizer" ultimately decides whether or not the new CU becomes
1335 part of the event and is not obligated to do anything with a "REPLY"
1336 from a new (uninvited) CU. If the "Organizer" does not want the new
1337 CU to be part of the event, the new "ATTENDEE" property is not added
1338 to the "VEVENT" calendar component. The "Organizer" MAY send the CU
1339 a "CANCEL" message to indicate that they will not be added to the
1340 event. If the "Organizer" decides to add the new CU, the new
1341 "ATTENDEE" property is added to the "VEVENT" calendar component.
1342 Furthermore, the "Organizer" is free to change any "ATTENDEE"
1343
1344
1345
1346Daboo Standards Track [Page 24]
1347
1348RFC 5546 iTIP December 2009
1349
1350
1351 property parameter from the values supplied by the new CU to
1352 something the "Organizer" considers appropriate. The "Organizer"
1353 SHOULD send the new CU a "REQUEST" message to inform them that they
1354 have been added.
1355
1356 When forwarding a "REQUEST" to another CU, the forwarding "Attendee"
1357 MUST NOT make changes to the original message.
1358
13593.2.2.7. Updating Attendee Status
1360
1361 The "Organizer" of an event may also request updated status from one
1362 or more "Attendees". The "Organizer" sends a "REQUEST" method to the
1363 "Attendee" and sets the "ATTENDEE;RSVP=TRUE" property parameter. The
1364 "SEQUENCE" property for the event is not changed from its previous
1365 value. A recipient will determine that the only change in the
1366 "REQUEST" is that their "RSVP" property parameter indicates a request
1367 for updated status. The recipient SHOULD respond with a "REPLY"
1368 method indicating their current status with respect to the "REQUEST".
1369
13703.2.3. REPLY
1371
1372 The "REPLY" method in a "VEVENT" calendar component is used to
1373 respond (e.g., accept or decline) to a "REQUEST" or to reply to a
1374 delegation "REQUEST". When used to provide a delegation response,
1375 the "Delegator" SHOULD include the calendar address of the "Delegate"
1376 on the "DELEGATED-TO" property parameter of the "Delegator's"
1377 "ATTENDEE" property. The "Delegate" SHOULD include the calendar
1378 address of the "Delegator" on the "DELEGATED-FROM" property parameter
1379 of the "Delegate's" "ATTENDEE" property.
1380
1381 The "REPLY" method is also used when processing of a "REQUEST" fails.
1382 Depending on the value of the "REQUEST-STATUS" property, no
1383 scheduling action may have been performed.
1384
1385 The "Organizer" of an event may receive the "REPLY" method from a CU
1386 not in the original "REQUEST". For example, a "REPLY" may be
1387 received from a "Delegate" to an event. In addition, the "REPLY"
1388 method may be received from an unknown CU (a "Party Crasher"). This
1389 uninvited "Attendee" may be accepted, or the "Organizer" may cancel
1390 the event for the uninvited "Attendee" by sending a "CANCEL" method
1391 to the uninvited "Attendee".
1392
1393 An "Attendee" MAY include a message to the "Organizer" using the
1394 "COMMENT" property. For example, if the user indicates tentative
1395 acceptance and wants to let the "Organizer" know why, the reason can
1396 be expressed in the "COMMENT" property value.
1397
1398
1399
1400
1401
1402Daboo Standards Track [Page 25]
1403
1404RFC 5546 iTIP December 2009
1405
1406
1407 The "Organizer" may also receive a "REPLY" from one CU on behalf of
1408 another. Like the scenario enumerated above for the "Organizer",
1409 "Attendees" may have another CU respond on their behalf. This is
1410 done using the "SENT-BY" parameter.
1411
1412 The optional properties listed in the table below (those listed as
1413 "0+" or "0 or 1") MUST NOT be changed from those of the original
1414 request. If property changes are desired, the "COUNTER" message must
1415 be used.
1416
1417 This method type is an iCalendar object that conforms to the
1418 following property constraints:
1419
1420 +--------------------------------------------+
1421 | Constraints for a METHOD:REPLY of a VEVENT |
1422 +--------------------------------------------+
1423
1424 +--------------------+----------+-----------------------------------+
1425 | Component/Property | Presence | Comment |
1426 +--------------------+----------+-----------------------------------+
1427 | METHOD | 1 | MUST be REPLY. |
1428 | | | |
1429 | VEVENT | 1+ | All components MUST have the same |
1430 | | | UID. |
1431 | ATTENDEE | 1 | MUST be the address of the |
1432 | | | Attendee replying. |
1433 | DTSTAMP | 1 | |
1434 | ORGANIZER | 1 | |
1435 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1436 | | | of a recurring calendar |
1437 | | | component. Otherwise, it MUST |
1438 | | | NOT be present. |
1439 | UID | 1 | MUST be the UID of the original |
1440 | | | REQUEST. |
1441 | SEQUENCE | 0 or 1 | If non-zero, MUST be the sequence |
1442 | | | number of the original REQUEST. |
1443 | | | MAY be present if 0. |
1444 | ATTACH | 0+ | |
1445 | CATEGORIES | 0+ | |
1446 | CLASS | 0 or 1 | |
1447 | COMMENT | 0+ | |
1448 | CONTACT | 0+ | |
1449 | CREATED | 0 or 1 | |
1450 | DESCRIPTION | 0 or 1 | |
1451 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1452 | | | present. |
1453 | DTSTART | 0 or 1 | |
1454
1455
1456
1457
1458Daboo Standards Track [Page 26]
1459
1460RFC 5546 iTIP December 2009
1461
1462
1463 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1464 | | | present. |
1465 | EXDATE | 0+ | |
1466 | GEO | 0 or 1 | |
1467 | LAST-MODIFIED | 0 or 1 | |
1468 | LOCATION | 0 or 1 | |
1469 | PRIORITY | 0 or 1 | |
1470 | RDATE | 0+ | |
1471 | RELATED-TO | 0+ | |
1472 | RESOURCES | 0+ | |
1473 | REQUEST-STATUS | 0+ | |
1474 | RRULE | 0 or 1 | |
1475 | STATUS | 0 or 1 | |
1476 | SUMMARY | 0 or 1 | |
1477 | TRANSP | 0 or 1 | |
1478 | URL | 0 or 1 | |
1479 | IANA-PROPERTY | 0+ | |
1480 | X-PROPERTY | 0+ | |
1481 | | | |
1482 | VALARM | 0 | |
1483 | | | |
1484 | VTIMEZONE | 0 or 1 | MUST be present if any date/time |
1485 | | | refers to a timezone. |
1486 | | | |
1487 | IANA-COMPONENT | 0+ | |
1488 | X-COMPONENT | 0+ | |
1489 | | | |
1490 | VFREEBUSY | 0 | |
1491 | | | |
1492 | VJOURNAL | 0 | |
1493 | | | |
1494 | VTODO | 0 | |
1495 +--------------------+----------+-----------------------------------+
1496
14973.2.4. ADD
1498
1499 The "ADD" method allows the "Organizer" to add one or more new
1500 instances to an existing "VEVENT" using a single iTIP message without
1501 having to send the entire "VEVENT" with all the existing instance
1502 data, as it would have to do if the "REQUEST" method were used.
1503
1504 The "UID" must be that of the existing event. If the "UID" property
1505 value in the "ADD" is not found on the recipient's calendar, then the
1506 recipient SHOULD send a "REFRESH" to the "Organizer" in order to be
1507 updated with the latest version of the "VEVENT". If an "Attendee"
1508 implementation does not support the "ADD" method, it should respond
1509 with a "REQUEST-STATUS" value of 3.14 and ask for a "REFRESH".
1510
1511
1512
1513
1514Daboo Standards Track [Page 27]
1515
1516RFC 5546 iTIP December 2009
1517
1518
1519 When handling an "ADD" message, the "Attendee" treats each component
1520 in the "ADD" message as if it were referenced via an "RDATE" in the
1521 main component.
1522
1523 This method type is an iCalendar object that conforms to the
1524 following property constraints:
1525
1526 +------------------------------------------+
1527 | Constraints for a METHOD:ADD of a VEVENT |
1528 +------------------------------------------+
1529
1530 +--------------------+----------+-----------------------------------+
1531 | Component/Property | Presence | Comment |
1532 +--------------------+----------+-----------------------------------+
1533 | METHOD | 1 | MUST be ADD. |
1534 | | | |
1535 | VEVENT | 1 | |
1536 | DTSTAMP | 1 | |
1537 | DTSTART | 1 | |
1538 | ORGANIZER | 1 | |
1539 | SEQUENCE | 1 | MUST be greater than 0. |
1540 | SUMMARY | 1 | Can be null. |
1541 | UID | 1 | MUST match that of the original |
1542 | | | event. |
1543 | ATTACH | 0+ | |
1544 | ATTENDEE | 0+ | |
1545 | CATEGORIES | 0+ | |
1546 | CLASS | 0 or 1 | |
1547 | COMMENT | 0+ | |
1548 | CONTACT | 0+ | |
1549 | CREATED | 0 or 1 | |
1550 | DESCRIPTION | 0 or 1 | Can be null. |
1551 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1552 | | | present. |
1553 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1554 | | | present. |
1555 | GEO | 0 or 1 | |
1556 | LAST-MODIFIED | 0 or 1 | |
1557 | LOCATION | 0 or 1 | |
1558 | PRIORITY | 0 or 1 | |
1559 | RELATED-TO | 0+ | |
1560 | RESOURCES | 0+ | |
1561 | STATUS | 0 or 1 | MAY be one of |
1562 | | | TENTATIVE/CONFIRMED. |
1563 | TRANSP | 0 or 1 | |
1564 | URL | 0 or 1 | |
1565 | IANA-PROPERTY | 0+ | |
1566 | X-PROPERTY | 0+ | |
1567
1568
1569
1570Daboo Standards Track [Page 28]
1571
1572RFC 5546 iTIP December 2009
1573
1574
1575 | EXDATE | 0 | |
1576 | RECURRENCE-ID | 0 | |
1577 | REQUEST-STATUS | 0 | |
1578 | RDATE | 0 | |
1579 | RRULE | 0 | |
1580 | | | |
1581 | VALARM | 0+ | |
1582 | | | |
1583 | VTIMEZONE | 0+ | MUST be present if any date/time |
1584 | | | refers to a timezone. |
1585 | | | |
1586 | IANA-COMPONENT | 0+ | |
1587 | X-COMPONENT | 0+ | |
1588 | | | |
1589 | VFREEBUSY | 0 | |
1590 | | | |
1591 | VTODO | 0 | |
1592 | | | |
1593 | VJOURNAL | 0 | |
1594 +--------------------+----------+-----------------------------------+
1595
15963.2.5. CANCEL
1597
1598 The "CANCEL" method in a "VEVENT" calendar component is used to send
1599 a cancellation notice of an existing event request to the affected
1600 "Attendees". The message is sent by the "Organizer" of the event.
1601 For a recurring event, either the whole event or instances of an
1602 event may be cancelled. To cancel the complete range of a recurring
1603 event, the "UID" property value for the event MUST be specified and a
1604 "RECURRENCE-ID" MUST NOT be specified in the "CANCEL" method. In
1605 order to cancel an individual instance of the event, the
1606 "RECURRENCE-ID" property value for the event MUST be specified in the
1607 "CANCEL" method.
1608
1609 There are two options for canceling a sequence of instances of a
1610 recurring "VEVENT" calendar component:
1611
1612 a. The "RECURRENCE-ID" property for an instance in the sequence MUST
1613 be specified with the "RANGE" property parameter value of
1614 "THISANDFUTURE" to indicate cancellation of the specified
1615 "VEVENT" calendar component and all instances after.
1616
1617 b. Individual recurrence instances may be cancelled by specifying
1618 multiple "VEVENT" components each with a "RECURRENCE-ID" property
1619 corresponding to one of the instances to be cancelled.
1620
1621
1622
1623
1624
1625
1626Daboo Standards Track [Page 29]
1627
1628RFC 5546 iTIP December 2009
1629
1630
1631 The "Organizer" MUST send a "CANCEL" message to each "Attendee"
1632 affected by the cancellation. This can be done using a single
1633 "CANCEL" message for all "Attendees" or by using multiple messages
1634 with different subsets of the affected "Attendees" in each.
1635
1636 When a "VEVENT" is cancelled, the "SEQUENCE" property value MUST be
1637 incremented as described in Section 2.1.4.
1638
1639 This method type is an iCalendar object that conforms to the
1640 following property constraints:
1641
1642 +---------------------------------------------+
1643 | Constraints for a METHOD:CANCEL of a VEVENT |
1644 +---------------------------------------------+
1645
1646 +--------------------+----------+-----------------------------------+
1647 | Component/Property | Presence | Comment |
1648 +--------------------+----------+-----------------------------------+
1649 | METHOD | 1 | MUST be CANCEL. |
1650 | | | |
1651 | VEVENT | 1+ | All must have the same UID. |
1652 | ATTENDEE | 0+ | MUST include some or all |
1653 | | | Attendees being removed from the |
1654 | | | event. MUST include some or all |
1655 | | | Attendees if the entire event is |
1656 | | | cancelled. |
1657 | DTSTAMP | 1 | |
1658 | ORGANIZER | 1 | |
1659 | SEQUENCE | 1 | |
1660 | UID | 1 | MUST be the UID of the original |
1661 | | | REQUEST. |
1662 | COMMENT | 0+ | |
1663 | ATTACH | 0+ | |
1664 | CATEGORIES | 0+ | |
1665 | CLASS | 0 or 1 | |
1666 | CONTACT | 0+ | |
1667 | CREATED | 0 or 1 | |
1668 | DESCRIPTION | 0 or 1 | |
1669 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1670 | | | present. |
1671 | DTSTART | 0 or 1 | |
1672 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1673 | | | present. |
1674 | EXDATE | 0+ | |
1675 | GEO | 0 or 1 | |
1676 | LAST-MODIFIED | 0 or 1 | |
1677 | LOCATION | 0 or 1 | |
1678 | PRIORITY | 0 or 1 | |
1679
1680
1681
1682Daboo Standards Track [Page 30]
1683
1684RFC 5546 iTIP December 2009
1685
1686
1687 | RDATE | 0+ | |
1688 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1689 | | | of a recurring calendar |
1690 | | | component. Otherwise, it MUST |
1691 | | | NOT be present. |
1692 | RELATED-TO | 0+ | |
1693 | RESOURCES | 0+ | |
1694 | RRULE | 0 or 1 | |
1695 | STATUS | 0 or 1 | MUST be set to CANCELLED to |
1696 | | | cancel the entire event. If |
1697 | | | uninviting specific Attendees, |
1698 | | | then MUST NOT be included. |
1699 | SUMMARY | 0 or 1 | |
1700 | TRANSP | 0 or 1 | |
1701 | URL | 0 or 1 | |
1702 | IANA-PROPERTY | 0+ | |
1703 | X-PROPERTY | 0+ | |
1704 | REQUEST-STATUS | 0 | |
1705 | | | |
1706 | VALARM | 0 | |
1707 | | | |
1708 | VTIMEZONE | 0+ | MUST be present if any date/time |
1709 | | | refers to a timezone. |
1710 | | | |
1711 | IANA-COMPONENT | 0+ | |
1712 | X-COMPONENT | 0+ | |
1713 | | | |
1714 | VTODO | 0 | |
1715 | | | |
1716 | VJOURNAL | 0 | |
1717 | | | |
1718 | VFREEBUSY | 0 | |
1719 +--------------------+----------+-----------------------------------+
1720
17213.2.6. REFRESH
1722
1723 The "REFRESH" method in a "VEVENT" calendar component is used by
1724 "Attendees" of an existing event to request an updated description
1725 from the event "Organizer". The "REFRESH" method must specify the
1726 "UID" property of the event to update. A recurrence instance of an
1727 event may be requested by specifying the "RECURRENCE-ID" property
1728 corresponding to the associated event. The "Organizer" responds with
1729 the latest description and version of the event.
1730
1731 This method type is an iCalendar object that conforms to the
1732 following property constraints:
1733
1734
1735
1736
1737
1738Daboo Standards Track [Page 31]
1739
1740RFC 5546 iTIP December 2009
1741
1742
1743 +----------------------------------------------+
1744 | Constraints for a METHOD:REFRESH of a VEVENT |
1745 +----------------------------------------------+
1746
1747 +--------------------+----------+-----------------------------------+
1748 | Component/Property | Presence | Comment |
1749 +--------------------+----------+-----------------------------------+
1750 | METHOD | 1 | MUST be REFRESH. |
1751 | | | |
1752 | VEVENT | 1 | |
1753 | ATTENDEE | 1 | MUST be the address of requester. |
1754 | DTSTAMP | 1 | |
1755 | ORGANIZER | 1 | |
1756 | UID | 1 | MUST be the UID associated with |
1757 | | | original REQUEST. |
1758 | COMMENT | 0+ | |
1759 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1760 | | | of a recurring calendar |
1761 | | | component. Otherwise, it MUST |
1762 | | | NOT be present. |
1763 | IANA-PROPERTY | 0+ | |
1764 | X-PROPERTY | 0+ | |
1765 | ATTACH | 0 | |
1766 | CATEGORIES | 0 | |
1767 | CLASS | 0 | |
1768 | CONTACT | 0 | |
1769 | CREATED | 0 | |
1770 | DESCRIPTION | 0 | |
1771 | DTEND | 0 | |
1772 | DTSTART | 0 | |
1773 | DURATION | 0 | |
1774 | EXDATE | 0 | |
1775 | GEO | 0 | |
1776 | LAST-MODIFIED | 0 | |
1777 | LOCATION | 0 | |
1778 | PRIORITY | 0 | |
1779 | RDATE | 0 | |
1780 | RELATED-TO | 0 | |
1781 | REQUEST-STATUS | 0 | |
1782 | RESOURCES | 0 | |
1783 | RRULE | 0 | |
1784 | SEQUENCE | 0 | |
1785 | STATUS | 0 | |
1786 | SUMMARY | 0 | |
1787 | TRANSP | 0 | |
1788 | URL | 0 | |
1789 | | | |
1790
1791
1792
1793
1794Daboo Standards Track [Page 32]
1795
1796RFC 5546 iTIP December 2009
1797
1798
1799 | VALARM | 0 | |
1800 | | | |
1801 | VTIMEZONE | 0+ | |
1802 | | | |
1803 | IANA-COMPONENT | 0+ | |
1804 | X-COMPONENT | 0+ | |
1805 | | | |
1806 | VTODO | 0 | |
1807 | | | |
1808 | VJOURNAL | 0 | |
1809 | | | |
1810 | VFREEBUSY | 0 | |
1811 +--------------------+----------+-----------------------------------+
1812
18133.2.7. COUNTER
1814
1815 The "COUNTER" method for a "VEVENT" calendar component is used by an
1816 "Attendee" of an existing event to submit to the "Organizer" a
1817 counter proposal to the event. The "Attendee" sends this message to
1818 the "Organizer" of the event.
1819
1820 The counter proposal is an iCalendar object consisting of a "VEVENT"
1821 calendar component that provides the complete description of the
1822 alternate event.
1823
1824 The "Organizer" rejects the counter proposal by sending the
1825 "Attendee" a "DECLINECOUNTER" method. The "Organizer" accepts the
1826 counter proposal by rescheduling the event as described in
1827 Section 3.2.2.1, "Rescheduling an Event". The "Organizer's" CUA
1828 SHOULD send a "REQUEST" message to all "Attendees" affected by any
1829 change triggered by an accepted "COUNTER".
1830
1831 This method type is an iCalendar object that conforms to the
1832 following property constraints:
1833
1834 +----------------------------------------------+
1835 | Constraints for a METHOD:COUNTER of a VEVENT |
1836 +----------------------------------------------+
1837
1838 +--------------------+----------+-----------------------------------+
1839 | Component/Property | Presence | Comment |
1840 +--------------------+----------+-----------------------------------+
1841 | METHOD | 1 | MUST be COUNTER. |
1842 | | | |
1843 | VEVENT | 1 | |
1844 | DTSTAMP | 1 | |
1845 | DTSTART | 1 | |
1846
1847
1848
1849
1850Daboo Standards Track [Page 33]
1851
1852RFC 5546 iTIP December 2009
1853
1854
1855 | ORGANIZER | 1 | MUST be the Organizer of the |
1856 | | | original event. |
1857 | SEQUENCE | 1 | MUST echo the original SEQUENCE |
1858 | | | number. MUST be present if |
1859 | | | non-zero. MAY be present if |
1860 | | | zero. |
1861 | SUMMARY | 1 | Can be null. |
1862 | UID | 1 | MUST be the UID associated with |
1863 | | | the REQUEST being countered. |
1864 | ATTACH | 0+ | |
1865 | ATTENDEE | 0+ | Can also be used to propose other |
1866 | | | Attendees. |
1867 | CATEGORIES | 0+ | |
1868 | CLASS | 0 or 1 | |
1869 | COMMENT | 0+ | |
1870 | CONTACT | 0+ | |
1871 | CREATED | 0 or 1 | |
1872 | DESCRIPTION | 0 or 1 | |
1873 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1874 | | | present. |
1875 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1876 | | | present. |
1877 | EXDATE | 0+ | |
1878 | GEO | 0 or 1 | |
1879 | LAST-MODIFIED | 0 or 1 | |
1880 | LOCATION | 0 or 1 | |
1881 | PRIORITY | 0 or 1 | |
1882 | RDATE | 0+ | |
1883 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1884 | | | of a recurring calendar |
1885 | | | component. Otherwise, it MUST |
1886 | | | NOT be present. |
1887 | RELATED-TO | 0+ | |
1888 | REQUEST-STATUS | 0+ | |
1889 | RESOURCES | 0+ | |
1890 | RRULE | 0 or 1 | |
1891 | STATUS | 0 or 1 | Value must be one of |
1892 | | | CONFIRMED/TENATIVE/CANCELLED. |
1893 | TRANSP | 0 or 1 | |
1894 | URL | 0 or 1 | |
1895 | IANA-PROPERTY | 0+ | |
1896 | X-PROPERTY | 0+ | |
1897 | | | |
1898 | VALARM | 0+ | |
1899 | | | |
1900 | VTIMEZONE | 0+ | MUST be present if any date/time |
1901 | | | refers to a timezone. |
1902 | | | |
1903
1904
1905
1906Daboo Standards Track [Page 34]
1907
1908RFC 5546 iTIP December 2009
1909
1910
1911 | IANA-COMPONENT | 0+ | |
1912 | X-COMPONENT | 0+ | |
1913 | | | |
1914 | VTODO | 0 | |
1915 | | | |
1916 | VJOURNAL | 0 | |
1917 | | | |
1918 | VFREEBUSY | 0 | |
1919 +--------------------+----------+-----------------------------------+
1920
19213.2.8. DECLINECOUNTER
1922
1923 The "DECLINECOUNTER" method in a "VEVENT" calendar component is used
1924 by the "Organizer" of an event to reject a counter proposal submitted
1925 by an "Attendee". The "Organizer" must send the "DECLINECOUNTER"
1926 message to the "Attendee" that sent the "COUNTER" method to the
1927 "Organizer".
1928
1929 This method type is an iCalendar object that conforms to the
1930 following property constraints:
1931
1932 +-----------------------------------------------------+
1933 | Constraints for a METHOD:DECLINECOUNTER of a VEVENT |
1934 +-----------------------------------------------------+
1935
1936 +--------------------+----------+-----------------------------------+
1937 | Component/Property | Presence | Comment |
1938 +--------------------+----------+-----------------------------------+
1939 | METHOD | 1 | MUST be DECLINECOUNTER. |
1940 | | | |
1941 | VEVENT | 1+ | All components MUST have the same |
1942 | | | UID. |
1943 | ATTENDEE | 1+ | MUST for all Attendees. |
1944 | DTSTAMP | 1 | |
1945 | ORGANIZER | 1 | |
1946 | SEQUENCE | 1 | MUST echo the original SEQUENCE |
1947 | | | number. |
1948 | UID | 1 | MUST echo original UID. |
1949 | ATTACH | 0+ | |
1950 | CATEGORIES | 0+ | |
1951 | CLASS | 0 or 1 | |
1952 | COMMENT | 0+ | |
1953 | CONTACT | 0+ | |
1954 | CREATED | 0 or 1 | |
1955 | DESCRIPTION | 0 or 1 | Can be null. |
1956 | DTSTART | 0 or 1 | |
1957 | DTEND | 0 or 1 | If present, DURATION MUST NOT be |
1958 | | | present. |
1959
1960
1961
1962Daboo Standards Track [Page 35]
1963
1964RFC 5546 iTIP December 2009
1965
1966
1967 | DURATION | 0 or 1 | If present, DTEND MUST NOT be |
1968 | | | present. |
1969 | EXDATE | 0+ | |
1970 | GEO | 0 or 1 | |
1971 | LAST-MODIFIED | 0 or 1 | |
1972 | LOCATION | 0 or 1 | |
1973 | PRIORITY | 0 or 1 | |
1974 | RDATE | 0+ | |
1975 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
1976 | | | of a recurring calendar |
1977 | | | component. Otherwise, it MUST |
1978 | | | NOT be present. |
1979 | RELATED-TO | 0+ | |
1980 | REQUEST-STATUS | 0+ | |
1981 | RESOURCES | 0+ | |
1982 | RRULE | 0 or 1 | |
1983 | STATUS | 0 or 1 | MAY be one of |
1984 | | | TENTATIVE/CONFIRMED. |
1985 | SUMMARY | 0 or 1 | Can be null. |
1986 | TRANSP | 0 or 1 | |
1987 | URL | 0 or 1 | |
1988 | IANA-PROPERTY | 0+ | |
1989 | X-PROPERTY | 0+ | |
1990 | | | |
1991 | | | |
1992 | VTIMEZONE | 0+ | MUST be present if any date/time |
1993 | | | refers to a timezone. |
1994 | | | |
1995 | IANA-COMPONENT | 0+ | |
1996 | X-COMPONENT | 0+ | |
1997 | | | |
1998 | VALARM | 0 | |
1999 | VFREEBUSY | 0 | |
2000 | | | |
2001 | VJOURNAL | 0 | |
2002 | | | |
2003 | VTODO | 0 | |
2004 +--------------------+----------+-----------------------------------+
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018Daboo Standards Track [Page 36]
2019
2020RFC 5546 iTIP December 2009
2021
2022
20233.3. Methods for VFREEBUSY Components
2024
2025 This section defines the property set for the methods that are
2026 applicable to the "VFREEBUSY" calendar component. Each of the
2027 methods is defined using a restriction table.
2028
2029 This document only addresses the transfer of busy time information.
2030 Applications desiring free time information MUST infer this from
2031 available busy time information.
2032
2033 The "FREEBUSY" property value MAY include a list of values, separated
2034 by the COMMA character (US-ASCII decimal 44). Alternately, multiple
2035 busy time periods MAY be specified with multiple instances of the
2036 "FREEBUSY" property. Both forms MUST be supported by implementations
2037 conforming to this document. Duplicate busy time periods SHOULD NOT
2038 be specified in an iCalendar object. However, two different busy
2039 time periods MAY overlap.
2040
2041 "FREEBUSY" properties SHOULD be sorted such that their values are in
2042 ascending order, based on the start time and then the end time, with
2043 the earliest periods first. For example, today's busy time
2044 information should appear after yesterday's busy time information.
2045 And the busy time for this half-hour should appear after the busy
2046 time for earlier today. Busy time periods can also span a day
2047 boundary.
2048
2049 The following summarizes the methods that are defined for the
2050 "VFREEBUSY" calendar component.
2051
2052 +---------+-------------------------------------+
2053 | Method | Description |
2054 +---------+-------------------------------------+
2055 | PUBLISH | Publish unsolicited busy time data. |
2056 | | |
2057 | REQUEST | Request busy time data. |
2058 | | |
2059 | REPLY | Reply to a busy time request. |
2060 +---------+-------------------------------------+
2061
20623.3.1. PUBLISH
2063
2064 The "PUBLISH" method in a "VFREEBUSY" calendar component is used to
2065 publish busy time data. The method may be sent from one CU to any
2066 other. The purpose of the method is to provide a way to send
2067 unsolicited busy time data. That is, the busy time data is not being
2068 sent as a "REPLY" to the receipt of a "REQUEST" method.
2069
2070
2071
2072
2073
2074Daboo Standards Track [Page 37]
2075
2076RFC 5546 iTIP December 2009
2077
2078
2079 The "ORGANIZER" property MUST be specified in the busy time
2080 information. The value is the CU address of the originator of the
2081 busy time information.
2082
2083 The busy time information within the iCalendar object MAY be grouped
2084 into more than one "VFREEBUSY" calendar component. This capability
2085 allows busy time periods to be grouped according to some common
2086 periodicity, such as a calendar week, month, or year. In this case,
2087 each "VFREEBUSY" calendar component MUST include the "ORGANIZER",
2088 "DTSTART", and "DTEND" properties in order to specify the source of
2089 the busy time information and the date and time interval over which
2090 the busy time information covers.
2091
2092 This method type is an iCalendar object that conforms to the
2093 following property constraints:
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130Daboo Standards Track [Page 38]
2131
2132RFC 5546 iTIP December 2009
2133
2134
2135 +-------------------------------------------------+
2136 | Constraints for a METHOD:PUBLISH of a VFREEBUSY |
2137 +-------------------------------------------------+
2138
2139 +--------------------+----------+-----------------------------------+
2140 | Component/Property | Presence | Comment |
2141 +--------------------+----------+-----------------------------------+
2142 | METHOD | 1 | MUST be PUBLISH. |
2143 | | | |
2144 | VFREEBUSY | 1+ | |
2145 | DTSTAMP | 1 | |
2146 | DTSTART | 1 | DateTime values must be in UTC. |
2147 | DTEND | 1 | DateTime values must be in UTC. |
2148 | FREEBUSY | 0+ | MUST be BUSYTIME. Multiple |
2149 | | | instances are allowed. Multiple |
2150 | | | instances SHOULD be sorted in |
2151 | | | ascending order. |
2152 | ORGANIZER | 1 | MUST contain the address of |
2153 | | | originator of busy time data. |
2154 | UID | 1 | |
2155 | COMMENT | 0+ | |
2156 | CONTACT | 0 or 1 | |
2157 | IANA-PROPERTY | 0+ | |
2158 | X-PROPERTY | 0+ | |
2159 | URL | 0 or 1 | Specifies busy time URL. |
2160 | ATTENDEE | 0 | |
2161 | DURATION | 0 | |
2162 | REQUEST-STATUS | 0 | |
2163 | | | |
2164 | VALARM | 0 | |
2165 | | | |
2166 | IANA-COMPONENT | 0+ | |
2167 | X-COMPONENT | 0+ | |
2168 | | | |
2169 | VEVENT | 0 | |
2170 | | | |
2171 | VTODO | 0 | |
2172 | | | |
2173 | VJOURNAL | 0 | |
2174 | | | |
2175 | VTIMEZONE | 0 | |
2176 +--------------------+----------+-----------------------------------+
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186Daboo Standards Track [Page 39]
2187
2188RFC 5546 iTIP December 2009
2189
2190
21913.3.2. REQUEST
2192
2193 The "REQUEST" method in a "VFREEBUSY" calendar component is used to
2194 ask a "Calendar User" for their busy time information. The request
2195 may be for a busy time information bounded by a specific date and
2196 time interval.
2197
2198 This message only permits requests for busy time information. The
2199 message is sent from a "Calendar User" requesting the busy time
2200 information of one or more intended recipients.
2201
2202 If the originator of the "REQUEST" method is not authorized to make a
2203 busy time request on the recipient's calendar system, then an
2204 exception message SHOULD be returned in a "REPLY" method, but no busy
2205 time data need be returned.
2206
2207 This method type is an iCalendar object that conforms to the
2208 following property constraints:
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242Daboo Standards Track [Page 40]
2243
2244RFC 5546 iTIP December 2009
2245
2246
2247 +-------------------------------------------------+
2248 | Constraints for a METHOD:REQUEST of a VFREEBUSY |
2249 +-------------------------------------------------+
2250
2251 +--------------------+----------+-----------------------------------+
2252 | Component/Property | Presence | Comment |
2253 +--------------------+----------+-----------------------------------+
2254 | METHOD | 1 | MUST be REQUEST. |
2255 | | | |
2256 | VFREEBUSY | 1 | |
2257 | ATTENDEE | 1+ | Contains the calendar user |
2258 | | | addresses of the "Calendar Users" |
2259 | | | whose freebusy is being |
2260 | | | requested. |
2261 | DTEND | 1 | DateTime values must be in UTC. |
2262 | DTSTAMP | 1 | |
2263 | DTSTART | 1 | DateTime values must be in UTC. |
2264 | ORGANIZER | 1 | MUST be the request originator's |
2265 | | | address. |
2266 | UID | 1 | |
2267 | COMMENT | 0+ | |
2268 | CONTACT | 0 or 1 | |
2269 | IANA-PROPERTY | 0+ | |
2270 | X-PROPERTY | 0+ | |
2271 | FREEBUSY | 0 | |
2272 | DURATION | 0 | |
2273 | REQUEST-STATUS | 0 | |
2274 | URL | 0 | |
2275 | | | |
2276 | VALARM | 0 | |
2277 | | | |
2278 | IANA-COMPONENT | 0+ | |
2279 | X-COMPONENT | 0+ | |
2280 | | | |
2281 | VEVENT | 0 | |
2282 | | | |
2283 | VTODO | 0 | |
2284 | | | |
2285 | VJOURNAL | 0 | |
2286 | | | |
2287 | VTIMEZONE | 0 | |
2288 +--------------------+----------+-----------------------------------+
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298Daboo Standards Track [Page 41]
2299
2300RFC 5546 iTIP December 2009
2301
2302
23033.3.3. REPLY
2304
2305 The "REPLY" method in a "VFREEBUSY" calendar component is used to
2306 respond to a busy time request. The method is sent by the recipient
2307 of a busy time request to the originator of the request.
2308
2309 The "REPLY" method may also be used to respond to an unsuccessful
2310 "REQUEST" method. Depending on the "REQUEST-STATUS" value, no busy
2311 time information may be returned.
2312
2313 This method type is an iCalendar object that conforms to the
2314 following property constraints:
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354Daboo Standards Track [Page 42]
2355
2356RFC 5546 iTIP December 2009
2357
2358
2359 +-----------------------------------------------+
2360 | Constraints for a METHOD:REPLY of a VFREEBUSY |
2361 +-----------------------------------------------+
2362
2363 +--------------------+----------+-----------------------------------+
2364 | Component/Property | Presence | Comment |
2365 +--------------------+----------+-----------------------------------+
2366 | METHOD | 1 | MUST be REPLY. |
2367 | | | |
2368 | VFREEBUSY | 1 | |
2369 | ATTENDEE | 1 | MUST be the address of the |
2370 | | | Attendee replying. |
2371 | DTSTAMP | 1 | |
2372 | DTEND | 1 | DateTime values must be in UTC. |
2373 | DTSTART | 1 | DateTime values must be in UTC. |
2374 | FREEBUSY | 0+ | MUST be BUSYTIME. Multiple |
2375 | | | instances are allowed. Multiple |
2376 | | | instances SHOULD be sorted in |
2377 | | | ascending order. |
2378 | ORGANIZER | 1 | MUST be the request originator's |
2379 | | | address. |
2380 | UID | 1 | MUST be the UID of the original |
2381 | | | REQUEST. |
2382 | COMMENT | 0+ | |
2383 | CONTACT | 0 or 1 | |
2384 | REQUEST-STATUS | 0+ | |
2385 | URL | 0 or 1 | Specifies busy time URL. |
2386 | IANA-PROPERTY | 0+ | |
2387 | X-PROPERTY | 0+ | |
2388 | DURATION | 0 | |
2389 | SEQUENCE | 0 | |
2390 | | | |
2391 | VALARM | 0 | |
2392 | | | |
2393 | IANA-COMPONENT | 0+ | |
2394 | X-COMPONENT | 0+ | |
2395 | | | |
2396 | VEVENT | 0 | |
2397 | | | |
2398 | VTODO | 0 | |
2399 | | | |
2400 | VJOURNAL | 0 | |
2401 | | | |
2402 | VTIMEZONE | 0 | |
2403 +--------------------+----------+-----------------------------------+
2404
2405
2406
2407
2408
2409
2410Daboo Standards Track [Page 43]
2411
2412RFC 5546 iTIP December 2009
2413
2414
24153.4. Methods for VTODO Components
2416
2417 This section defines the property set for the methods that are
2418 applicable to the "VTODO" calendar component. Each of the methods is
2419 defined using a restriction table that specifies the property
2420 constraints that define the particular method.
2421
2422 The following summarizes the methods that are defined for the "VTODO"
2423 calendar component.
2424
2425 +----------------+--------------------------------------------------+
2426 | Method | Description |
2427 +----------------+--------------------------------------------------+
2428 | PUBLISH | Post notification of a VTODO. Used primarily as |
2429 | | a method of advertising the existence of a |
2430 | | VTODO. |
2431 | | |
2432 | REQUEST | Assign a VTODO. This is an explicit assignment |
2433 | | to one or more Calendar Users. The REQUEST |
2434 | | method is also used to update or change an |
2435 | | existing VTODO. Clients that cannot handle |
2436 | | REQUEST MAY degrade the method to treat it as a |
2437 | | PUBLISH. |
2438 | | |
2439 | REPLY | Reply to a VTODO request. Attendees MAY set |
2440 | | PARTSTAT to ACCEPTED, DECLINED, TENTATIVE, |
2441 | | DELEGATED, PARTIAL, and COMPLETED. |
2442 | | |
2443 | ADD | Add one or more instances to an existing to-do. |
2444 | | |
2445 | CANCEL | Cancel one or more instances of an existing |
2446 | | to-do. |
2447 | | |
2448 | REFRESH | A request sent to a VTODO Organizer asking for |
2449 | | the latest version of a VTODO. |
2450 | | |
2451 | COUNTER | Counter a REQUEST with an alternative proposal. |
2452 | | |
2453 | DECLINECOUNTER | Decline a counter proposal by an Attendee. |
2454 +----------------+--------------------------------------------------+
2455
24563.4.1. PUBLISH
2457
2458 The "PUBLISH" method in a "VTODO" calendar component has no
2459 associated response. It is simply a posting of an iCalendar object
2460 that may be added to a calendar. It MUST have an "Organizer". It
2461 MUST NOT have "Attendees". Its expected usage is for encapsulating
2462 an arbitrary "VTODO" calendar component as an iCalendar object. The
2463
2464
2465
2466Daboo Standards Track [Page 44]
2467
2468RFC 5546 iTIP December 2009
2469
2470
2471 "Organizer" MAY subsequently update (with another "PUBLISH" method),
2472 add instances to (with an "ADD" method), or cancel (with a "CANCEL"
2473 method) a previously published "VTODO" calendar component.
2474
2475 This method type is an iCalendar object that conforms to the
2476 following property constraints:
2477
2478 +---------------------------------------------+
2479 | Constraints for a METHOD:PUBLISH of a VTODO |
2480 +---------------------------------------------+
2481
2482 +--------------------+----------+-----------------------------------+
2483 | Component/Property | Presence | Comment |
2484 +--------------------+----------+-----------------------------------+
2485 | METHOD | 1 | MUST be PUBLISH. |
2486 | | | |
2487 | VTODO | 1+ | |
2488 | DTSTAMP | 1 | |
2489 | DTSTART | 1 | |
2490 | ORGANIZER | 1 | |
2491 | PRIORITY | 1 | |
2492 | SEQUENCE | 0 or 1 | MUST be present if value is |
2493 | | | greater than 0; MAY be present if |
2494 | | | 0. |
2495 | SUMMARY | 1 | Can be null. |
2496 | UID | 1 | |
2497 | ATTACH | 0+ | |
2498 | CATEGORIES | 0+ | |
2499 | CLASS | 0 or 1 | |
2500 | COMMENT | 0+ | |
2501 | COMPLETED | 0 or 1 | |
2502 | CONTACT | 0+ | |
2503 | CREATED | 0 or 1 | |
2504 | DESCRIPTION | 0 or 1 | Can be null. |
2505 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
2506 | | | present. |
2507 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
2508 | | | present. |
2509 | EXDATE | 0+ | |
2510 | GEO | 0 or 1 | |
2511 | LAST-MODIFIED | 0 or 1 | |
2512 | LOCATION | 0 or 1 | |
2513 | PERCENT-COMPLETE | 0 or 1 | |
2514 | RDATE | 0+ | |
2515 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
2516 | | | of a recurring calendar |
2517 | | | component. Otherwise, it MUST |
2518 | | | NOT be present. |
2519
2520
2521
2522Daboo Standards Track [Page 45]
2523
2524RFC 5546 iTIP December 2009
2525
2526
2527 | RELATED-TO | 0+ | |
2528 | RESOURCES | 0+ | |
2529 | RRULE | 0 or 1 | |
2530 | STATUS | 0 or 1 | MAY be one of |
2531 | | | COMPLETED/NEEDS-ACTION/ |
2532 | | | IN-PROCESS/CANCELLED. |
2533 | URL | 0 or 1 | |
2534 | IANA-PROPERTY | 0+ | |
2535 | X-PROPERTY | 0+ | |
2536 | ATTENDEE | 0 | |
2537 | REQUEST-STATUS | 0 | |
2538 | | | |
2539 | VALARM | 0+ | |
2540 | | | |
2541 | VTIMEZONE | 0+ | MUST be present if any date/time |
2542 | | | refers to a timezone. |
2543 | | | |
2544 | IANA-COMPONENT | 0+ | |
2545 | X-COMPONENT | 0+ | |
2546 | | | |
2547 | VFREEBUSY | 0 | |
2548 | | | |
2549 | VEVENT | 0 | |
2550 | | | |
2551 | VJOURNAL | 0 | |
2552 +--------------------+----------+-----------------------------------+
2553
25543.4.2. REQUEST
2555
2556 The "REQUEST" method in a "VTODO" calendar component provides the
2557 following scheduling functions:
2558
2559 o Assign a to-do to one or more "Calendar Users".
2560
2561 o Reschedule an existing to-do.
2562
2563 o Update the details of an existing to-do, without rescheduling it.
2564
2565 o Update the completion status of "Attendees" of an existing to-do,
2566 without rescheduling it.
2567
2568 o Reconfirm an existing to-do, without rescheduling it.
2569
2570 o Delegate/reassign an existing to-do to another "Calendar User".
2571
2572 The assigned "Calendar Users" are identified in the "VTODO" calendar
2573 component by individual "ATTENDEE;ROLE=REQ-PARTICIPANT" property
2574 value sequences.
2575
2576
2577
2578Daboo Standards Track [Page 46]
2579
2580RFC 5546 iTIP December 2009
2581
2582
2583 Typically, the originator of a "REQUEST" is the "Organizer" of the
2584 to-do, and the recipient of a "REQUEST" is the "Calendar User"
2585 assigned the to-do. The "Attendee" uses the "REPLY" method to convey
2586 their acceptance and completion status to the "Organizer" of the
2587 "REQUEST".
2588
2589 The "UID", "SEQUENCE", and "DTSTAMP" properties are used to
2590 distinguish the various uses of the "REQUEST" method. If the "UID"
2591 property value in the "REQUEST" is not found on the recipient's
2592 calendar, then the "REQUEST" is for a new to-do. If the "UID"
2593 property value is found on the recipient's calendar, then the
2594 "REQUEST" is a rescheduling, an update, or a reconfirmation of the
2595 "VTODO" calendar object.
2596
2597 If the "Organizer" of the "REQUEST" method is not authorized to make
2598 a to-do request on the "Attendee's" calendar system, then an
2599 exception is returned in the "REQUEST-STATUS" property of a
2600 subsequent "REPLY" method, but no scheduling action is performed.
2601
2602 For the "REQUEST" method, multiple "VTODO" components in a single
2603 iCalendar object are only permitted for components with the same
2604 "UID" property. That is, a series of recurring events may have
2605 instance-specific information. In this case, multiple "VTODO"
2606 components are needed to express the entire series.
2607
2608 This method type is an iCalendar object that conforms to the
2609 following property constraints:
2610
2611 +---------------------------------------------+
2612 | Constraints for a METHOD:REQUEST of a VTODO |
2613 +---------------------------------------------+
2614
2615 +--------------------+----------+-----------------------------------+
2616 | Component/Property | Presence | Comment |
2617 +--------------------+----------+-----------------------------------+
2618 | METHOD | 1 | MUST be REQUEST. |
2619 | | | |
2620 | VTODO | 1+ | All components must have the same |
2621 | | | UID. |
2622 | ATTENDEE | 1+ | |
2623 | DTSTAMP | 1 | |
2624 | DTSTART | 1 | |
2625 | ORGANIZER | 1 | |
2626 | PRIORITY | 1 | |
2627 | SEQUENCE | 0 or 1 | MUST be present if value is |
2628 | | | greater than 0; MAY be present if |
2629 | | | 0. |
2630 | SUMMARY | 1 | Can be null. |
2631
2632
2633
2634Daboo Standards Track [Page 47]
2635
2636RFC 5546 iTIP December 2009
2637
2638
2639 | UID | 1 | |
2640 | ATTACH | 0+ | |
2641 | CATEGORIES | 0+ | |
2642 | CLASS | 0 or 1 | |
2643 | COMMENT | 0+ | |
2644 | COMPLETED | 0 or 1 | |
2645 | CONTACT | 0+ | |
2646 | CREATED | 0 or 1 | |
2647 | DESCRIPTION | 0 or 1 | Can be null |
2648 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
2649 | | | present. |
2650 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
2651 | | | present. |
2652 | EXDATE | 0+ | |
2653 | GEO | 0 or 1 | |
2654 | LAST-MODIFIED | 0 or 1 | |
2655 | LOCATION | 0 or 1 | |
2656 | PERCENT-COMPLETE | 0 or 1 | |
2657 | RDATE | 0+ | |
2658 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
2659 | | | of a recurring calendar |
2660 | | | component. Otherwise, it MUST |
2661 | | | NOT be present. |
2662 | RELATED-TO | 0+ | |
2663 | RESOURCES | 0+ | |
2664 | RRULE | 0 or 1 | |
2665 | STATUS | 0 or 1 | MAY be one of |
2666 | | | COMPLETED/NEEDS-ACTION/ |
2667 | | | IN-PROCESS. |
2668 | URL | 0 or 1 | |
2669 | IANA-PROPERTY | 0+ | |
2670 | X-PROPERTY | 0+ | |
2671 | REQUEST-STATUS | 0 | |
2672 | | | |
2673 | VALARM | 0+ | |
2674 | | | |
2675 | VTIMEZONE | 0+ | MUST be present if any date/time |
2676 | | | refers to a timezone. |
2677 | | | |
2678 | IANA-COMPONENT | 0+ | |
2679 | X-COMPONENT | 0+ | |
2680 | | | |
2681 | VEVENT | 0 | |
2682 | | | |
2683 | VFREEBUSY | 0 | |
2684 | | | |
2685 | VJOURNAL | 0 | |
2686 +--------------------+----------+-----------------------------------+
2687
2688
2689
2690Daboo Standards Track [Page 48]
2691
2692RFC 5546 iTIP December 2009
2693
2694
26953.4.2.1. REQUEST for Rescheduling a VTODO
2696
2697 The "REQUEST" method may be used to reschedule a "VTODO" calendar
2698 component.
2699
2700 Rescheduling a "VTODO" calendar component involves a change to the
2701 existing "VTODO" calendar component in terms of its start or due
2702 time, recurrence intervals, and possibly the description. If the
2703 recipient CUA of a "REQUEST" method finds that the "UID" property
2704 value already exists on the calendar but that the "SEQUENCE" property
2705 value in the "REQUEST" is greater than the value for the existing
2706 "VTODO", then the "REQUEST" method describes a rescheduling of the
2707 "VTODO" calendar component.
2708
27093.4.2.2. REQUEST for Update or Reconfirmation of a VTODO
2710
2711 The "REQUEST" method may be used to update or reconfirm a "VTODO"
2712 calendar component. Reconfirmation is merely an update of "Attendee"
2713 completion status or overall "VTODO" calendar component status.
2714
2715 An update to an existing "VTODO" calendar component does not involve
2716 changes to the start or due time, recurrence intervals, or
2717 (generally) the description for the "VTODO" calendar component. If
2718 the recipient CUA of a "REQUEST" method finds that the "UID" property
2719 value already exists on the calendar and that the "SEQUENCE" property
2720 value in the "REQUEST" is the same as the value for the existing
2721 event, then the "REQUEST" method describes an update of the "VTODO"
2722 calendar component details, but not a rescheduling of the "VTODO"
2723 calendar component.
2724
2725 The update "REQUEST" is the appropriate response to a "REFRESH"
2726 method sent from an "Attendee" to the "Organizer" of a "VTODO"
2727 calendar component.
2728
2729 Unsolicited "REQUEST" methods MAY be sent by the "Organizer" of a
2730 "VTODO" calendar component. The unsolicited "REQUEST" methods are
2731 used to update the details of the "VTODO" (without rescheduling it or
2732 updating the completion status of "Attendees") or the "VTODO"
2733 calendar component itself (i.e., reconfirm the "VTODO").
2734
27353.4.2.3. REQUEST for Delegating a VTODO
2736
2737 The "REQUEST" method is also used to delegate or reassign ownership
2738 of a "VTODO" calendar component to another "Calendar User". For
2739 example, it may be used to delegate an "Attendee's" role (i.e.,
2740 "chair" or "participant") for a "VTODO" calendar component. The
2741 "REQUEST" method is sent by one of the "Attendees" of an existing
2742 "VTODO" calendar component to some other individual.
2743
2744
2745
2746Daboo Standards Track [Page 49]
2747
2748RFC 5546 iTIP December 2009
2749
2750
2751 For the purposes of this description, the "Attendee" delegating the
2752 "VTODO" calendar component is referred to as the "Delegator". The
2753 "Attendee" receiving the delegation request is referred to as the
2754 "Delegate".
2755
2756 The "Delegator" of a "VTODO" calendar component MUST forward the
2757 existing "REQUEST" method for a "VTODO" calendar component to the
2758 "Delegate". The "VTODO" calendar component description MUST include
2759 the "Delegator's" up-to-date "VTODO" calendar component definition.
2760 The "REQUEST" method MUST also include an "ATTENDEE" property with
2761 the calendar address of the "Delegate". The "Delegator" MUST also
2762 send a "REPLY" method back to the "Organizer" with the "Delegator's"
2763 "Attendee" property "PARTSTAT" parameter value set to "DELEGATED".
2764 In addition, the "DELEGATED-TO" parameter MUST be included with the
2765 calendar address of the "Delegate". A response to the delegation
2766 "REQUEST" is sent from the "Delegate" to the "Organizer", and
2767 optionally to the "Delegator". The "REPLY" method from the
2768 "Delegate" SHOULD include the "ATTENDEE" property with their calendar
2769 address and the "DELEGATED-FROM" parameter with the value of the
2770 "Delegator's" calendar address.
2771
2772 The delegation "REQUEST" method MUST assign a value for the "RSVP"
2773 property parameter associated with the "Delegator's" "Attendee"
2774 property to that of the "Delegate's" "ATTENDEE" property. For
2775 example, if the "Delegator's" "ATTENDEE" property specifies
2776 "RSVP=TRUE", then the "Delegate's" "ATTENDEE" property MUST specify
2777 "RSVP=TRUE".
2778
27793.4.2.4. REQUEST Forwarded to an Uninvited Calendar User
2780
2781 An "Attendee" assigned a "VTODO" calendar component may send the
2782 "VTODO" calendar component to another new CU not previously
2783 associated with the "VTODO" calendar component. The current
2784 "Attendee" assigned the "VTODO" calendar component does this by
2785 forwarding the original "REQUEST" method to the new CU. The new CU
2786 can send a "REPLY" to the "Organizer" of the "VTODO" calendar
2787 component. The reply contains an "ATTENDEE" property for the new CU.
2788
2789 The "Organizer" ultimately decides whether or not the new CU becomes
2790 part of the to-do and is not obligated to do anything with a "REPLY"
2791 from a new (uninvited) CU. If the "Organizer" does not want the new
2792 CU to be part of the to-do, the new "ATTENDEE" property is not added
2793 to the "VTODO" calendar component. The "Organizer" MAY send the CU a
2794 "CANCEL" message to indicate that they will not be added to the to-
2795 do. If the "Organizer" decides to add the new CU, the new "ATTENDEE"
2796 property is added to the "VTODO" calendar component. Furthermore,
2797 the "Organizer" is free to change any "ATTENDEE" property parameter
2798 from the values supplied by the new CU to something the "Organizer"
2799
2800
2801
2802Daboo Standards Track [Page 50]
2803
2804RFC 5546 iTIP December 2009
2805
2806
2807 considers appropriate. The "Organizer" SHOULD send the new
2808 "Attendee" a "REQUEST" message to inform them that they have been
2809 added.
2810
2811 When forwarding a "REQUEST" to another CU, the forwarding "Attendee"
2812 MUST NOT make changes to the original message.
2813
28143.4.2.5. REQUEST Updated Attendee Status
2815
2816 An "Organizer" of a "VTODO" may request an updated status from one or
2817 more "Attendees". The "Organizer" sends a "REQUEST" method to the
2818 "Attendee" with the "ATTENDEE;RSVP=TRUE" property sequence. The
2819 "SEQUENCE" property for the "VTODO" is not changed from its previous
2820 value. A recipient determines that the only change in the "REQUEST"
2821 is that their "RSVP" property parameter indicates a request for an
2822 updated status. The recipient SHOULD respond with a "REPLY" method
2823 indicating their current status with respect to the "REQUEST".
2824
28253.4.3. REPLY
2826
2827 The "REPLY" method in a "VTODO" calendar component is used to respond
2828 (e.g., accept or decline) to a request or to reply to a delegation
2829 request. It is also used by an "Attendee" to update their completion
2830 status. When used to provide a delegation response, the "Delegator"
2831 MUST include the calendar address of the "Delegate" in the
2832 "DELEGATED-TO" parameter of the "Delegator's" "ATTENDEE" property.
2833 The "Delegate" MUST include the calendar address of the "Delegator"
2834 on the "DELEGATED-FROM" parameter of the "Delegate's" "ATTENDEE"
2835 property.
2836
2837 The "REPLY" method MAY also be used to respond to an unsuccessful
2838 "VTODO" calendar component "REQUEST" method. Depending on the
2839 "REQUEST-STATUS" value, no scheduling action may have been performed.
2840
2841 The "Organizer" of a "VTODO" calendar component MAY receive a "REPLY"
2842 method from a "Calendar User" not in the original "REQUEST". For
2843 example, a "REPLY" method MAY be received from a "Delegate" of a
2844 "VTODO" calendar component. In addition, the "REPLY" method MAY be
2845 received from an unknown "Calendar User" who has been forwarded the
2846 "REQUEST" by an original "Attendee" of the "VTODO" calendar
2847 component. This uninvited "Attendee" MAY be accepted or the
2848 "Organizer" MAY cancel the "VTODO" calendar component for the
2849 uninvited "Attendee" by sending them a "CANCEL" method.
2850
2851 This method type is an iCalendar object that conforms to the
2852 following property constraints:
2853
2854
2855
2856
2857
2858Daboo Standards Track [Page 51]
2859
2860RFC 5546 iTIP December 2009
2861
2862
2863 +-------------------------------------------+
2864 | Constraints for a METHOD:REPLY of a VTODO |
2865 +-------------------------------------------+
2866
2867 +--------------------+----------+-----------------------------------+
2868 | Component/Property | Presence | Comment |
2869 +--------------------+----------+-----------------------------------+
2870 | METHOD | 1 | MUST be REPLY. |
2871 | | | |
2872 | VTODO | 1+ | All components MUST have the same |
2873 | | | UID. |
2874 | ATTENDEE | 1 | MUST be the address of the |
2875 | | | Attendee replying. |
2876 | DTSTAMP | 1 | |
2877 | ORGANIZER | 1 | |
2878 | REQUEST-STATUS | 0+ | |
2879 | UID | 1 | MUST be the UID of the original |
2880 | | | REQUEST. |
2881 | ATTACH | 0+ | |
2882 | CATEGORIES | 0+ | |
2883 | CLASS | 0 or 1 | |
2884 | COMMENT | 0+ | |
2885 | COMPLETED | 0 or 1 | |
2886 | CONTACT | 0+ | |
2887 | CREATED | 0 or 1 | |
2888 | DESCRIPTION | 0 or 1 | |
2889 | DTSTART | 0 or 1 | |
2890 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
2891 | | | present. |
2892 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
2893 | | | present. |
2894 | EXDATE | 0+ | |
2895 | GEO | 0 or 1 | |
2896 | LAST-MODIFIED | 0 or 1 | |
2897 | LOCATION | 0 or 1 | |
2898 | PERCENT-COMPLETE | 0 or 1 | |
2899 | PRIORITY | 0 or 1 | |
2900 | RDATE | 0+ | |
2901 | RELATED-TO | 0+ | |
2902 | RESOURCES | 0+ | |
2903 | RRULE | 0 or 1 | |
2904 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
2905 | | | of a recurring calendar |
2906 | | | component. Otherwise, it MUST |
2907 | | | NOT be present. |
2908 | SEQUENCE | 0 or 1 | MUST be the sequence number of |
2909 | | | the original REQUEST if greater |
2910 | | | than 0. MAY be present if 0. |
2911
2912
2913
2914Daboo Standards Track [Page 52]
2915
2916RFC 5546 iTIP December 2009
2917
2918
2919 | STATUS | 0 or 1 | |
2920 | SUMMARY | 0 or 1 | Can be null. |
2921 | URL | 0 or 1 | |
2922 | IANA-PROPERTY | 0+ | |
2923 | X-PROPERTY | 0+ | |
2924 | | | |
2925 | VALARM | 0 | |
2926 | | | |
2927 | VTIMEZONE | 0 or 1 | MUST be present if any date/time |
2928 | | | refers to a timezone. |
2929 | | | |
2930 | IANA-COMPONENT | 0+ | |
2931 | X-COMPONENT | 0+ | |
2932 | | | |
2933 | VEVENT | 0 | |
2934 | | | |
2935 | VFREEBUSY | 0 | |
2936 +--------------------+----------+-----------------------------------+
2937
29383.4.4. ADD
2939
2940 The "ADD" method allows the "Organizer" to add one or more new
2941 instances to an existing "VTODO" using a single iTIP message without
2942 having to send the entire "VTODO" with all the existing instance
2943 data, as it would have to do if the "REQUEST" method were used.
2944
2945 The "UID" must be that of the existing to-do. If the "UID" property
2946 value in the "ADD" is not found on the recipient's calendar, then the
2947 recipient SHOULD send a "REFRESH" to the "Organizer" in order to be
2948 updated with the latest version of the "VTODO". If an "Attendee"
2949 implementation does not support the "ADD" method, it should respond
2950 with a "REQUEST-STATUS" value of 3.14 and ask for a "REFRESH".
2951
2952 When handling an "ADD" message, the "Attendee" treats each component
2953 in the "ADD" message as if it were referenced via an "RDATE" in the
2954 main component.
2955
2956 The "SEQUENCE" property value is incremented since the sequence of
2957 to-dos has changed.
2958
2959 This method type is an iCalendar object that conforms to the
2960 following property constraints:
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970Daboo Standards Track [Page 53]
2971
2972RFC 5546 iTIP December 2009
2973
2974
2975 +-----------------------------------------+
2976 | Constraints for a METHOD:ADD of a VTODO |
2977 +-----------------------------------------+
2978
2979 +--------------------+----------+-----------------------------------+
2980 | Component/Property | Presence | Comment |
2981 +--------------------+----------+-----------------------------------+
2982 | METHOD | 1 | MUST be ADD. |
2983 | | | |
2984 | VTODO | 1 | |
2985 | DTSTAMP | 1 | |
2986 | ORGANIZER | 1 | |
2987 | PRIORITY | 1 | |
2988 | SEQUENCE | 1 | MUST be greater than 0. |
2989 | SUMMARY | 1 | Can be null. |
2990 | UID | 1 | MUST match that of the original |
2991 | | | to-do. |
2992 | ATTACH | 0+ | |
2993 | ATTENDEE | 0+ | |
2994 | CATEGORIES | 0+ | |
2995 | CLASS | 0 or 1 | |
2996 | COMMENT | 0+ | |
2997 | COMPLETED | 0 or 1 | |
2998 | CONTACT | 0+ | |
2999 | CREATED | 0 or 1 | |
3000 | DESCRIPTION | 0 or 1 | Can be null. |
3001 | DTSTART | 0 or 1 | |
3002 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
3003 | | | present. |
3004 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
3005 | | | present. |
3006 | GEO | 0 or 1 | |
3007 | LAST-MODIFIED | 0 or 1 | |
3008 | LOCATION | 0 or 1 | |
3009 | PERCENT-COMPLETE | 0 or 1 | |
3010 | RELATED-TO | 0+ | |
3011 | RESOURCES | 0+ | |
3012 | STATUS | 0 or 1 | MAY be one of |
3013 | | | COMPLETED/NEEDS-ACTION/ |
3014 | | | IN-PROCESS. |
3015 | URL | 0 or 1 | |
3016 | IANA-PROPERTY | 0+ | |
3017 | X-PROPERTY | 0+ | |
3018 | EXDATE | 0 | |
3019 | RECURRENCE-ID | 0 | |
3020 | REQUEST-STATUS | 0 | |
3021 | RDATE | 0 | |
3022 | RRULE | 0 | |
3023
3024
3025
3026Daboo Standards Track [Page 54]
3027
3028RFC 5546 iTIP December 2009
3029
3030
3031 | | | |
3032 | VALARM | 0+ | |
3033 | | | |
3034 | VTIMEZONE | 0+ | MUST be present if any date/time |
3035 | | | refers to a timezone. |
3036 | | | |
3037 | IANA-COMPONENT | 0+ | |
3038 | X-COMPONENT | 0+ | |
3039 | | | |
3040 | VEVENT | 0 | |
3041 | | | |
3042 | VJOURNAL | 0 | |
3043 | | | |
3044 | VFREEBUSY | 0 | |
3045 +--------------------+----------+-----------------------------------+
3046
30473.4.5. CANCEL
3048
3049 The "CANCEL" method in a "VTODO" calendar component is used to send a
3050 cancellation notice of an existing "VTODO" calendar request to the
3051 affected "Attendees". The message is sent by the "Organizer" of a
3052 "VTODO" calendar component to the "Attendees" of the "VTODO" calendar
3053 component. For a recurring "VTODO" calendar component, either the
3054 whole "VTODO" calendar component or instances of a "VTODO" calendar
3055 component may be cancelled. To cancel the complete range of a
3056 recurring "VTODO" calendar component, the "UID" property value for
3057 the "VTODO" calendar component MUST be specified and a "RECURRENCE-
3058 ID" MUST NOT be specified in the "CANCEL" method. In order to cancel
3059 an individual instance of a recurring "VTODO" calendar component, the
3060 "RECURRENCE-ID" property value for the "VTODO" calendar component
3061 MUST be specified in the "CANCEL" method.
3062
3063 There are two options for canceling a sequence of instances of a
3064 recurring "VTODO" calendar component:
3065
3066 a. The "RECURRENCE-ID" property for an instance in the sequence MUST
3067 be specified with the "RANGE" property parameter value of
3068 "THISANDFUTURE" to indicate cancellation of the specified "VTODO"
3069 calendar component and all instances after.
3070
3071 b. Individual recurrence instances may be cancelled by specifying
3072 multiple "VTODO" components each with a "RECURRENCE-ID" property
3073 corresponding to one of the instances to be cancelled.
3074
3075 The "Organizer" MUST send a "CANCEL" message to each "Attendee"
3076 affected by the cancellation. This can be done by using either a
3077 single "CANCEL" message for all "Attendees" or multiple messages with
3078 different subsets of the affected "Attendees" in each.
3079
3080
3081
3082Daboo Standards Track [Page 55]
3083
3084RFC 5546 iTIP December 2009
3085
3086
3087 When a "VTODO" is cancelled, the "SEQUENCE" property value MUST be
3088 incremented as described in Section 2.1.4.
3089
3090 This method type is an iCalendar object that conforms to the
3091 following property constraints:
3092
3093 +--------------------------------------------+
3094 | Constraints for a METHOD:CANCEL of a VTODO |
3095 +--------------------------------------------+
3096
3097 +--------------------+----------+-----------------------------------+
3098 | Component/Property | Presence | Comment |
3099 +--------------------+----------+-----------------------------------+
3100 | METHOD | 1 | MUST be CANCEL. |
3101 | | | |
3102 | VTODO | 1+ | |
3103 | ATTENDEE | 0+ | MUST include some or all |
3104 | | | Attendees being removed from the |
3105 | | | to-do. MUST include some or all |
3106 | | | Attendees if the entire to-do is |
3107 | | | cancelled. |
3108 | UID | 1 | MUST echo original UID. |
3109 | DTSTAMP | 1 | |
3110 | ORGANIZER | 1 | |
3111 | SEQUENCE | 1 | |
3112 | ATTACH | 0+ | |
3113 | CATEGORIES | 0+ | |
3114 | CLASS | 0 or 1 | |
3115 | COMMENT | 0+ | |
3116 | COMPLETED | 0 or 1 | |
3117 | CONTACT | 0+ | |
3118 | CREATED | 0 or 1 | |
3119 | DESCRIPTION | 0 or 1 | |
3120 | DTSTART | 0 or 1 | |
3121 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
3122 | | | present. |
3123 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
3124 | | | present. |
3125 | EXDATE | 0+ | |
3126 | GEO | 0 or 1 | |
3127 | LAST-MODIFIED | 0 or 1 | |
3128 | LOCATION | 0 or 1 | |
3129 | PERCENT-COMPLETE | 0 or 1 | |
3130 | RDATE | 0+ | |
3131
3132
3133
3134
3135
3136
3137
3138Daboo Standards Track [Page 56]
3139
3140RFC 5546 iTIP December 2009
3141
3142
3143 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
3144 | | | of a recurring calendar |
3145 | | | component. Otherwise, it MUST |
3146 | | | NOT be present. |
3147 | RELATED-TO | 0+ | |
3148 | RESOURCES | 0+ | |
3149 | RRULE | 0 or 1 | |
3150 | PRIORITY | 0 or 1 | |
3151 | STATUS | 0 or 1 | MUST be set to CANCELLED to |
3152 | | | cancel the entire VTODO. If |
3153 | | | removing specific Attendees, then |
3154 | | | MUST NOT be included. |
3155 | URL | 0 or 1 | |
3156 | IANA-PROPERTY | 0+ | |
3157 | X-PROPERTY | 0+ | |
3158 | REQUEST-STATUS | 0 | |
3159 | | | |
3160 | VALARM | 0 | |
3161 | | | |
3162 | VTIMEZONE | 0 or 1 | MUST be present if any date/time |
3163 | | | refers to a timezone. |
3164 | | | |
3165 | IANA-COMPONENT | 0+ | |
3166 | X-COMPONENT | 0+ | |
3167 | | | |
3168 | VEVENT | 0 | |
3169 | | | |
3170 | VFREEBUSY | 0 | |
3171 +--------------------+----------+-----------------------------------+
3172
31733.4.6. REFRESH
3174
3175 The "REFRESH" method in a "VTODO" calendar component is used by
3176 "Attendees" of an existing "VTODO" calendar component to request an
3177 updated description from the "Organizer" of the "VTODO" calendar
3178 component. The "Organizer" of the "VTODO" calendar component MAY use
3179 this method to request an updated status from the "Attendees". The
3180 "REFRESH" method MUST specify the "UID" property corresponding to the
3181 "VTODO" calendar component needing update.
3182
3183 A refresh of a recurrence instance of a "VTODO" calendar component
3184 may be requested by specifying the "RECURRENCE-ID" property
3185 corresponding to the associated "VTODO" calendar component. The
3186 "Organizer" responds with the latest description and rendition of the
3187 "VTODO" calendar component. In most cases, this will be a "REQUEST"
3188 unless the "VTODO" has been cancelled, in which case the "Organizer"
3189 MUST send a "CANCEL". This method is intended to facilitate machine
3190 processing of requests for updates to a "VTODO" calendar component.
3191
3192
3193
3194Daboo Standards Track [Page 57]
3195
3196RFC 5546 iTIP December 2009
3197
3198
3199 This method type is an iCalendar object that conforms to the
3200 following property constraints:
3201
3202 +---------------------------------------------+
3203 | Constraints for a METHOD:REFRESH of a VTODO |
3204 +---------------------------------------------+
3205
3206 +--------------------+----------+-----------------------------------+
3207 | Component/Property | Presence | Comment |
3208 +--------------------+----------+-----------------------------------+
3209 | METHOD | 1 | MUST be REFRESH. |
3210 | | | |
3211 | VTODO | 1 | |
3212 | ATTENDEE | 1 | |
3213 | DTSTAMP | 1 | |
3214 | UID | 1 | MUST echo original UID. |
3215 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
3216 | | | of a recurring calendar |
3217 | | | component. Otherwise, it MUST |
3218 | | | NOT be present. |
3219 | IANA-PROPERTY | 0+ | |
3220 | X-PROPERTY | 0+ | |
3221 | ATTACH | 0 | |
3222 | CATEGORIES | 0 | |
3223 | CLASS | 0 | |
3224 | COMMENT | 0 | |
3225 | COMPLETED | 0 | |
3226 | CONTACT | 0 | |
3227 | CREATED | 0 | |
3228 | DESCRIPTION | 0 | |
3229 | DTSTART | 0 | |
3230 | DUE | 0 | |
3231 | DURATION | 0 | |
3232 | EXDATE | 0 | |
3233 | GEO | 0 | |
3234 | LAST-MODIFIED | 0 | |
3235 | LOCATION | 0 | |
3236 | ORGANIZER | 0 | |
3237 | PERCENT-COMPLETE | 0 | |
3238 | PRIORITY | 0 | |
3239 | RDATE | 0 | |
3240 | RELATED-TO | 0 | |
3241 | REQUEST-STATUS | 0 | |
3242 | RESOURCES | 0 | |
3243 | RRULE | 0 | |
3244 | SEQUENCE | 0 | |
3245 | STATUS | 0 | |
3246 | URL | 0 | |
3247
3248
3249
3250Daboo Standards Track [Page 58]
3251
3252RFC 5546 iTIP December 2009
3253
3254
3255 | | | |
3256 | VALARM | 0 | |
3257 | | | |
3258 | VTIMEZONE | 0+ | |
3259 | | | |
3260 | IANA-COMPONENT | 0+ | |
3261 | X-COMPONENT | 0+ | |
3262 | | | |
3263 | VEVENT | 0 | |
3264 | | | |
3265 | VFREEBUSY | 0 | |
3266 +--------------------+----------+-----------------------------------+
3267
32683.4.7. COUNTER
3269
3270 The "COUNTER" method in a "VTODO" calendar component is used by an
3271 "Attendee" of an existing "VTODO" calendar component to submit to the
3272 "Organizer" a counter proposal for the "VTODO" calendar component.
3273
3274 The counter proposal is an iCalendar object consisting of a "VTODO"
3275 calendar component that provides the complete description of the
3276 alternate "VTODO" calendar component.
3277
3278 The "Organizer" rejects the counter proposal by sending the
3279 "Attendee" a "DECLINECOUNTER" method. The "Organizer" accepts the
3280 counter proposal by rescheduling the to-do as described in
3281 Section 3.4.2.1, "REQUEST for Rescheduling a To-Do". The
3282 "Organizer's" CUA SHOULD send a "REQUEST" message to all "Attendees"
3283 affected by any change triggered by an accepted "COUNTER".
3284
3285 This method type is an iCalendar object that conforms to the
3286 following property constraints:
3287
3288 +---------------------------------------------+
3289 | Constraints for a METHOD:COUNTER of a VTODO |
3290 +---------------------------------------------+
3291
3292 +--------------------+----------+-----------------------------------+
3293 | Component/Property | Presence | Comment |
3294 +--------------------+----------+-----------------------------------+
3295 | METHOD | 1 | MUST be COUNTER. |
3296 | | | |
3297 | VTODO | 1 | |
3298 | ATTENDEE | 1+ | |
3299 | DTSTAMP | 1 | |
3300 | ORGANIZER | 1 | |
3301 | PRIORITY | 1 | |
3302 | SUMMARY | 1 | Can be null. |
3303
3304
3305
3306Daboo Standards Track [Page 59]
3307
3308RFC 5546 iTIP December 2009
3309
3310
3311 | UID | 1 | |
3312 | ATTACH | 0+ | |
3313 | CATEGORIES | 0+ | |
3314 | CLASS | 0 or 1 | |
3315 | COMMENT | 0+ | |
3316 | COMPLETED | 0 or 1 | |
3317 | CONTACT | 0+ | |
3318 | CREATED | 0 or 1 | |
3319 | DESCRIPTION | 0 or 1 | Can be null. |
3320 | DTSTART | 0 or 1 | |
3321 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
3322 | | | present. |
3323 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
3324 | | | present. |
3325 | EXDATE | 0+ | |
3326 | GEO | 0 or 1 | |
3327 | LAST-MODIFIED | 0 or 1 | |
3328 | LOCATION | 0 or 1 | |
3329 | PERCENT-COMPLETE | 0 or 1 | |
3330 | RDATE | 0+ | |
3331 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
3332 | | | of a recurring calendar |
3333 | | | component. Otherwise, it MUST |
3334 | | | NOT be present. |
3335 | RELATED-TO | 0+ | |
3336 | REQUEST-STATUS | 0+ | |
3337 | RESOURCES | 0+ | |
3338 | RRULE | 0 or 1 | |
3339 | SEQUENCE | 0 or 1 | MUST echo the original SEQUENCE |
3340 | | | number. MUST be present if |
3341 | | | non-zero. MAY be present if |
3342 | | | zero. |
3343 | STATUS | 0 or 1 | MAY be one of |
3344 | | | COMPLETED/NEEDS-ACTION/ |
3345 | | | IN-PROCESS/CANCELLED. |
3346 | URL | 0 or 1 | |
3347 | IANA-PROPERTY | 0+ | |
3348 | X-PROPERTY | 0+ | |
3349 | | | |
3350 | VALARM | 0+ | |
3351 | | | |
3352 | VTIMEZONE | 0 or 1 | MUST be present if any date/time |
3353 | | | refers to a timezone. |
3354 | | | |
3355 | IANA-COMPONENT | 0+ | |
3356 | X-COMPONENT | 0+ | |
3357 | | | |
3358
3359
3360
3361
3362Daboo Standards Track [Page 60]
3363
3364RFC 5546 iTIP December 2009
3365
3366
3367 | VEVENT | 0 | |
3368 | | | |
3369 | VFREEBUSY | 0 | |
3370 +--------------------+----------+-----------------------------------+
3371
33723.4.8. DECLINECOUNTER
3373
3374 The "DECLINECOUNTER" method in a "VTODO" calendar component is used
3375 by an "Organizer" of the "VTODO" calendar component to reject a
3376 counter proposal offered by one of the "Attendees". The "Organizer"
3377 sends the message to the "Attendee" that sent the "COUNTER" method to
3378 the "Organizer".
3379
3380 This method type is an iCalendar object that conforms to the
3381 following property constraints:
3382
3383 +----------------------------------------------------+
3384 | Constraints for a METHOD:DECLINECOUNTER of a VTODO |
3385 +----------------------------------------------------+
3386
3387 +--------------------+----------+-----------------------------------+
3388 | Component/Property | Presence | Comment |
3389 +--------------------+----------+-----------------------------------+
3390 | METHOD | 1 | MUST be DECLINECOUNTER. |
3391 | | | |
3392 | VTODO | 1 | |
3393 | ATTENDEE | 1+ | MUST for all ATTENDEEs. |
3394 | DTSTAMP | 1 | |
3395 | ORGANIZER | 1 | |
3396 | SEQUENCE | 1 | MUST echo the original SEQUENCE |
3397 | | | number. |
3398 | UID | 1 | MUST echo original UID. |
3399 | ATTACH | 0+ | |
3400 | CATEGORIES | 0+ | |
3401 | CLASS | 0 or 1 | |
3402 | COMMENT | 0+ | |
3403 | COMPLETED | 0 or 1 | |
3404 | CONTACT | 0+ | |
3405 | CREATED | 0 or 1 | |
3406 | DESCRIPTION | 0 or 1 | |
3407 | DTSTART | 0 or 1 | |
3408 | DUE | 0 or 1 | If present, DURATION MUST NOT be |
3409 | | | present. |
3410 | DURATION | 0 or 1 | If present, DUE MUST NOT be |
3411 | | | present. |
3412 | EXDATE | 0+ | |
3413 | GEO | 0 or 1 | |
3414 | LAST-MODIFIED | 0 or 1 | |
3415
3416
3417
3418Daboo Standards Track [Page 61]
3419
3420RFC 5546 iTIP December 2009
3421
3422
3423 | LOCATION | 0 or 1 | |
3424 | PERCENT-COMPLETE | 0 or 1 | |
3425 | PRIORITY | 0 or 1 | |
3426 | RDATE | 0+ | |
3427 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
3428 | | | of a recurring calendar |
3429 | | | component. Otherwise, it MUST |
3430 | | | NOT be present. |
3431 | RELATED-TO | 0+ | |
3432 | REQUEST-STATUS | 0+ | |
3433 | RESOURCES | 0+ | |
3434 | RRULE | 0 or 1 | |
3435 | STATUS | 0 or 1 | MAY be one of |
3436 | | | COMPLETED/NEEDS-ACTION/ |
3437 | | | IN-PROCESS. |
3438 | URL | 0 or 1 | |
3439 | IANA-PROPERTY | 0+ | |
3440 | X-PROPERTY | 0+ | |
3441 | | | |
3442 | VALARM | 0 | |
3443 | | | |
3444 | VTIMEZONE | 0+ | MUST be present if any date/time |
3445 | | | refers to a timezone. |
3446 | | | |
3447 | IANA-COMPONENT | 0+ | |
3448 | X-COMPONENT | 0+ | |
3449 | | | |
3450 | VEVENT | 0 | |
3451 | | | |
3452 | VFREEBUSY | 0 | |
3453 +--------------------+----------+-----------------------------------+
3454
34553.5. Methods for VJOURNAL Components
3456
3457 This section defines the property set for the methods that are
3458 applicable to the "VJOURNAL" calendar component.
3459
3460 The following summarizes the methods that are defined for the
3461 "VJOURNAL" calendar component.
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474Daboo Standards Track [Page 62]
3475
3476RFC 5546 iTIP December 2009
3477
3478
3479 +---------+---------------------------------------------------------+
3480 | Method | Description |
3481 +---------+---------------------------------------------------------+
3482 | PUBLISH | Post a journal entry. Used primarily as a method of |
3483 | | advertising the existence of a journal entry. |
3484 | | |
3485 | ADD | Add one or more instances to an existing journal entry. |
3486 | | |
3487 | CANCEL | Cancel one or more instances of an existing journal |
3488 | | entry. |
3489 +---------+---------------------------------------------------------+
3490
34913.5.1. PUBLISH
3492
3493 The "PUBLISH" method in a "VJOURNAL" calendar component has no
3494 associated response. It is simply a posting of an iCalendar object
3495 that may be added to a calendar. It MUST have an "Organizer". It
3496 MUST NOT have "Attendees". The expected usage is for encapsulating
3497 an arbitrary journal entry as an iCalendar object. The "Organizer"
3498 MAY subsequently update (with another "PUBLISH" method) or cancel
3499 (with a "CANCEL" method) a previously published journal entry.
3500
3501 This method type is an iCalendar object that conforms to the
3502 following property constraints:
3503
3504 +------------------------------------------------+
3505 | Constraints for a METHOD:PUBLISH of a VJOURNAL |
3506 +------------------------------------------------+
3507
3508 +--------------------+----------+-----------------------------------+
3509 | Component/Property | Presence | Comment |
3510 +--------------------+----------+-----------------------------------+
3511 | METHOD | 1 | MUST be PUBLISH. |
3512 | | | |
3513 | VJOURNAL | 1+ | |
3514 | DESCRIPTION | 1 | Can be null. |
3515 | DTSTAMP | 1 | |
3516 | DTSTART | 1 | |
3517 | ORGANIZER | 1 | |
3518 | UID | 1 | |
3519 | ATTACH | 0+ | |
3520 | CATEGORIES | 0+ | |
3521 | CLASS | 0 or 1 | |
3522 | COMMENT | 0+ | |
3523 | CONTACT | 0+ | |
3524 | CREATED | 0 or 1 | |
3525 | EXDATE | 0+ | |
3526 | LAST-MODIFIED | 0 or 1 | |
3527
3528
3529
3530Daboo Standards Track [Page 63]
3531
3532RFC 5546 iTIP December 2009
3533
3534
3535 | RDATE | 0+ | |
3536 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
3537 | | | of a recurring calendar |
3538 | | | component. Otherwise, it MUST |
3539 | | | NOT be present. |
3540 | RELATED-TO | 0+ | |
3541 | RRULE | 0 or 1 | |
3542 | SEQUENCE | 0 or 1 | MUST be present if non-zero. MAY |
3543 | | | be present if zero. |
3544 | STATUS | 0 or 1 | MAY be one of |
3545 | | | DRAFT/FINAL/CANCELLED. |
3546 | SUMMARY | 0 or 1 | Can be null. |
3547 | URL | 0 or 1 | |
3548 | IANA-PROPERTY | 0+ | |
3549 | X-PROPERTY | 0+ | |
3550 | ATTENDEE | 0 | |
3551 | REQUEST-STATUS | 0 | |
3552 | | | |
3553 | VALARM | 0+ | |
3554 | | | |
3555 | VTIMEZONE | 0+ | MUST be present if any date/time |
3556 | | | refers to a timezone. |
3557 | | | |
3558 | IANA-COMPONENT | 0+ | |
3559 | X-COMPONENT | 0+ | |
3560 | | | |
3561 | VEVENT | 0 | |
3562 | | | |
3563 | VFREEBUSY | 0 | |
3564 | | | |
3565 | VTODO | 0 | |
3566 +--------------------+----------+-----------------------------------+
3567
35683.5.2. ADD
3569
3570 The "ADD" method allows the "Organizer" to add one or more new
3571 instances to an existing "VJOURNAL" using a single iTIP message
3572 without having to send the entire "VJOURNAL" with all the existing
3573 instance data, as it would have to do if the "REQUEST" method were
3574 used.
3575
3576 The "UID" must be that of the existing journal entry. If the "UID"
3577 property value in the "ADD" is not found on the recipient's calendar,
3578 then the recipient MAY treat the "ADD" as a "PUBLISH".
3579
3580 When handling an "ADD" message, the "Attendee" treats each component
3581 in the "ADD" message as if it were referenced via an "RDATE" in the
3582 main component. There is no response to the "Organizer".
3583
3584
3585
3586Daboo Standards Track [Page 64]
3587
3588RFC 5546 iTIP December 2009
3589
3590
3591 This method type is an iCalendar object that conforms to the
3592 following property constraints:
3593
3594 +--------------------------------------------+
3595 | Constraints for a METHOD:ADD of a VJOURNAL |
3596 +--------------------------------------------+
3597
3598 +--------------------+----------+-----------------------------------+
3599 | Component/Property | Presence | Comment |
3600 +--------------------+----------+-----------------------------------+
3601 | METHOD | 1 | MUST be ADD. |
3602 | | | |
3603 | VJOURNAL | 1 | |
3604 | DESCRIPTION | 1 | Can be null. |
3605 | DTSTAMP | 1 | |
3606 | DTSTART | 1 | |
3607 | ORGANIZER | 1 | |
3608 | SEQUENCE | 1 | MUST be greater than 0. |
3609 | UID | 1 | MUST match that of the original |
3610 | | | journal. |
3611 | ATTACH | 0+ | |
3612 | CATEGORIES | 0+ | |
3613 | CLASS | 0 or 1 | |
3614 | COMMENT | 0+ | |
3615 | CONTACT | 0+ | |
3616 | CREATED | 0 or 1 | |
3617 | LAST-MODIFIED | 0 or 1 | |
3618 | RELATED-TO | 0+ | |
3619 | STATUS | 0 or 1 | MAY be one of |
3620 | | | DRAFT/FINAL/CANCELLED. |
3621 | SUMMARY | 0 or 1 | Can be null. |
3622 | URL | 0 or 1 | |
3623 | IANA-PROPERTY | 0+ | |
3624 | X-PROPERTY | 0+ | |
3625 | ATTENDEE | 0 | |
3626 | EXDATE | 0 | |
3627 | RECURRENCE-ID | 0 | |
3628 | REQUEST-STATUS | 0 | |
3629 | RDATE | 0 | |
3630 | RRULE | 0 | |
3631 | | | |
3632 | VALARM | 0+ | |
3633 | | | |
3634 | VTIMEZONE | 0 or 1 | MUST be present if any date/time |
3635 | | | refers to a timezone. |
3636 | | | |
3637 | IANA-COMPONENT | 0+ | |
3638 | X-COMPONENT | 0+ | |
3639
3640
3641
3642Daboo Standards Track [Page 65]
3643
3644RFC 5546 iTIP December 2009
3645
3646
3647 | | | |
3648 | VEVENT | 0 | |
3649 | | | |
3650 | VFREEBUSY | 0 | |
3651 | | | |
3652 | VTODO | 0 | |
3653 +--------------------+----------+-----------------------------------+
3654
36553.5.3. CANCEL
3656
3657 The "CANCEL" method in a "VJOURNAL" calendar component is used to
3658 send a cancellation notice of an existing journal entry. The message
3659 is sent by the "Organizer" of a journal entry. For a recurring
3660 journal entry, either the whole journal entry or instances of a
3661 journal entry may be cancelled. To cancel the complete range of a
3662 recurring journal entry, the "UID" property value for the journal
3663 entry MUST be specified and a "RECURRENCE-ID" property MUST NOT be
3664 specified in the "CANCEL" method. In order to cancel an individual
3665 instance of the journal entry, the "RECURRENCE-ID" property value for
3666 the journal entry MUST be specified in the "CANCEL" method.
3667
3668 There are two options for canceling a sequence of instances of a
3669 recurring "VJOURNAL" calendar component:
3670
3671 a. The "RECURRENCE-ID" property for an instance in the sequence MUST
3672 be specified with the "RANGE" property parameter value of
3673 "THISANDFUTURE" to indicate cancellation of the specified
3674 "VJOURNAL" calendar component and all instances after.
3675
3676 b. Individual recurrence instances may be cancelled by specifying
3677 multiple "VJOURNAL" components each with a "RECURRENCE-ID"
3678 property corresponding to one of the instances to be cancelled.
3679
3680 When a "VJOURNAL" is cancelled, the "SEQUENCE" property value MUST be
3681 incremented as described in Section 2.1.4.
3682
3683 This method type is an iCalendar object that conforms to the
3684 following property constraints:
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698Daboo Standards Track [Page 66]
3699
3700RFC 5546 iTIP December 2009
3701
3702
3703 +-----------------------------------------------+
3704 | Constraints for a METHOD:CANCEL of a VJOURNAL |
3705 +-----------------------------------------------+
3706
3707 +--------------------+----------+-----------------------------------+
3708 | Component/Property | Presence | Comment |
3709 +--------------------+----------+-----------------------------------+
3710 | METHOD | 1 | MUST be CANCEL. |
3711 | | | |
3712 | VJOURNAL | 1+ | All MUST have the same UID. |
3713 | DTSTAMP | 1 | |
3714 | ORGANIZER | 1 | |
3715 | SEQUENCE | 1 | |
3716 | UID | 1 | MUST be the UID of the original |
3717 | | | REQUEST. |
3718 | ATTACH | 0+ | |
3719 | ATTENDEE | 0 | |
3720 | CATEGORIES | 0+ | |
3721 | CLASS | 0 or 1 | |
3722 | COMMENT | 0+ | |
3723 | CONTACT | 0+ | |
3724 | CREATED | 0 or 1 | |
3725 | DESCRIPTION | 0 or 1 | |
3726 | DTSTART | 0 or 1 | |
3727 | EXDATE | 0+ | |
3728 | LAST-MODIFIED | 0 or 1 | |
3729 | RDATE | 0+ | |
3730 | RECURRENCE-ID | 0 or 1 | Only if referring to an instance |
3731 | | | of a recurring calendar |
3732 | | | component. Otherwise, it MUST |
3733 | | | NOT be present. |
3734 | RELATED-TO | 0+ | |
3735 | RRULE | 0 or 1 | |
3736 | STATUS | 0 or 1 | MAY be present; MUST be CANCELLED |
3737 | | | if present. |
3738 | SUMMARY | 0 or 1 | |
3739 | URL | 0 or 1 | |
3740 | IANA-PROPERTY | 0+ | |
3741 | X-PROPERTY | 0+ | |
3742 | REQUEST-STATUS | 0 | |
3743 | | | |
3744 | VALARM | 0 | |
3745 | | | |
3746 | VTIMEZONE | 0+ | MUST be present if any date/time |
3747 | | | refers to a timezone. |
3748 | | | |
3749 | IANA-COMPONENT | 0+ | |
3750 | X-COMPONENT | 0+ | |
3751
3752
3753
3754Daboo Standards Track [Page 67]
3755
3756RFC 5546 iTIP December 2009
3757
3758
3759 | | | |
3760 | VEVENT | 0 | |
3761 | | | |
3762 | VFREEBUSY | 0 | |
3763 | | | |
3764 | VTODO | 0 | |
3765 +--------------------+----------+-----------------------------------+
3766
37673.6. Status Replies
3768
3769 The "REQUEST-STATUS" property is used to convey status information
3770 about a "REPLY", "COUNTER", or "DECLINECOUNTER" iTIP message. The
3771 codes listed in the table below SHOULD be used. If the "REQUEST-
3772 STATUS" property is not present in one of these iTIP messages, then a
3773 status code of "2.0" (success) MUST be assumed.
3774
3775 This specification adds a new IANA registry for "REQUEST-STATUS"
3776 property values, as defined in Section 7, which includes a new
3777 registration template for defining the specific components of the
3778 "REQUEST-STATUS" property value. Additional codes MAY be used,
3779 provided the process described in Section 8.2.1 of [RFC5545] is used
3780 to register them.
3781
3782 This specification allows for multiple "REQUEST-STATUS" properties to
3783 be returned in iCalendar components in the appropriate iTIP messages.
3784 When multiple "REQUEST-STATUS" properties are present, the following
3785 restrictions apply:
3786
3787 1. Within any one component, the "top-level" numeric value of the
3788 "short return status code" MUST be the same for all "REQUEST-
3789 STATUS" properties, i.e., there cannot be a mixture of, e.g.,
3790 2.xx and 5.xx codes within a single component.
3791
3792 2. Across all components in the iTIP message, the following applies:
3793
3794 A. If any one component would have a 5.xx code, then either all
3795 components MUST have a code in that range or "REQUEST-STATUS"
3796 MUST NOT be present in the other components if a 5.xx code is
3797 not appropriate for those components.
3798
3799 B. Otherwise, if any one component would have a 3.xx code, then
3800 either all components MUST have a code in that range or
3801 "REQUEST-STATUS" MUST NOT be present in the other components
3802 if a 3.xx code is not appropriate for those components.
3803
3804 C. 2.xx and 4.xx codes can be used in different components,
3805 provided that each component follows the restriction in (1)
3806 above.
3807
3808
3809
3810Daboo Standards Track [Page 68]
3811
3812RFC 5546 iTIP December 2009
3813
3814
3815 The following "REQUEST-STATUS" codes are defined (any "Offending
3816 Data" MAY be specified in the "REQUEST-STATUS" value as the extdata
3817 field):
3818
38193.6.1. Status Code 2.0
3820
3821 Status Code: 2.0
3822
3823 Status Description: Success.
3824
3825 Status Exception Data: None.
3826
3827 Description: iTIP operation succeeded.
3828
38293.6.2. Status Code 2.1
3830
3831 Status Code: 2.1
3832
3833 Status Description: Success, but fallback taken on one or more
3834 property values.
3835
3836 Status Exception Data: Property name and value MAY be specified.
3837
3838 Description: iTIP operation succeeded with fallback on one or more
3839 property values.
3840
38413.6.3. Status Code 2.2
3842
3843 Status Code: 2.2
3844
3845 Status Description: Success; invalid property ignored.
3846
3847 Status Exception Data: Property name MAY be specified.
3848
3849 Description: iTIP operation succeeded but a property was ignored.
3850
38513.6.4. Status Code 2.3
3852
3853 Status Code: 2.3
3854
3855 Status Description: Success; invalid property parameter ignored.
3856
3857 Status Exception Data: Property parameter name and value MAY be
3858 specified.
3859
3860 Description: iTIP operation succeeded but a property parameter was
3861 ignored because it was invalid.
3862
3863
3864
3865
3866Daboo Standards Track [Page 69]
3867
3868RFC 5546 iTIP December 2009
3869
3870
38713.6.5. Status Code 2.4
3872
3873 Status Code: 2.4
3874
3875 Status Description: Success; unknown, non-standard property ignored.
3876
3877 Status Exception Data: Non-standard property name MAY be specified.
3878
3879 Description: iTIP operation succeeded but a property parameter was
3880 ignored because it was unknown.
3881
38823.6.6. Status Code 2.5
3883
3884 Status Code: 2.5
3885
3886 Status Description: Success; unknown, non-standard property value
3887 ignored.
3888
3889 Status Exception Data: Property and non-standard value MAY be
3890 specified.
3891
3892 Description: iTIP operation succeeded but a property was ignored
3893 because its value was unknown.
3894
38953.6.7. Status Code 2.6
3896
3897 Status Code: 2.6
3898
3899 Status Description: Success; invalid calendar component ignored.
3900
3901 Status Exception Data: Calendar component sentinel (e.g., BEGIN:
3902 ALARM) MAY be specified.
3903
3904 Description: iTIP operation succeeded but a component was ignored
3905 because it was invalid.
3906
39073.6.8. Status Code 2.7
3908
3909 Status Code: 2.7
3910
3911 Status Description: Success; request forwarded to Calendar User.
3912
3913 Status Exception Data: Original and forwarded calendar user
3914 addresses MAY be specified.
3915
3916 Description: iTIP operation succeeded, and the request was forwarded
3917 to another Calendar User.
3918
3919
3920
3921
3922Daboo Standards Track [Page 70]
3923
3924RFC 5546 iTIP December 2009
3925
3926
39273.6.9. Status Code 2.8
3928
3929 Status Code: 2.8
3930
3931 Status Description: Success; repeating event ignored. Scheduled as
3932 a single component.
3933
3934 Status Exception Data: RRULE or RDATE property name and value MAY be
3935 specified.
3936
3937 Description: iTIP operation succeeded but a repeating event was
3938 truncated to a single instance.
3939
39403.6.10. Status Code 2.9
3941
3942 Status Code: 2.9
3943
3944 Status Description: Success; truncated end date time to date
3945 boundary.
3946
3947 Status Exception Data: DTEND property value MAY be specified.
3948
3949 Description: iTIP operation succeeded but the end time was truncated
3950 to a date boundary.
3951
39523.6.11. Status Code 2.10
3953
3954 Status Code: 2.10
3955
3956 Status Description: Success; repeating VTODO ignored. Scheduled as
3957 a single VTODO.
3958
3959 Status Exception Data: RRULE or RDATE property name and value MAY be
3960 specified.
3961
3962 Description: iTIP operation succeeded but a repeating to-do was
3963 truncated to a single instance.
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978Daboo Standards Track [Page 71]
3979
3980RFC 5546 iTIP December 2009
3981
3982
39833.6.12. Status Code 2.11
3984
3985 Status Code: 2.11
3986
3987 Status Description: Success; unbounded RRULE clipped at some finite
3988 number of instances.
3989
3990 Status Exception Data: RRULE property name and value MAY be
3991 specified. Number of instances MAY also be specified.
3992
3993 Description: iTIP operation succeeded but an unbounded repeating
3994 object was clipped to a finite number of instances.
3995
39963.6.13. Status Code 3.0
3997
3998 Status Code: 3.0
3999
4000 Status Description: Invalid property name.
4001
4002 Status Exception Data: Property name MAY be specified.
4003
4004 Description: iTIP operation failed because of an invalid property
4005 name.
4006
40073.6.14. Status Code 3.1
4008
4009 Status Code: 3.1
4010
4011 Status Description: Invalid property value.
4012
4013 Status Exception Data: Property name and value MAY be specified.
4014
4015 Description: iTIP operation failed because of an invalid property
4016 value.
4017
40183.6.15. Status Code 3.2
4019
4020 Status Code: 3.2
4021
4022 Status Description: Invalid property parameter.
4023
4024 Status Exception Data: Property parameter name and value MAY be
4025 specified.
4026
4027 Description: iTIP operation failed because of an invalid property
4028 parameter.
4029
4030
4031
4032
4033
4034Daboo Standards Track [Page 72]
4035
4036RFC 5546 iTIP December 2009
4037
4038
40393.6.16. Status Code 3.3
4040
4041 Status Code: 3.3
4042
4043 Status Description: Invalid property parameter value.
4044
4045 Status Exception Data: Property parameter name and value MAY be
4046 specified.
4047
4048 Description: iTIP operation failed because of an invalid property
4049 parameter value.
4050
40513.6.17. Status Code 3.4
4052
4053 Status Code: 3.4
4054
4055 Status Description: Invalid calendar component sequence.
4056
4057 Status Exception Data: Calendar component sentinel MAY be specified
4058 (e.g., BEGIN:VTIMEZONE).
4059
4060 Description: iTIP operation failed because of an invalid component.
4061
40623.6.18. Status Code 3.5
4063
4064 Status Code: 3.5
4065
4066 Status Description: Invalid date or time.
4067
4068 Status Exception Data: Date/time value(s) MAY be specified.
4069
4070 Description: iTIP operation failed because of an invalid date or
4071 time property.
4072
40733.6.19. Status Code 3.6
4074
4075 Status Code: 3.6
4076
4077 Status Description: Invalid rule.
4078
4079 Status Exception Data: RRULE property value MAY be specified.
4080
4081 Description: iTIP operation failed because of an invalid rule
4082 property.
4083
4084
4085
4086
4087
4088
4089
4090Daboo Standards Track [Page 73]
4091
4092RFC 5546 iTIP December 2009
4093
4094
40953.6.20. Status Code 3.7
4096
4097 Status Code: 3.7
4098
4099 Status Description: Invalid Calendar User.
4100
4101 Status Exception Data: ATTENDEE property value MAY be specified.
4102
4103 Description: iTIP operation failed because of an invalid ATTENDEE
4104 property.
4105
41063.6.21. Status Code 3.8
4107
4108 Status Code: 3.8
4109
4110 Status Description: No authority.
4111
4112 Status Exception Data: METHOD and ATTENDEE property values MAY be
4113 specified.
4114
4115 Description: iTIP operation failed because an Attendee does not have
4116 suitable privileges for the operation.
4117
41183.6.22. Status Code 3.9
4119
4120 Status Code: 3.9
4121
4122 Status Description: Unsupported version.
4123
4124 Status Exception Data: VERSION property name and value MAY be
4125 specified.
4126
4127 Description: iTIP operation failed because the calendar data version
4128 is not supported.
4129
41303.6.23. Status Code 3.10
4131
4132 Status Code: 3.10
4133
4134 Status Description: Request entity too large.
4135
4136 Status Exception Data: None.
4137
4138 Description: iTIP operation failed because the calendar data was too
4139 large.
4140
4141
4142
4143
4144
4145
4146Daboo Standards Track [Page 74]
4147
4148RFC 5546 iTIP December 2009
4149
4150
41513.6.24. Status Code 3.11
4152
4153 Status Code: 3.11
4154
4155 Status Description: Required component or property missing.
4156
4157 Status Exception Data: Component or property name MAY be specified.
4158
4159 Description: iTIP operation failed because the calendar data did not
4160 contain a required property or component.
4161
41623.6.25. Status Code 3.12
4163
4164 Status Code: 3.12
4165
4166 Status Description: Unknown component or property found.
4167
4168 Status Exception Data: Component or property name MAY be specified.
4169
4170 Description: iTIP operation failed because the calendar data
4171 contained an unknown property or component.
4172
41733.6.26. Status Code 3.13
4174
4175 Status Code: 3.13
4176
4177 Status Description: Unsupported component or property found.
4178
4179 Status Exception Data: Component or property name MAY be specified.
4180
4181 Description: iTIP operation failed because the calendar data
4182 contained an unsupported property or component.
4183
41843.6.27. Status Code 3.14
4185
4186 Status Code: 3.14
4187
4188 Status Description: Unsupported capability.
4189
4190 Status Exception Data: METHOD or action MAY be specified.
4191
4192 Description: iTIP operation failed because the operation is not
4193 supported.
4194
4195
4196
4197
4198
4199
4200
4201
4202Daboo Standards Track [Page 75]
4203
4204RFC 5546 iTIP December 2009
4205
4206
42073.6.28. Status Code 4.0
4208
4209 Status Code: 4.0
4210
4211 Status Description: Event conflict. Date/time is busy.
4212
4213 Status Exception Data: DTSTART and DTEND property names and values
4214 MAY be specified.
4215
4216 Description: iTIP operation failed because the event overlaps the
4217 date and time of another event.
4218
42193.6.29. Status Code 5.0
4220
4221 Status Code: 5.0
4222
4223 Status Description: Request not supported.
4224
4225 Status Exception Data: METHOD property value MAY be specified.
4226
4227 Description: iTIP operation failed because the operation is not
4228 supported.
4229
42303.6.30. Status Code 5.1
4231
4232 Status Code: 5.1
4233
4234 Status Description: Service unavailable.
4235
4236 Status Exception Data: ATTENDEE property value MAY be specified.
4237
4238 Description: iTIP operation failed because scheduling is not active.
4239
42403.6.31. Status Code 5.2
4241
4242 Status Code: 5.2
4243
4244 Status Description: Invalid calendar service.
4245
4246 Status Exception Data: ATTENDEE property value MAY be specified.
4247
4248 Description: iTIP operation failed because there is no scheduling
4249 capability.
4250
4251
4252
4253
4254
4255
4256
4257
4258Daboo Standards Track [Page 76]
4259
4260RFC 5546 iTIP December 2009
4261
4262
42633.6.32. Status Code 5.3
4264
4265 Status Code: 5.3
4266
4267 Status Description: No scheduling support for user.
4268
4269 Status Exception Data: ATTENDEE property value MAY be specified.
4270
4271 Description: iTIP operation failed because scheduling is not enabled
4272 for an Attendee.
4273
42743.7. Implementation Considerations
4275
42763.7.1. Working With Recurrence Instances
4277
4278 iCalendar includes a recurrence grammar to represent recurring
4279 events. The benefit of such a grammar is the ability to represent a
4280 number of events in a single object. However, while this simplifies
4281 creation of a recurring event, meeting instances still need to be
4282 referenced. For instance, an "Attendee" may decline the third
4283 instance of a recurring Friday event. Similarly, the "Organizer" may
4284 change the time or location to a single instance of the recurring
4285 event.
4286
4287 Since implementations may elect to store recurring events as either a
4288 single event object or a collection of discrete, related event
4289 objects, the protocol is designed so that each recurring instance may
4290 be both referenced and versioned. Hence, implementations that choose
4291 to maintain per-instance properties (such as "ATTENDEE" property
4292 "PARTSTAT" parameter) may do so. However, the protocol does not
4293 require per-instance recognition unless the instance itself must be
4294 renegotiated.
4295
4296 The scenarios for recurrence instance referencing are listed below.
4297 For purposes of simplification, a change to an event refers to a
4298 "trigger property." That is, a property that has a substantive
4299 effect on the meeting itself, such as start time, location, due date
4300 (for "VTODO" calendar components), and possibly description.
4301
4302 "Organizer"-initiated actions:
4303
4304 o deletes or changes a single instance of a recurring event
4305
4306 o makes changes that affect all future instances
4307
4308 o makes changes that affect all previous instances
4309
4310 o deletes or modifies a previously changed instance
4311
4312
4313
4314Daboo Standards Track [Page 77]
4315
4316RFC 5546 iTIP December 2009
4317
4318
4319 "Attendee"-initiated actions:
4320
4321 o changes status for a particular recurrence instance
4322
4323 o sends a "COUNTER" for a particular recurrence instance
4324
4325 An instance of a recurring event is assigned a unique identification,
4326 "RECURRENCE-ID" property, when that instance is renegotiated.
4327 Negotiation may be necessary when a substantive change to the event
4328 or to-do has been made (such as changing the start time, end time,
4329 due date, or location). The "Organizer" can identify a specific
4330 recurrence instance using the "RECURRENCE-ID" property. The property
4331 value is equal to the date/time of the instance. If the "Organizer"
4332 wishes to change the "DTSTART", the original, unmodified "DTSTART"
4333 value of the instance is used as the value "RECURRENCE-ID" property,
4334 and the new "DTSTART" and "DTEND" values reflect the change.
4335
43363.7.2. Attendee Property Considerations
4337
4338 The "ORGANIZER" property is required on published events, to-dos, and
4339 journal entries for two reasons. First, only the "Organizer" is
4340 allowed to update and redistribute an event or to-do component. It
4341 follows that the "ORGANIZER" property MUST be present in the event,
4342 to-do, or journal entry component so that the CUA has a basis for
4343 authorizing an update. Second, it is prudent to provide a point of
4344 contact for anyone who receives a published component, in case of
4345 problems.
4346
4347 Email addresses that correspond to groups of "Calendar Users" could
4348 be specified as a mailto: URI [RFC2368] calendar user address.
4349 Sending email to such an address results in email being sent to
4350 multiple recipients. Such an address may be used as the value of an
4351 "ATTENDEE" property. Thus, it is possible that the recipient of a
4352 "REQUEST" does not appear explicitly in the list.
4353
4354 It is recommended that the general approach to finding a "Calendar
4355 User" in an "Attendee" list be as follows:
4356
4357 1. Search for the "Calendar User" in the "Attendee" list where
4358 "CUTYPE=INDIVIDUAL"
4359
4360 2. Failing (1), look for "Attendees" where "CUTYPE=GROUP" or
4361 "CUTYPE=UNKNOWN". The CUA then determines if the "Calendar User"
4362 is a member of one of these groups. If so, the "REPLY" method
4363 sent to the "Organizer" MUST contain a new "ATTENDEE" property in
4364 which:
4365
4366 * the "TYPE" property parameter is set to INDIVIDUAL
4367
4368
4369
4370Daboo Standards Track [Page 78]
4371
4372RFC 5546 iTIP December 2009
4373
4374
4375 * the "MEMBER" property parameter is set to the name of the
4376 group
4377
4378 3. Failing (2), the CUA MAY ignore or accept the request as the
4379 "Calendar User" wishes.
4380
43813.7.3. Extension Tokens
4382
4383 To make iCalendar objects extensible, new component, property, or
4384 property parameters can be used. Two types of extensions are defined
4385 by [RFC5545]: IANA-registered tokens ("iana-token") and experimental
4386 use tokens ("x-name"). A client SHOULD save "iana-token's" and MAY
4387 use them in replies. A client MAY save "x-name's" and MAY use them
4388 in replies. When delegating or forwarding messages to other CUs, a
4389 client SHOULD include "iana-token's" and "x-names's".
4390
43914. Examples
4392
43934.1. Published Event Examples
4394
4395 In the calendaring and scheduling context, publication refers to the
4396 one-way transfer of event information. Consumers of published events
4397 simply incorporate the event into a calendar. No reply is expected.
4398 Individual "A" publishes an event. Individual "B" reads the event
4399 and incorporates it into their calendar. Events are published in
4400 several ways, including embedding the event as an object in a web
4401 page, emailing the event to a distribution list, or posting the event
4402 to a newsgroup.
4403
4404 The table below illustrates the sequence of events between the
4405 publisher and the consumers of a published event.
4406
4407 +----------------+-----------------------+--------------------------+
4408 | Action | Organizer | Receiver |
4409 +----------------+-----------------------+--------------------------+
4410 | Publish an | "A" sends or posts a | "B" reads a published |
4411 | event | PUBLISH message. | event. |
4412 | | | |
4413 | Publish an | "A" sends or posts a | "B" reads the updated |
4414 | updated event | PUBLISH message. | event. |
4415 | | | |
4416 | Cancel a | "A" sends or posts a | "B" reads the canceled |
4417 | published | CANCEL message. | event publication. |
4418 | event | | |
4419 +----------------+-----------------------+--------------------------+
4420
4421
4422
4423
4424
4425
4426Daboo Standards Track [Page 79]
4427
4428RFC 5546 iTIP December 2009
4429
4430
44314.1.1. A Minimal Published Event
4432
4433 The iCalendar object below describes a single event that begins on
4434 July 1, 1997 at 20:00 UTC. This event contains the minimum set of
4435 properties for a "PUBLISH" for a "VEVENT" calendar component.
4436
4437 BEGIN:VCALENDAR
4438 METHOD:PUBLISH
4439 PRODID:-//Example/ExampleCalendarClient//EN
4440 VERSION:2.0
4441 BEGIN:VEVENT
4442 ORGANIZER:mailto:a@example.com
4443 DTSTART:19970701T200000Z
4444 DTSTAMP:19970611T190000Z
4445 SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
4446 UID:0981234-1234234-23@example.com
4447 END:VEVENT
4448 END:VCALENDAR
4449
44504.1.2. Changing a Published Event
4451
4452 The iCalendar object below describes an update to the event described
4453 in Section 4.1.1; the time has been changed, an end time has been
4454 added, and the sequence number has been adjusted.
4455
4456 BEGIN:VCALENDAR
4457 METHOD:PUBLISH
4458 VERSION:2.0
4459 PRODID:-//Example/ExampleCalendarClient//EN
4460 BEGIN:VEVENT
4461 ORGANIZER:mailto:a@example.com
4462 DTSTAMP:19970612T190000Z
4463 DTSTART:19970701T210000Z
4464 DTEND:19970701T230000Z
4465 SEQUENCE:1
4466 UID:0981234-1234234-23@example.com
4467 SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
4468 END:VEVENT
4469 END:VCALENDAR
4470
4471 The "UID" property is used by the client to identify the event. The
4472 "SEQUENCE" property indicates that this is a change to the event.
4473 The event with a matching "UID" and sequence number 0 is superseded
4474 by this event.
4475
4476 The "SEQUENCE" property provides a reliable way to distinguish
4477 different versions of the same event. Each time an event is
4478 published, its sequence number is incremented. If a client receives
4479
4480
4481
4482Daboo Standards Track [Page 80]
4483
4484RFC 5546 iTIP December 2009
4485
4486
4487 an event with a sequence number 5 and finds it has the same event
4488 with sequence number 2, the event SHOULD be updated. However, if the
4489 client received an event with sequence number 2 and finds it already
4490 has sequence number 5 of the same event, the event MUST NOT be
4491 updated.
4492
44934.1.3. Canceling a Published Event
4494
4495 The iCalendar object below cancels the event described in
4496 Section 4.1.1. This cancels the event with "SEQUENCE" property of 0,
4497 1, and 2.
4498
4499 BEGIN:VCALENDAR
4500 METHOD:CANCEL
4501 VERSION:2.0
4502 PRODID:-//Example/ExampleCalendarClient//EN
4503 BEGIN:VEVENT
4504 ORGANIZER:mailto:a@example.com
4505 COMMENT:DUKES forfeit the game
4506 SEQUENCE:2
4507 UID:0981234-1234234-23@example.com
4508 DTSTAMP:19970613T190000Z
4509 END:VEVENT
4510 END:VCALENDAR
4511
45124.1.4. A Rich Published Event
4513
4514 This example describes the same event as in Section 4.1.1, but in
4515 much greater detail.
4516
4517 BEGIN:VCALENDAR
4518 PRODID:-//Example/ExampleCalendarClient//EN
4519 METHOD:PUBLISH
4520 SCALE:GREGORIAN
4521 VERSION:2.0
4522 BEGIN:VTIMEZONE
4523 TZID:America-Chicago
4524 TZURL:http://example.com/tz/America-Chicago
4525 BEGIN:STANDARD
4526 DTSTART:19671029T020000
4527 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
4528 TZOFFSETFROM:-0500
4529 TZOFFSETTO:-0600
4530 TZNAME:CST
4531 END:STANDARD
4532 BEGIN:DAYLIGHT
4533 DTSTART:19870405T020000
4534 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
4535
4536
4537
4538Daboo Standards Track [Page 81]
4539
4540RFC 5546 iTIP December 2009
4541
4542
4543 TZOFFSETFROM:-0600
4544 TZOFFSETTO:-0500
4545 TZNAME:CDT
4546 END:DAYLIGHT
4547 END:VTIMEZONE
4548 BEGIN:VEVENT
4549 ORGANIZER:mailto:a@example.com
4550 ATTACH:http://www.example.com/
4551 CATEGORIES:SPORTS EVENT,ENTERTAINMENT
4552 CLASS:PRIVATE
4553 DESCRIPTION:MIDWAY STADIUM\n
4554 Big time game. MUST see.\n
4555 Expected duration:2 hours\n
4556 DTEND;TZID=America-Chicago:19970701T180000
4557 DTSTART;TZID=America-Chicago:19970702T160000
4558 DTSTAMP:19970614T190000Z
4559 STATUS:CONFIRMED
4560 LOCATION;VALUE=URI:http://stadium.example.com/
4561 PRIORITY:2
4562 RESOURCES:SCOREBOARD
4563 SEQUENCE:3
4564 SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
4565 UID:0981234-1234234-23@example.com
4566 RELATED-TO:0981234-1234234-14@example.com
4567 BEGIN:VALARM
4568 TRIGGER:-PT2H
4569 ACTION:DISPLAY
4570 DESCRIPTION:You should be leaving for the game now.
4571 END:VALARM
4572 BEGIN:VALARM
4573 TRIGGER:-PT30M
4574 ACTION:AUDIO
4575 END:VALARM
4576 END:VEVENT
4577 END:VCALENDAR
4578
4579 The "RELATED-TO" field contains the "UID" property of a related
4580 calendar event. The "SEQUENCE" property 3 indicates that this event
4581 supersedes versions 0, 1, and 2.
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594Daboo Standards Track [Page 82]
4595
4596RFC 5546 iTIP December 2009
4597
4598
45994.1.5. Anniversaries or Events Attached to Entire Days
4600
4601 This example demonstrates the use of the "VALUE" parameter to tie a
4602 "VEVENT" to a day rather than a specific time.
4603
4604 BEGIN:VCALENDAR
4605 PRODID:-//Example/ExampleCalendarClient//EN
4606 METHOD:PUBLISH
4607 VERSION:2.0
4608 BEGIN:VEVENT
4609 ORGANIZER:mailto:a@example.com
4610 DTSTAMP:19970614T190000Z
4611 UID:0981234-1234234-23@example.com
4612 DTSTART;VALUE=DATE:19970714
4613 RRULE:FREQ=YEARLY;INTERVAL=1
4614 SUMMARY: Bastille Day
4615 END:VEVENT
4616 END:VCALENDAR
4617
46184.2. Group Event Examples
4619
4620 Group events are distinguished from published events in that they
4621 have "Attendees" and there is interaction between the "Attendees" and
4622 the "Organizer" with respect to the event. Individual "A" requests a
4623 meeting between individuals "A", "B", "C", and "D". Individual "B"
4624 confirms attendance to the meeting. Individual "C" declines
4625 attendance. Individual "D" tentatively confirms attendance. The
4626 following table illustrates the message flow between these
4627 individuals. "A", the CU scheduling the meeting, is referenced as
4628 the "Organizer".
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650Daboo Standards Track [Page 83]
4651
4652RFC 5546 iTIP December 2009
4653
4654
4655 +--------------+-----------------------+----------------------------+
4656 | Action | "Organizer" | Attendee |
4657 +--------------+-----------------------+----------------------------+
4658 | Initiate a | "A" sends a REQUEST | |
4659 | meeting | message to "B", "C", | |
4660 | request | and "D". | |
4661 | | | |
4662 | Accept the | | "B" sends a REPLY message |
4663 | meeting | | to "A" with its ATTENDEE |
4664 | request | | PARTSTAT parameter set to |
4665 | | | ACCEPTED. |
4666 | | | |
4667 | Decline the | | "C" sends a REPLY message |
4668 | meeting | | to "A" with its ATTENDEE |
4669 | request | | PARTSTAT parameter set to |
4670 | | | DECLINED. |
4671 | | | |
4672 | Tentatively | | "D" sends a REPLY message |
4673 | accept the | | to "A" with its ATTENDEE |
4674 | meeting | | PARTSTAT parameter set to |
4675 | request | | TENTATIVE. |
4676 | | | |
4677 | Confirm | "A" sends a REQUEST | |
4678 | meeting | message to "B" and | |
4679 | status with | "D" with updated | |
4680 | Attendees | information. | |
4681 +--------------+-----------------------+----------------------------+
4682
46834.2.1. A Group Event Request
4684
4685 A sample meeting request is sent from "A" to "B", "C", and "D". "E"
4686 is also sent a copy of the request but is not expected to attend and
4687 need not reply. "E" illustrates how CUAs might implement an "FYI"-
4688 type feature. Note the use of the "ROLE" parameter. The default
4689 value for the "ROLE" parameter is "REQ-PARTICIPANT" and it need not
4690 be enumerated. In this case, we are using the value "NON-
4691 PARTICIPANT" to indicate "E" is a non-attending CU. The parameter is
4692 not needed on other "Attendees" since "PARTICIPANT" is the default
4693 value.
4694
4695 BEGIN:VCALENDAR
4696 PRODID:-//Example/ExampleCalendarClient//EN
4697 METHOD:REQUEST
4698 VERSION:2.0
4699 BEGIN:VEVENT
4700 ORGANIZER:mailto:a@example.com
4701 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
4702 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:b@example.com
4703
4704
4705
4706Daboo Standards Track [Page 84]
4707
4708RFC 5546 iTIP December 2009
4709
4710
4711 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:c@example.com
4712 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
4713 ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:conf_big@example.com
4714 ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
4715 DTSTAMP:19970611T190000Z
4716 DTSTART:19970701T200000Z
4717 DTEND:19970701T2100000Z
4718 SUMMARY:Conference
4719 UID:calsrv.example.com-873970198738777@example.com
4720 SEQUENCE:0
4721 STATUS:CONFIRMED
4722 END:VEVENT
4723 END:VCALENDAR
4724
47254.2.2. Reply to a Group Event Request
4726
4727 "Attendee" "B" accepts the meeting.
4728
4729 BEGIN:VCALENDAR
4730 PRODID:-//Example/ExampleCalendarClient//EN
4731 METHOD:REPLY
4732 VERSION:2.0
4733 BEGIN:VEVENT
4734 ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
4735 ORGANIZER:mailto:a@example.com
4736 UID:calsrv.example.com-873970198738777@example.com
4737 SEQUENCE:0
4738 REQUEST-STATUS:2.0;Success
4739 DTSTAMP:19970612T190000Z
4740 END:VEVENT
4741 END:VCALENDAR
4742
4743 "B" could have declined the meeting or indicated tentative acceptance
4744 by setting the "ATTENDEE" "PARTSTAT" parameter to "DECLINED" or
4745 "TENTATIVE", respectively. Also, "REQUEST-STATUS" is not required in
4746 successful transactions.
4747
47484.2.3. Update an Event
4749
4750 The event is moved to a different time. The combination of the "UID"
4751 property (unchanged) and the "SEQUENCE" (bumped to 1) properties
4752 indicate the update.
4753
4754 BEGIN:VCALENDAR
4755 PRODID:-//Example/ExampleCalendarClient//EN
4756 METHOD:REQUEST
4757 VERSION:2.0
4758 BEGIN:VEVENT
4759
4760
4761
4762Daboo Standards Track [Page 85]
4763
4764RFC 5546 iTIP December 2009
4765
4766
4767 ORGANIZER:mailto:a@example.com
4768 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
4769 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
4770 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
4771 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
4772 ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;
4773 CUTYPE=ROOM:mailto:conf@example.com
4774 ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
4775 DTSTART:19970701T180000Z
4776 DTEND:19970701T190000Z
4777 SUMMARY:Phone Conference
4778 UID:calsrv.example.com-873970198738777@example.com
4779 SEQUENCE:1
4780 DTSTAMP:19970613T190000Z
4781 STATUS:CONFIRMED
4782 END:VEVENT
4783 END:VCALENDAR
4784
47854.2.4. Countering an Event Proposal
4786
4787 "A" sends a "REQUEST" to "B" and "C". "B" makes a counter proposal
4788 to "A" to change the time and location.
4789
4790 "A" sends the following "REQUEST":
4791
4792 BEGIN:VCALENDAR
4793 PRODID:-//Example/ExampleCalendarClient//EN
4794 METHOD:REQUEST
4795 VERSION:2.0
4796 BEGIN:VEVENT
4797 ORGANIZER:mailto:a@example.com
4798 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
4799 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
4800 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
4801 DTSTART:19970701T190000Z
4802 DTEND:19970701T200000Z
4803 SUMMARY:Discuss the Merits of the election results
4804 LOCATION:Green Conference Room
4805 UID:calsrv.example.com-873970198738777a@example.com
4806 SEQUENCE:0
4807 DTSTAMP:19970611T190000Z
4808 STATUS:CONFIRMED
4809 END:VEVENT
4810 END:VCALENDAR
4811
4812
4813
4814
4815
4816
4817
4818Daboo Standards Track [Page 86]
4819
4820RFC 5546 iTIP December 2009
4821
4822
4823 "B" sends "COUNTER" to "A", requesting changes to time and place.
4824 "B" uses the "COMMENT" property to communicate a rationale for the
4825 change. Note that the "SEQUENCE" property is not incremented on a
4826 "COUNTER".
4827
4828 BEGIN:VCALENDAR
4829 PRODID:-//Example/ExampleCalendarClient//EN
4830 METHOD:COUNTER
4831 VERSION:2.0
4832 BEGIN:VEVENT
4833 ORGANIZER:mailto:a@example.com
4834 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
4835 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
4836 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
4837 DTSTART:19970701T160000Z
4838 DTEND:19970701T170000Z
4839 DTSTAMP:19970612T190000Z
4840 SUMMARY:Discuss the Merits of the election results
4841 LOCATION:Blue Conference Room
4842 COMMENT:This time works much better and I think the big conference
4843 room is too big
4844 UID:calsrv.example.com-873970198738777a@example.com
4845 SEQUENCE:0
4846 END:VEVENT
4847 END:VCALENDAR
4848
4849 "A" accepts the changes from "B". To accept a counter proposal, the
4850 "Organizer" sends a new event "REQUEST" with an incremented sequence
4851 number.
4852
4853 BEGIN:VCALENDAR
4854 PRODID:-//Example/ExampleCalendarClient//EN
4855 METHOD:REQUEST
4856 VERSION:2.0
4857 BEGIN:VEVENT
4858 ORGANIZER:mailto:a@example.com
4859 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
4860 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
4861 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
4862 DTSTAMP:19970613T190000Z
4863 DTSTART:19970701T160000Z
4864 DTEND:19970701T170000Z
4865 SUMMARY:Discuss the Merits of the election results - changed to
4866 meet B's schedule
4867 LOCATION:Blue Conference Room
4868 UID:calsrv.example.com-873970198738777@example.com
4869 SEQUENCE:1
4870 STATUS:CONFIRMED
4871
4872
4873
4874Daboo Standards Track [Page 87]
4875
4876RFC 5546 iTIP December 2009
4877
4878
4879 END:VEVENT
4880 END:VCALENDAR
4881
4882 Instead, "A" rejects "B's" counter proposal.
4883
4884 BEGIN:VCALENDAR
4885 PRODID:-//Example/ExampleCalendarClient//EN
4886 METHOD:DECLINECOUNTER
4887 VERSION:2.0
4888 BEGIN:VEVENT
4889 ORGANIZER:mailto:a@example.com
4890 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
4891 COMMENT:Sorry, I cannot change this meeting time
4892 UID:calsrv.example.com-873970198738777@example.com
4893 SEQUENCE:0
4894 DTSTAMP:19970614T190000Z
4895 END:VEVENT
4896 END:VCALENDAR
4897
48984.2.5. Delegating an Event
4899
4900 When delegating an event request to another "Calendar User", the
4901 "Delegator" must both update the "Organizer" with a "REPLY" and send
4902 a request to the "Delegate". There is currently no protocol
4903 limitation to delegation depth. It is possible for the original
4904 delegate to delegate the meeting to someone else, and so on. When a
4905 request is delegated from one CUA to another, there are a number of
4906 responsibilities required of the "Delegator". The "Delegator" MUST:
4907
4908 o Send a "REPLY" to the "Organizer" with the following updates:
4909
4910 A. The "Delegator's" "ATTENDEE" property "PARTSTAT" parameter is
4911 set to "DELEGATED" and the "DELEGATED-TO" parameter is set to
4912 the address of the "Delegate".
4913
4914 B. Add an additional "ATTENDEE" property for the "Delegate" with
4915 the "DELEGATED-FROM" property parameter set to the
4916 "Delegator".
4917
4918 C. Indicate whether they want to continue to receive updates when
4919 the "Organizer" sends out updated versions of the event.
4920 Setting the "RSVP" property parameter to "TRUE" will cause the
4921 updates to be sent; setting it to "FALSE" causes no further
4922 updates to be sent. Note that in either case, if the
4923 "Delegate" declines the invitation, the "Delegator" will be
4924 notified.
4925
4926
4927
4928
4929
4930Daboo Standards Track [Page 88]
4931
4932RFC 5546 iTIP December 2009
4933
4934
4935 o The "Delegator" MUST also send a copy of the original "REQUEST"
4936 method to the "Delegate", with changes (A) and (B), as detailed
4937 above applied.
4938
4939 If the "Delegate" declines the meeting, the "Organizer" MUST send an
4940 update "REQUEST" to the "Delegator" so that the "Delegator" may elect
4941 to delegate the "REQUEST" to another CUA.
4942
4943 +----------------+-----------------+--------------------------------+
4944 | Action | "Organizer" | Attendee |
4945 +----------------+-----------------+--------------------------------+
4946 | Initiate a | "A" sends a | |
4947 | meeting | REQUEST message | |
4948 | request | to "B" and "C". | |
4949 | | | |
4950 | Delegate: "C" | | "C" sends a REPLY to "A" with |
4951 | delegates to | | the ATTENDEE PARTSTAT |
4952 | "E" | | parameter set to DELEGATED and |
4953 | | | with a new ATTENDEE property |
4954 | | | for "E". "E's" ATTENDEE |
4955 | | | DELEGATED-FROM parameter is |
4956 | | | set to "C". "C's" ATTENDEE |
4957 | | | DELEGATED-TO parameter is set |
4958 | | | to "E". "C" sends REQUEST |
4959 | | | message to "E" with the |
4960 | | | original meeting request |
4961 | | | information. The PARTSTAT |
4962 | | | property parameter for "C" is |
4963 | | | set to DELEGATED and the |
4964 | | | DELEGATED-TO parameter is set |
4965 | | | to the address of "E". An |
4966 | | | ATTENDEE property is added for |
4967 | | | "E" and the DELEGATED-FROM |
4968 | | | parameter is set to the |
4969 | | | address of "C". |
4970 | | | |
4971 | Confirm | | "E" sends REPLY message to |
4972 | meeting | | "A", and optionally to "C", |
4973 | attendance | | with its PARTSTAT property |
4974 | | | parameter set to ACCEPTED. |
4975 | | | |
4976 | Optional: | "A" sends | |
4977 | Redistribute | REQUEST message | |
4978 | meeting to | to "B", "C", | |
4979 | Attendees | and "E". | |
4980 +----------------+-----------------+--------------------------------+
4981
4982
4983
4984
4985
4986Daboo Standards Track [Page 89]
4987
4988RFC 5546 iTIP December 2009
4989
4990
4991 "C" responds to the "Organizer".
4992
4993 BEGIN:VCALENDAR
4994 PRODID:-//Example/ExampleCalendarClient//EN
4995 METHOD:REPLY
4996 VERSION:2.0
4997 BEGIN:VEVENT
4998 ORGANIZER:mailto:a@example.com
4999 ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
5000 TO="mailto:e@example.com":mailto:c@example.com
5001 UID:calsrv.example.com-873970198738777@example.com
5002 SEQUENCE:0
5003 REQUEST-STATUS:2.0;Success
5004 DTSTAMP:19970611T190000Z
5005 END:VEVENT
5006 END:VCALENDAR
5007
5008 "Attendee" "C" delegates presence at the meeting to "E".
5009
5010 BEGIN:VCALENDAR
5011 PRODID:-//Example/ExampleCalendarClient//EN
5012 METHOD:REQUEST
5013 VERSION:2.0
5014 BEGIN:VEVENT
5015 ORGANIZER:mailto:a@example.com
5016 ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
5017 TO="mailto:e@example.com":mailto:c@example.com
5018 ATTENDEE;RSVP=TRUE;
5019 DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
5020 DTSTART:19970701T180000Z
5021 DTEND:19970701T200000Z
5022 SUMMARY:Phone Conference
5023 UID:calsrv.example.com-873970198738777@example.com
5024 SEQUENCE:0
5025 STATUS:CONFIRMED
5026 DTSTAMP:19970611T190000Z
5027 END:VEVENT
5028 END:VCALENDAR
5029
50304.2.6. Delegate Accepts the Meeting
5031
5032 To accept a delegated meeting, the delegate, "E", sends the following
5033 message to "A" and "C".
5034
5035 BEGIN:VCALENDAR
5036 PRODID:-//Example/ExampleCalendarClient//EN
5037 METHOD:REPLY
5038 VERSION:2.0
5039
5040
5041
5042Daboo Standards Track [Page 90]
5043
5044RFC 5546 iTIP December 2009
5045
5046
5047 BEGIN:VEVENT
5048 ORGANIZER:mailto:a@example.com
5049 ATTENDEE;PARTSTAT=ACCEPTED;DELEGATED-
5050 FROM="mailto:c@example.com":mailto:e@example.com
5051 ATTENDEE;PARTSTAT=DELEGATED;
5052 DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
5053 UID:calsrv.example.com-873970198738777@example.com
5054 SEQUENCE:0
5055 REQUEST-STATUS:2.0;Success
5056 DTSTAMP:19970614T190000Z
5057 END:VEVENT
5058 END:VCALENDAR
5059
50604.2.7. Delegate Declines the Meeting
5061
5062 In this example, the "Delegate" declines the meeting request and sets
5063 the "ATTENDEE" property "PARTSTAT" parameter to "DECLINED". The
5064 "Organizer" SHOULD resend the "REQUEST" to "C" with the "PARTSTAT"
5065 parameter of the "Delegate" set to "DECLINED". This lets the
5066 "Delegator" know that the "Delegate" has declined and provides an
5067 opportunity to the "Delegator" to either accept the request or
5068 delegate it to another CU.
5069
5070 "E" responds to "A" and "C". Note the use of the "COMMENT" property
5071 "E" uses to indicate why the delegation was declined.
5072
5073 BEGIN:VCALENDAR
5074 PRODID:-//Example/ExampleCalendarClient//EN
5075 METHOD:REPLY
5076 VERSION:2.0
5077 BEGIN:VEVENT
5078 ORGANIZER:mailto:a@example.com
5079 ATTENDEE;PARTSTAT=DELEGATED;
5080 DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
5081 ATTENDEE;PARTSTAT=DECLINED;
5082 DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
5083 COMMENT:Sorry, I will be out of town at that time.
5084 UID:calsrv.example.com-873970198738777@example.com
5085 SEQUENCE:0
5086 REQUEST-STATUS:2.0;Success
5087 DTSTAMP:19970614T190000Z
5088 END:VEVENT
5089 END:VCALENDAR
5090
5091 "A" resends the "REQUEST" method to "C". "A" may also wish to
5092 express the fact that the item was delegated in the "COMMENT"
5093 property.
5094
5095
5096
5097
5098Daboo Standards Track [Page 91]
5099
5100RFC 5546 iTIP December 2009
5101
5102
5103 BEGIN:VCALENDAR
5104 PRODID:-//Example/ExampleCalendarClient//EN
5105 METHOD:REQUEST
5106 VERSION:2.0
5107 BEGIN:VEVENT
5108 ORGANIZER:mailto:a@example.com
5109 ATTENDEE;PARTSTAT=DECLINED;
5110 DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
5111 ATTENDEE;RSVP=TRUE:mailto:c@example.com
5112 UID:calsrv.example.com-873970198738777@example.com
5113 SEQUENCE:0
5114 SUMMARY:Phone Conference
5115 DTSTART:19970701T180000Z
5116 DTEND:19970701T200000Z
5117 DTSTAMP:19970614T200000Z
5118 COMMENT:DELEGATE (ATTENDEE mailto:e@example.com) DECLINED YOUR
5119 INVITATION
5120 END:VEVENT
5121 END:VCALENDAR
5122
51234.2.8. Forwarding an Event Request
5124
5125 The protocol does not prevent an "Attendee" from "forwarding" a
5126 "VEVENT" calendar component to other "Calendar Users". Forwarding
5127 differs from delegation in that the forwarded "Calendar User" (often
5128 referred to as a "Party Crasher") does not replace the forwarding
5129 "Calendar User". Implementations are not required to add the "Party
5130 Crasher" to the "Attendee" list, and hence there is no guarantee that
5131 a "Party Crasher" will receive additional updates to the event. The
5132 forwarding "Calendar User" SHOULD NOT add the "Party Crasher" to the
5133 "Attendee" list. The "Organizer" MAY add the forwarded "Calendar
5134 User" to the "Attendee" list.
5135
51364.2.9. Cancel a Group Event
5137
5138 Individual "A" requests a meeting between individuals "A", "B", "C",
5139 and "D". Individual "B" declines attendance to the meeting.
5140 Individual "A" decides to cancel the meeting. The following table
5141 illustrates the sequence of messages that would be exchanged between
5142 these individuals.
5143
5144 Messages related to a previously canceled event ("SEQUENCE" property
5145 value is less than the "SEQUENCE" property value of the "CANCEL"
5146 message) MUST be ignored.
5147
5148
5149
5150
5151
5152
5153
5154Daboo Standards Track [Page 92]
5155
5156RFC 5546 iTIP December 2009
5157
5158
5159 +-------------+---------------------+-------------------------------+
5160 | Action | Organizer | Attendee |
5161 +-------------+---------------------+-------------------------------+
5162 | Initiate a | "A" sends a REQUEST | |
5163 | meeting | message to "B", | |
5164 | request | "C", and "D". | |
5165 | | | |
5166 | Decline the | | "B" sends a REPLY message to |
5167 | meeting | | "A" with its PARTSTAT |
5168 | request | | parameter set to DECLINED. |
5169 | | | |
5170 | Cancel the | "A" sends a CANCEL | |
5171 | meeting | message to "B", | |
5172 | | "C", and "D". | |
5173 +-------------+---------------------+-------------------------------+
5174
5175 This example shows how "A" cancels the event.
5176
5177 BEGIN:VCALENDAR
5178 PRODID:-//Example/ExampleCalendarClient//EN
5179 METHOD:CANCEL
5180 VERSION:2.0
5181 BEGIN:VEVENT
5182 ORGANIZER:mailto:a@example.com
5183 ATTENDEE;CUTYPE=INDIVIDUAL;mailto:a@example.com
5184 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:b@example.com
5185 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
5186 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
5187 COMMENT:Mr. B cannot attend. It's raining. Lets cancel.
5188 UID:calsrv.example.com-873970198738777@example.com
5189 SEQUENCE:1
5190 STATUS:CANCELLED
5191 DTSTAMP:19970613T190000Z
5192 END:VEVENT
5193 END:VCALENDAR
5194
51954.2.10. Removing Attendees
5196
5197 "A" wants to remove "B" from a meeting. This is done by sending a
5198 "CANCEL" to "B" and removing "B" from the "Attendee" list in the
5199 master copy of the event.
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210Daboo Standards Track [Page 93]
5211
5212RFC 5546 iTIP December 2009
5213
5214
5215 +--------------------+-----------------------------------+----------+
5216 | Action | Organizer | Attendee |
5217 +--------------------+-----------------------------------+----------+
5218 | Remove "B" as an | "A" sends a CANCEL message to | |
5219 | Attendee | "B". | |
5220 | | | |
5221 | Update the master | "A" optionally sends the updated | |
5222 | copy of the event | event to the remaining Attendees. | |
5223 +--------------------+-----------------------------------+----------+
5224
5225 The original meeting includes "A", "B", "C", and "D". The example
5226 below shows the "CANCEL" that "A" sends to "B". Note that in the
5227 example below, the "STATUS" property is omitted. This is used when
5228 the meeting itself is cancelled and not when the intent is to remove
5229 an "Attendee" from the event.
5230
5231 BEGIN:VCALENDAR
5232 PRODID:-//Example/ExampleCalendarClient//EN
5233 METHOD:CANCEL
5234 VERSION:2.0
5235 BEGIN:VEVENT
5236 ORGANIZER:mailto:a@example.com
5237 ATTENDEE:mailto:b@example.com
5238 COMMENT:You're off the hook for this meeting
5239 UID:calsrv.example.com-873970198738777@example.com
5240 DTSTAMP:19970613T193000Z
5241 SEQUENCE:1
5242 END:VEVENT
5243 END:VCALENDAR
5244
5245 The updated master copy of the event is shown below. The "Organizer"
5246 MAY resend the updated event to the remaining "Attendees". Note that
5247 "B" has been removed.
5248
5249 BEGIN:VCALENDAR
5250 PRODID:-//Example/ExampleCalendarClient//EN
5251 METHOD:REQUEST
5252 VERSION:2.0
5253 BEGIN:VEVENT
5254 ORGANIZER:mailto:a@example.com
5255 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5256 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
5257 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
5258 ATTENDEE;CUTYPE=ROOM:mailto:cr_big@example.com
5259 ATTENDEE;ROLE=NON-PARTICIPANT;
5260 RSVP=FALSE:mailto:e@example.com
5261 DTSTAMP:19970611T190000Z
5262 DTSTART:19970701T200000Z
5263
5264
5265
5266Daboo Standards Track [Page 94]
5267
5268RFC 5546 iTIP December 2009
5269
5270
5271 DTEND:19970701T203000Z
5272 SUMMARY:Phone Conference
5273 UID:calsrv.example.com-873970198738777@example.com
5274 SEQUENCE:2
5275 STATUS:CONFIRMED
5276 END:VEVENT
5277 END:VCALENDAR
5278
52794.2.11. Replacing the Organizer
5280
5281 The scenario for this example begins with "A" as the "Organizer" for
5282 a recurring meeting with "B", "C", and "D". "A" receives a new job
5283 offer in another country and drops out of touch. "A" left no
5284 forwarding address or way to be reached. Using out-of-band
5285 communication, the other "Attendees" eventually learn what has
5286 happened and reach an agreement that "B" should become the new
5287 "Organizer" for the meeting. To do this, "B" sends out a new version
5288 of the event and the other "Attendees" agree to accept "B" as the new
5289 "Organizer". "B" also removes "A" from the event.
5290
5291 When the "Organizer" is replaced, the "SEQUENCE" property value MUST
5292 be incremented.
5293
5294 This is the message "B" sends to "C" and "D".
5295
5296 BEGIN:VCALENDAR
5297 PRODID:-//Example/ExampleCalendarClient//EN
5298 METHOD:REQUEST
5299 VERSION:2.0
5300 BEGIN:VEVENT
5301 ORGANIZER:mailto:b@example.com
5302 ATTENDEE;ROLE=CHAIR;STATUS=ACCEPTED:mailto:b@example.com
5303 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
5304 ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
5305 DTSTAMP:19970611T190000Z
5306 DTSTART:19970701T200000Z
5307 DTEND:19970701T203000Z
5308 RRULE:FREQ=WEEKLY
5309 SUMMARY:Phone Conference
5310 UID:123456@example.com
5311 SEQUENCE:1
5312 STATUS:CONFIRMED
5313 END:VEVENT
5314 END:VCALENDAR
5315
5316
5317
5318
5319
5320
5321
5322Daboo Standards Track [Page 95]
5323
5324RFC 5546 iTIP December 2009
5325
5326
53274.3. Busy Time Examples
5328
5329 Busy time objects can be used in several ways. First, a CU may
5330 request busy time from another CU for a specific range of time. That
5331 request can be answered with a busy time "REPLY". Additionally, a CU
5332 may simply publish their busy time for a given interval and point
5333 other CUs to the published location. The following examples outline
5334 both scenarios.
5335
53364.3.1. Publish Busy Time
5337
5338 Individual "A" publishes busy time for one week.
5339
5340 BEGIN:VCALENDAR
5341 PRODID:-//Example/ExampleCalendarClient//EN
5342 VERSION:2.0
5343 METHOD:PUBLISH
5344 BEGIN:VFREEBUSY
5345 DTSTAMP:19980101T124100Z
5346 ORGANIZER:mailto:a@example.com
5347 DTSTART:19980101T124200Z
5348 DTEND:19980108T124200Z
5349 FREEBUSY:19980101T180000Z/19980101T190000Z
5350 FREEBUSY:19980103T020000Z/19980103T050000Z
5351 FREEBUSY:19980107T020000Z/19980107T050000Z
5352 FREEBUSY:19980113T000000Z/19980113T010000Z
5353 FREEBUSY:19980115T190000Z/19980115T200000Z
5354 FREEBUSY:19980115T220000Z/19980115T230000Z
5355 FREEBUSY:19980116T013000Z/19980116T043000Z
5356 END:VFREEBUSY
5357 END:VCALENDAR
5358
53594.3.2. Request Busy Time
5360
5361 Individual "A" requests busy time from individuals "B" and "C".
5362 Individuals "B" and "C" reply with busy time data to individual "A".
5363 The following table illustrates the sequence of messages that would
5364 be exchanged between these individuals.
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378Daboo Standards Track [Page 96]
5379
5380RFC 5546 iTIP December 2009
5381
5382
5383 +---------------------+--------------------+------------------------+
5384 | Action | Organizer | Attendee |
5385 +---------------------+--------------------+------------------------+
5386 | Initiate a busy | "A" sends REQUEST | |
5387 | time request | message to "B" and | |
5388 | | "C". | |
5389 | | | |
5390 | Reply to the BUSY | | "B" sends a REPLY |
5391 | request with BUSY | | message to "A" with |
5392 | time data | | busy time data. |
5393 +---------------------+--------------------+------------------------+
5394
5395 "A" sends a "REQUEST" to "B" and "C" for busy time.
5396
5397 BEGIN:VCALENDAR
5398 PRODID:-//Example/ExampleCalendarClient//EN
5399 METHOD:REQUEST
5400 VERSION:2.0
5401 BEGIN:VFREEBUSY
5402 ORGANIZER:mailto:a@example.com
5403 ATTENDEE;ROLE=CHAIR:mailto:a@example.com
5404 ATTENDEE:mailto:b@example.com
5405 ATTENDEE:mailto:c@example.com
5406 DTSTAMP:19970613T190000Z
5407 DTSTART:19970701T080000Z
5408 DTEND:19970701T200000
5409 UID:calsrv.example.com-873970198738777@example.com
5410 END:VFREEBUSY
5411 END:VCALENDAR
5412
54134.3.3. Reply to a Busy Time Request
5414
5415 "B" sends a "REPLY" method type of a "VFREEBUSY" calendar component
5416 to "A".
5417
5418 BEGIN:VCALENDAR
5419 PRODID:-//Example/ExampleCalendarClient//EN
5420 METHOD:REPLY
5421 VERSION:2.0
5422 BEGIN:VFREEBUSY
5423 ORGANIZER:mailto:a@example.com
5424 ATTENDEE:mailto:b@example.com
5425 DTSTART:19970701T080000Z
5426 DTEND:19970701T200000Z
5427 UID:calsrv.example.com-873970198738777@example.com
5428 FREEBUSY:19970701T090000Z/PT1H,19970701T140000Z/PT30M
5429 DTSTAMP:19970613T190030Z
5430 END:VFREEBUSY
5431
5432
5433
5434Daboo Standards Track [Page 97]
5435
5436RFC 5546 iTIP December 2009
5437
5438
5439 END:VCALENDAR
5440
5441 "B" is busy from 09:00 to 10:00 and from 14:00 to 14:30.
5442
54434.4. Recurring Event and Time Zone Examples
5444
54454.4.1. A Recurring Event Spanning Time Zones
5446
5447 This event describes a weekly phone conference. The "Attendees" are
5448 each in a different time zone.
5449
5450 BEGIN:VCALENDAR
5451 PRODID:-//Example/ExampleCalendarClient//EN
5452 METHOD:REQUEST
5453 VERSION:2.0
5454 BEGIN:VTIMEZONE
5455 TZID:America-SanJose
5456 TZURL:http://example.com/tz/America-SanJose
5457 BEGIN:STANDARD
5458 DTSTART:19671029T020000
5459 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
5460 TZOFFSETFROM:-0700
5461 TZOFFSETTO:-0800
5462 TZNAME:PST
5463 END:STANDARD
5464 BEGIN:DAYLIGHT
5465 DTSTART:19870405T020000
5466 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
5467 TZOFFSETFROM:-0800
5468 TZOFFSETTO:-0700
5469 TZNAME:PDT
5470 END:DAYLIGHT
5471 END:VTIMEZONE
5472 BEGIN:VEVENT
5473 ORGANIZER:mailto:a@example.com
5474 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;
5475 CUTYPE=INDIVIDUAL:a@example.com
5476 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:b@example.fr
5477 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:c@example.jp
5478 DTSTAMP:19970613T190030Z
5479 DTSTART;TZID=America-SanJose:19970701T140000
5480 DTEND;TZID=America-SanJose:19970701T150000
5481 RRULE:FREQ=WEEKLY;COUNT=20;WKST=SU;BYDAY=TU
5482 RDATE;TZID=America-SanJose:19970910T140000
5483 EXDATE;TZID=America-SanJose:19970909T140000
5484 EXDATE;TZID=America-SanJose:19971028T140000
5485 SUMMARY:Weekly Phone Conference
5486 UID:calsrv.example.com-873970198738777@example.com
5487
5488
5489
5490Daboo Standards Track [Page 98]
5491
5492RFC 5546 iTIP December 2009
5493
5494
5495 SEQUENCE:0
5496 STATUS:CONFIRMED
5497 END:VEVENT
5498 END:VCALENDAR
5499
5500 The first component of this iCalendar object is the time zone
5501 component. The "DTSTART" date coincides with the first instance of
5502 the "RRULE" property.
5503
5504 The recurring meeting is defined in a particular time zone,
5505 presumably that of the originator. The client for each "Attendee"
5506 has the responsibility of determining the recurrence time in the
5507 "Attendee's" time zone.
5508
5509 The repeating event starts on Tuesday, July 1, 1997 at 2:00pm PDT
5510 (UTC-7). "Attendee" B@example.fr is in France, where the local time
5511 on this date is 9 hours ahead of PDT, or 23:00 CEST (UTC+2).
5512 "Attendee" C@example.jp is in Japan, where local time is 16 hours
5513 ahead of PDT, or Wednesday, July 2 at 06:00 JST (UTC+9). The event
5514 repeats weekly on Tuesdays (in PST/PDT). The "RRULE" property
5515 results in 20 instances. The last instance falls on Tuesday,
5516 November 11, 1997 2:00pm PST. The "RDATE" property adds another
5517 instance: WED, 10-SEP-1997 2:00 PM PDT.
5518
5519 There are also two exception dates to the recurrence rule. The first
5520 one is:
5521
5522 o TUE, 09-SEP-1997 14:00 PDT (UTC-7)
5523
5524 o TUE, 09-SEP-1997 23:00 CEST (UTC+2)
5525
5526 o WED, 10-SEP-1997 06:00 JST (UTC+9)
5527
5528
5529 and the second is:
5530
5531 o TUE, 28-OCT-1997 14:00 PST (UTC-8)
5532
5533 o TUE, 28-OCT-1997 23:00 CET (UTC+1)
5534
5535 o WED, 29-OCT-1997 07:00 JST (UTC+9)
5536
55374.4.2. Modify a Recurring Instance
5538
5539 In this example, the "Organizer" issues a recurring meeting. Later,
5540 the "Organizer" changes an instance of the event by changing the
5541 "DTSTART" property. Note the use of "RECURRENCE-ID" property and
5542 "SEQUENCE" property in the second request.
5543
5544
5545
5546Daboo Standards Track [Page 99]
5547
5548RFC 5546 iTIP December 2009
5549
5550
5551 Original Request:
5552
5553 BEGIN:VCALENDAR
5554 METHOD:REQUEST
5555 PRODID:-//Example/ExampleCalendarClient//EN
5556 VERSION:2.0
5557 BEGIN:VEVENT
5558 UID:guid-1@example.com
5559 SEQUENCE:0
5560 RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
5561 ORGANIZER:mailto:a@example.com
5562 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5563 ATTENDEE:mailto:b@example.com
5564 ATTENDEE:mailto:c@example.com
5565 ATTENDEE:mailto:d@example.com
5566 DESCRIPTION:IETF-C&S Conference Call
5567 CLASS:PUBLIC
5568 SUMMARY:IETF Calendaring Working Group Meeting
5569 DTSTART:19970601T210000Z
5570 DTEND:19970601T220000Z
5571 LOCATION:Conference Call
5572 DTSTAMP:19970526T083000Z
5573 STATUS:CONFIRMED
5574 END:VEVENT
5575 END:VCALENDAR
5576
5577 The event request below is to change the time of a specific instance.
5578 This changes the July 1st instance to July 3rd.
5579
5580 BEGIN:VCALENDAR
5581 METHOD:REQUEST
5582 PRODID:-//Example/ExampleCalendarClient//EN
5583 VERSION:2.0
5584 BEGIN:VEVENT
5585 UID:guid-1@example.com
5586 RECURRENCE-ID:19970701T210000Z
5587 SEQUENCE:1
5588 ORGANIZER:mailto:a@example.com
5589 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5590 ATTENDEE:mailto:b@example.com
5591 ATTENDEE:mailto:c@example.com
5592 ATTENDEE:mailto:d@example.com
5593 DESCRIPTION:IETF-C&S Conference Call
5594 CLASS:PUBLIC
5595 SUMMARY:IETF Calendaring Working Group Meeting
5596 DTSTART:19970703T210000Z
5597 DTEND:19970703T220000Z
5598 LOCATION:Conference Call
5599
5600
5601
5602Daboo Standards Track [Page 100]
5603
5604RFC 5546 iTIP December 2009
5605
5606
5607 DTSTAMP:19970626T093000Z
5608 STATUS:CONFIRMED
5609 END:VEVENT
5610 END:VCALENDAR
5611
56124.4.3. Cancel an Instance
5613
5614 In this example, the "Organizer" of a recurring event deletes the
5615 August 1st instance.
5616
5617 BEGIN:VCALENDAR
5618 METHOD:CANCEL
5619 PRODID:-//Example/ExampleCalendarClient//EN
5620 VERSION:2.0
5621 BEGIN:VEVENT
5622 UID:guid-1@example.com
5623 ORGANIZER:mailto:a@example.com
5624 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5625 ATTENDEE:mailto:b@example.com
5626 ATTENDEE:mailto:c@example.com
5627 ATTENDEE:mailto:d@example.com
5628 RECURRENCE-ID:19970801T210000Z
5629 SEQUENCE:2
5630 STATUS:CANCELLED
5631 DTSTAMP:19970721T093000Z
5632 END:VEVENT
5633 END:VCALENDAR
5634
56354.4.4. Cancel a Recurring Event
5636
5637 In this example, the "Organizer" wishes to cancel the entire
5638 recurring event and any exceptions.
5639
5640 BEGIN:VCALENDAR
5641 METHOD:CANCEL
5642 PRODID:-//Example/ExampleCalendarClient//EN
5643 VERSION:2.0
5644 BEGIN:VEVENT
5645 UID:guid-1@example.com
5646 ORGANIZER:mailto:a@example.com
5647 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5648 ATTENDEE:mailto:b@example.com
5649 ATTENDEE:mailto:c@example.com
5650 ATTENDEE:mailto:d@example.com
5651 DTSTAMP:19970721T103000Z
5652 STATUS:CANCELLED
5653 SEQUENCE:3
5654 END:VEVENT
5655
5656
5657
5658Daboo Standards Track [Page 101]
5659
5660RFC 5546 iTIP December 2009
5661
5662
5663 END:VCALENDAR
5664
56654.4.5. Change All Future Instances
5666
5667 This example changes the meeting location from a conference call to
5668 Seattle, starting September 1 and extending to all future instances.
5669
5670 BEGIN:VCALENDAR
5671 METHOD:REQUEST
5672 PRODID:-//Example/ExampleCalendarClient//EN
5673 VERSION:2.0
5674 BEGIN:VEVENT
5675 UID:guid-1@example.com
5676 RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
5677 SEQUENCE:3
5678 ORGANIZER:mailto:a@example.com
5679 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5680 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5681 ATTENDEE;RSVP=TRUE:mailto:c@example.com
5682 ATTENDEE;RSVP=TRUE:mailto:d@example.com
5683 DESCRIPTION:IETF-C&S Discussion
5684 CLASS:PUBLIC
5685 SUMMARY:IETF Calendaring Working Group Meeting
5686 DTSTART:19970901T210000Z
5687 DTEND:19970901T220000Z
5688 LOCATION:Building 32, Microsoft, Seattle, WA
5689 DTSTAMP:19970526T083000Z
5690 STATUS:CONFIRMED
5691 END:VEVENT
5692 END:VCALENDAR
5693
56944.4.6. Add a New Instance to a Recurring Event
5695
5696 This example adds a one-time additional instance to the recurring
5697 event. "Organizer" adds a second July meeting on the 15th.
5698
5699 BEGIN:VCALENDAR
5700 METHOD:ADD
5701 PRODID:-//Example/ExampleCalendarClient//EN
5702 VERSION:2.0
5703 BEGIN:VEVENT
5704 UID:123456789@example.com
5705 SEQUENCE:4
5706 ORGANIZER:mailto:a@example.com
5707 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5708 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5709 ATTENDEE;RSVP=TRUE:mailto:c@example.com
5710 ATTENDEE;RSVP=TRUE:mailto:d@example.com
5711
5712
5713
5714Daboo Standards Track [Page 102]
5715
5716RFC 5546 iTIP December 2009
5717
5718
5719 DESCRIPTION:IETF-C&S Conference Call
5720 CLASS:PUBLIC
5721 SUMMARY:IETF Calendaring Working Group Meeting
5722 DTSTART:19970715T210000Z
5723 DTEND:19970715T220000Z
5724 LOCATION:Conference Call
5725 DTSTAMP:19970629T093000Z
5726 STATUS:CONFIRMED
5727 END:VEVENT
5728 END:VCALENDAR
5729
57304.4.7. Add a New Series of Instances to a Recurring Event
5731
5732 The scenario for this example involves an ongoing meeting, originally
5733 set up to occur every Tuesday. The "Organizer" later decides that
5734 the meetings need to be on Tuesdays and Thursdays.
5735
5736 The original event:
5737
5738 BEGIN:VCALENDAR
5739 METHOD:REQUEST
5740 PRODID:-//Example/ExampleCalendarClient//EN
5741 VERSION:2.0
5742 BEGIN:VEVENT
5743 UID:123456789@example.com
5744 SEQUENCE:0
5745 RRULE:WKST=SU;BYDAY=TU;FREQ=WEEKLY
5746 ORGANIZER:mailto:a@example.com
5747 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5748 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5749 SUMMARY:Review Accounts
5750 DTSTART:19980303T210000Z
5751 DTEND:19980303T220000Z
5752 LOCATION:The White Room
5753 DTSTAMP:19980301T093000Z
5754 STATUS:CONFIRMED
5755 END:VEVENT
5756 END:VCALENDAR
5757
5758 The entire event can be rescheduled using a "REQUEST". This is done
5759 by using the "UID" of the event to reschedule and including the
5760 modified "RRULE". Note that since this is an entire rescheduling of
5761 the event, any instance-specific information will be lost, unless
5762 explicitly included with the update "REQUEST".
5763
5764 BEGIN:VCALENDAR
5765 METHOD:REQUEST
5766 PRODID:-//Example/ExampleCalendarClient//EN
5767
5768
5769
5770Daboo Standards Track [Page 103]
5771
5772RFC 5546 iTIP December 2009
5773
5774
5775 VERSION:2.0
5776 BEGIN:VEVENT
5777 UID:123456789@example.com
5778 SEQUENCE:7
5779 RRULE:WKST=SU;BYDAY=TU,TH;FREQ=WEEKLY
5780 ORGANIZER:mailto:a@example.com
5781 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5782 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5783 SUMMARY:Review Accounts
5784 DTSTART:19980303T210000Z
5785 DTEND:19980303T220000Z
5786 DTSTAMP:19980303T193000Z
5787 LOCATION:The White Room
5788 STATUS:CONFIRMED
5789 END:VEVENT
5790 END:VCALENDAR
5791
57924.4.8. Refreshing a Recurring Event
5793
5794 The next series of examples illustrate how an "Organizer" would
5795 respond to a "REFRESH" submitted by an "Attendee" after a series of
5796 instance-specific modifications. To convey all instance-specific
5797 changes, the "Organizer" must provide the latest event description
5798 and the relevant instances. The first three examples show the
5799 history, including the initial "VEVENT" request and subsequent
5800 instance changes, and finally the "REFRESH".
5801
5802 Original Request:
5803
5804 BEGIN:VCALENDAR
5805 METHOD:REQUEST
5806 PRODID:-//Example/ExampleCalendarClient//EN
5807 VERSION:2.0
5808 BEGIN:VEVENT
5809 UID:123456789@example.com
5810 SEQUENCE:0
5811 RDATE:19980304T180000Z
5812 RDATE:19980311T180000Z
5813 RDATE:19980318T180000Z
5814 ORGANIZER:mailto:a@example.com
5815 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5816 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5817 SUMMARY:Review Accounts
5818 DTSTART:19980304T180000Z
5819 DTEND:19980304T200000Z
5820 DTSTAMP:19980303T193000Z
5821 LOCATION:Conference Room A
5822 STATUS:CONFIRMED
5823
5824
5825
5826Daboo Standards Track [Page 104]
5827
5828RFC 5546 iTIP December 2009
5829
5830
5831 END:VEVENT
5832 END:VCALENDAR
5833
5834 Organizer changes 2nd instance location and time:
5835
5836 BEGIN:VCALENDAR
5837 METHOD:REQUEST
5838 PRODID:-//Example/ExampleCalendarClient//EN
5839 VERSION:2.0
5840 BEGIN:VEVENT
5841 UID:123456789@example.com
5842 SEQUENCE:1
5843 RECURRENCE-ID:19980311T180000Z
5844 ORGANIZER:mailto:a@example.com
5845 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5846 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5847 SUMMARY:Review Accounts
5848 DTSTART:19980311T160000Z
5849 DTEND:19980311T180000Z
5850 DTSTAMP:19980306T193000Z
5851 LOCATION:The Small conference room
5852 STATUS:CONFIRMED
5853 END:VEVENT
5854 END:VCALENDAR
5855
5856 Organizer adds a 4th instance of the meeting using the "ADD" method.
5857
5858 BEGIN:VCALENDAR
5859 METHOD:ADD
5860 PRODID:-//Example/ExampleCalendarClient//EN
5861 VERSION:2.0
5862 BEGIN:VEVENT
5863 UID:123456789@example.com
5864 SEQUENCE:2
5865 ORGANIZER:mailto:a@example.com
5866 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5867 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5868 SUMMARY:Review Accounts
5869 DTSTART:19980315T180000Z
5870 DTEND:19980315T200000Z
5871 DTSTAMP:19980307T193000Z
5872 LOCATION:Conference Room A
5873 STATUS:CONFIRMED
5874 END:VEVENT
5875 END:VCALENDAR
5876
5877
5878
5879
5880
5881
5882Daboo Standards Track [Page 105]
5883
5884RFC 5546 iTIP December 2009
5885
5886
5887 If "B" requests a "REFRESH", "A" responds with the following to
5888 capture all instance-specific data. In this case, both the initial
5889 request and an additional "VEVENT" that specifies the instance-
5890 specific data are included. Because these are both of the same type
5891 (they are both "VEVENTS"), they can be conveyed in the same iCalendar
5892 object.
5893
5894 BEGIN:VCALENDAR
5895 METHOD:REQUEST
5896 PRODID:-//Example/ExampleCalendarClient//EN
5897 VERSION:2.0
5898 BEGIN:VEVENT
5899 UID:123456789@example.com
5900 SEQUENCE:2
5901 RDATE:19980304T180000Z
5902 RDATE:19980311T160000Z
5903 RDATE:19980315T180000Z
5904 ORGANIZER:mailto:a@example.com
5905 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5906 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5907 SUMMARY:Review Accounts
5908 DTSTART:19980304T180000Z
5909 DTEND:19980304T200000Z
5910 DTSTAMP:19980303T193000Z
5911 LOCATION:Conference Room A
5912 STATUS:CONFIRMED
5913 END:VEVENT
5914 BEGIN:VEVENT
5915 SEQUENCE:2
5916 UID:123456789@example.com
5917 RECURRENCE-ID:19980311T160000Z
5918 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
5919 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5920 SUMMARY:Review Accounts
5921 DTSTART:19980311T160000Z
5922 DTEND:19980304T180000Z
5923 DTSTAMP:19980306T193000Z
5924 LOCATION:The Small conference room
5925 STATUS:CONFIRMED
5926 END:VEVENT
5927 END:VCALENDAR
5928
59294.4.9. Counter an Instance of a Recurring Event
5930
5931 In this example, one of the "Attendees" counters the "DTSTART"
5932 property of the proposed second July meeting.
5933
5934
5935
5936
5937
5938Daboo Standards Track [Page 106]
5939
5940RFC 5546 iTIP December 2009
5941
5942
5943 BEGIN:VCALENDAR
5944 METHOD:COUNTER
5945 PRODID:-//Example/ExampleCalendarClient//EN
5946 VERSION:2.0
5947 BEGIN:VEVENT
5948 UID:guid-1@example.com
5949 RECURRENCE-ID:19970715T210000Z
5950 SEQUENCE:4
5951 ORGANIZER:mailto:a@example.com
5952 ATTENDEE;ROLE=CHAIR;RSVP=TRUE:mailto:a@example.com
5953 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5954 ATTENDEE;RSVP=TRUE:mailto:c@example.com
5955 ATTENDEE;RSVP=TRUE:mailto:d@example.com
5956 DESCRIPTION:IETF-C&S Conference Call
5957 CLASS:PUBLIC
5958 SUMMARY:IETF Calendaring Working Group Meeting
5959 DTSTART:19970715T220000Z
5960 DTEND:19970715T230000Z
5961 LOCATION:Conference Call
5962 COMMENT:May we bump this by an hour? I have a conflict
5963 DTSTAMP:19970629T094000Z
5964 END:VEVENT
5965 END:VCALENDAR
5966
59674.4.10. Error Reply to a Request
5968
5969 The following example illustrates a scenario where a meeting is
5970 proposed containing an unsupported property and a bad property.
5971
5972 Original Request:
5973
5974 BEGIN:VCALENDAR
5975 METHOD:REQUEST
5976 PRODID:-//Example/ExampleCalendarClient//EN
5977 VERSION:2.0
5978 BEGIN:VEVENT
5979 UID:guid-1@example.com
5980 SEQUENCE:0
5981 RRULE:FREQ=MONTHLY;BYMONTHDAY=1
5982 ORGANIZER:mailto:a@example.com
5983 ATTENDEE;ROLE=CHAIR:mailto:a@example.com
5984 ATTENDEE;RSVP=TRUE:mailto:b@example.com
5985 ATTENDEE;RSVP=TRUE:mailto:c@example.com
5986 ATTENDEE;RSVP=TRUE:mailto:d@example.com
5987 DESCRIPTION:IETF-C&S Conference Call
5988 CLASS:PUBLIC
5989 SUMMARY:IETF Calendaring Working Group Meeting
5990 DTSTART:19970601T210000Z
5991
5992
5993
5994Daboo Standards Track [Page 107]
5995
5996RFC 5546 iTIP December 2009
5997
5998
5999 DTEND:19970601T220000Z
6000 DTSTAMP:19970602T094000Z
6001 LOCATION:Conference Call
6002 STATUS:CONFIRMED
6003 FOO:BAR
6004 END:VEVENT
6005 END:VCALENDAR
6006
6007 "B" responds to indicate that "RRULE" is not supported and that an
6008 unrecognized property was encountered.
6009
6010 BEGIN:VCALENDAR
6011 PRODID:-//Example/ExampleCalendarClient//EN
6012 METHOD:REPLY
6013 VERSION:2.0
6014 BEGIN:VEVENT
6015 ORGANIZER:mailto:a@example.com
6016 ATTENDEE:mailto:b@example.com
6017 REQUEST-STATUS:3.0;Invalid Property Name;FOO
6018 UID:guid-1@example.com
6019 SEQUENCE:0
6020 DTSTAMP:19970603T094000Z
6021 END:VEVENT
6022 END:VCALENDAR
6023
60244.5. Group To-Do Examples
6025
6026 Individual "A" creates a group task in which individuals "A", "B",
6027 "C", and "D" will participate. Individual "B" confirms acceptance of
6028 the task. Individual "C" declines the task. Individual "D"
6029 tentatively accepts the task. The following table illustrates the
6030 sequence of messages that would be exchanged between these
6031 individuals. Individual "A" then issues a "REQUEST" method to obtain
6032 the status of the to-do from each participant. The response
6033 indicates the individual "Attendee's" completion status. The table
6034 below illustrates the message flow.
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050Daboo Standards Track [Page 108]
6051
6052RFC 5546 iTIP December 2009
6053
6054
6055 +--------------+------------------------+---------------------------+
6056 | Action | Organizer | Attendee |
6057 +--------------+------------------------+---------------------------+
6058 | Initiate a | "A" sends a REQUEST | |
6059 | to-do | message to "B", "C", | |
6060 | request | and "D". | |
6061 | | | |
6062 | Accept the | | "B" sends a REPLY message |
6063 | to-do | | to "A" with its PARTSTAT |
6064 | request | | parameter set to |
6065 | | | ACCEPTED. |
6066 | | | |
6067 | Decline the | | "C" sends a REPLY message |
6068 | to-do | | to "A" with its PARTSTAT |
6069 | request | | parameter set to |
6070 | | | DECLINED. |
6071 | | | |
6072 | Tentatively | | "D" sends a REPLY message |
6073 | accept the | | to "A" with its PARTSTAT |
6074 | to-do | | parameter set to |
6075 | request | | TENTATIVE. |
6076 | | | |
6077 | Check | "A" sends a REQUEST | |
6078 | Attendee | message to "B" and "D" | |
6079 | completion | with current | |
6080 | status | information. | |
6081 | | | |
6082 | Attendee | | "B" sends a REPLY message |
6083 | indicates | | indicating percent |
6084 | percent | | complete. |
6085 | complete | | |
6086 | | | |
6087 | Attendee | | "D" sends a REPLY message |
6088 | indicates | | indicating completion. |
6089 | completion | | |
6090 +--------------+------------------------+---------------------------+
6091
60924.5.1. A VTODO Request
6093
6094 A sample "REQUEST" for a "VTODO" calendar component that "A" sends to
6095 "B", "C", and "D".
6096
6097 BEGIN:VCALENDAR
6098 PRODID:-//Example/ExampleCalendarClient//EN
6099 METHOD:REQUEST
6100 VERSION:2.0
6101 BEGIN:VTODO
6102 ORGANIZER:mailto:a@example.com
6103
6104
6105
6106Daboo Standards Track [Page 109]
6107
6108RFC 5546 iTIP December 2009
6109
6110
6111 ATTENDEE;ROLE=CHAIR:mailto:a@example.com
6112 ATTENDEE;RSVP=TRUE:mailto:b@example.com
6113 ATTENDEE;RSVP=TRUE:mailto:c@example.com
6114 ATTENDEE;RSVP=TRUE:mailto:d@example.com
6115 DTSTART:19970701T170000Z
6116 DUE:19970722T170000Z
6117 PRIORITY:1
6118 SUMMARY:Create the requirements document
6119 UID:calsrv.example.com-873970198738777-00@example.com
6120 SEQUENCE:0
6121 DTSTAMP:19970717T200000Z
6122 STATUS:NEEDS-ACTION
6123 END:VTODO
6124 END:VCALENDAR
6125
61264.5.2. A VTODO Reply
6127
6128 "B" accepts the to-do.
6129
6130 BEGIN:VCALENDAR
6131 PRODID:-//Example/ExampleCalendarClient//EN
6132 METHOD:REPLY
6133 VERSION:2.0
6134 BEGIN:VTODO
6135 ORGANIZER:mailto:a@example.com
6136 ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
6137 UID:calsrv.example.com-873970198738777-00@example.com
6138 COMMENT:I'll send you my input by email
6139 SEQUENCE:0
6140 DTSTAMP:19970717T203000Z
6141 REQUEST-STATUS:2.0;Success
6142 END:VTODO
6143 END:VCALENDAR
6144
6145 "B" could have declined the "VTODO" or indicated tentative acceptance
6146 by setting the "PARTSTAT" property parameter sequence to "DECLINED"
6147 or "TENTATIVE", respectively.
6148
61494.5.3. A VTODO Request for Updated Status
6150
6151 "A" requests status from all "Attendees".
6152
6153 BEGIN:VCALENDAR
6154 PRODID:-//Example/ExampleCalendarClient//EN
6155 METHOD:REQUEST
6156 VERSION:2.0
6157 BEGIN:VTODO
6158 ORGANIZER:mailto:a@example.com
6159
6160
6161
6162Daboo Standards Track [Page 110]
6163
6164RFC 5546 iTIP December 2009
6165
6166
6167 ATTENDEE;ROLE=CHAIR:mailto:a@example.com
6168 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
6169 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
6170 UID:calsrv.example.com-873970198738777-00@example.com
6171 SUMMARY:Create the requirements document
6172 PRIORITY:1
6173 SEQUENCE:0
6174 STATUS:IN-PROCESS
6175 DTSTART:19970701T170000Z
6176 DTSTAMP:19970717T230000Z
6177 END:VTODO
6178 END:VCALENDAR
6179
61804.5.4. A Reply: Percent-Complete
6181
6182 A reply indicating the task being worked on and that "B" is 75%
6183 complete with "B's" part of the assignment.
6184
6185 BEGIN:VCALENDAR
6186 PRODID:-//Example/ExampleCalendarClient//EN
6187 METHOD:REPLY
6188 VERSION:2.0
6189 BEGIN:VTODO
6190 ORGANIZER:mailto:a@example.com
6191 ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
6192 PERCENT-COMPLETE:75
6193 UID:calsrv.example.com-873970198738777-00@example.com
6194 DTSTAMP:19970717T233000Z
6195 SEQUENCE:0
6196 END:VTODO
6197 END:VCALENDAR
6198
61994.5.5. A Reply: Completed
6200
6201 A reply indicating that "D" completed "D's" part of the assignment.
6202
6203 BEGIN:VCALENDAR
6204 PRODID:-//Example/ExampleCalendarClient//EN
6205 METHOD:REPLY
6206 VERSION:2.0
6207 BEGIN:VTODO
6208 ORGANIZER:mailto:a@example.com
6209 ATTENDEE;PARTSTAT=COMPLETED:mailto:d@example.com
6210 UID:calsrv.example.com-873970198738777-00@example.com
6211 DTSTAMP:19970717T233000Z
6212 SEQUENCE:0
6213 END:VTODO
6214 END:VCALENDAR
6215
6216
6217
6218Daboo Standards Track [Page 111]
6219
6220RFC 5546 iTIP December 2009
6221
6222
62234.5.6. An Updated VTODO Request
6224
6225 "Organizer" "A" resends the "VTODO" calendar component. "A" sets the
6226 overall completion for the to-do at 40%.
6227
6228 BEGIN:VCALENDAR
6229 PRODID:-//Example/ExampleCalendarClient//EN
6230 METHOD:REQUEST
6231 VERSION:2.0
6232 BEGIN:VTODO
6233 ORGANIZER:mailto:a@example.com
6234 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
6235 ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL:mailto:b@example.com
6236 ATTENDEE;PARTSTAT=COMPLETED;CUTYPE=INDIVIDUAL:mailto:d@example.com
6237 DTSTART:19970701T170000Z
6238 DUE:19970722T170000Z
6239 PRIORITY:1
6240 SUMMARY:Create the requirements document
6241 UID:calsrv.example.com-873970198738777-00@example.com
6242 SEQUENCE:1
6243 DTSTAMP:19970718T100000Z
6244 STATUS:IN-PROCESS
6245 PERCENT-COMPLETE:40
6246 END:VTODO
6247 END:VCALENDAR
6248
62494.5.7. Recurring VTODOs
6250
6251 The following examples relate to recurring "VTODO" calendar
6252 components.
6253
62544.5.7.1. Request for a Recurring VTODO
6255
6256 In this example, "A" sends a recurring "VTODO" calendar component to
6257 "B" and "D".
6258
6259 BEGIN:VCALENDAR
6260 PRODID:-//Example/ExampleCalendarClient//EN
6261 METHOD:REQUEST
6262 VERSION:2.0
6263 BEGIN:VTODO
6264 ORGANIZER:mailto:a@example.com
6265 ATTENDEE;ROLE=CHAIR:mailto:a@example.com
6266 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
6267 ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
6268 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
6269 DTSTART:19980101T100000Z
6270 DUE:19980103T100000Z
6271
6272
6273
6274Daboo Standards Track [Page 112]
6275
6276RFC 5546 iTIP December 2009
6277
6278
6279 SUMMARY:Send Status Reports to Area Managers
6280 UID:calsrv.example.com-873970198738777-00@example.com
6281 SEQUENCE:0
6282 DTSTAMP:19970717T200000Z
6283 STATUS:NEEDS-ACTION
6284 PRIORITY:1
6285 END:VTODO
6286 END:VCALENDAR
6287
62884.5.7.2. Replying to an Instance of a Recurring VTODO
6289
6290 In this example, "B" updates "A" on a single instance of the "VTODO"
6291 calendar component.
6292
6293 BEGIN:VCALENDAR
6294 PRODID:-//Example/ExampleCalendarClient//EN
6295 METHOD:REPLY
6296 VERSION:2.0
6297 BEGIN:VTODO
6298 ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
6299 PERCENT-COMPLETE:75
6300 UID:calsrv.example.com-873970198738777-00@example.com
6301 DTSTAMP:19970717T233000Z
6302 RECURRENCE-ID:19980101T170000Z
6303 SEQUENCE:1
6304 END:VTODO
6305 END:VCALENDAR
6306
63074.6. Journal Examples
6308
6309 The iCalendar object below describes a single journal entry for
6310 October 2, 1997. The "RELATED-TO" property references the phone
6311 conference event for which minutes were taken.
6312
6313 BEGIN:VCALENDAR
6314 METHOD:PUBLISH
6315 PRODID:-//Example/ExampleCalendarClient//EN
6316 VERSION:2.0
6317 BEGIN:VJOURNAL
6318 DTSTART:19971002T200000Z
6319 DTSTAMP:19970717T233100Z
6320 ORGANIZER:mailto:a@example.com
6321 SUMMARY:Phone conference minutes
6322 DESCRIPTION:The editors meeting was held on October 1, 1997.
6323 Details are in the attached document.
6324 UID:0981234-1234234-2410@example.com
6325 RELATED-TO:0981234-1234234-2402-35@example.com
6326 ATTACH:ftp://ftp.example.com/pub/ed/minutes100197.txt
6327
6328
6329
6330Daboo Standards Track [Page 113]
6331
6332RFC 5546 iTIP December 2009
6333
6334
6335 END:VJOURNAL
6336 END:VCALENDAR
6337
63384.7. Other Examples
6339
63404.7.1. Event Refresh
6341
6342 Refresh the event with a "UID" property value of
6343 "guid-1-12345@example.com":
6344
6345 BEGIN:VCALENDAR
6346 PRODID:-//Example/ExampleCalendarClient//EN
6347 METHOD:REFRESH
6348 VERSION:2.0
6349 BEGIN:VEVENT
6350 ORGANIZER:mailto:a@example.com
6351 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
6352 ATTENDEE:mailto:b@example.com
6353 ATTENDEE:mailto:c@example.com
6354 ATTENDEE:mailto:d@example.com
6355 UID:guid-1-12345@example.com
6356 DTSTAMP:19970603T094000
6357 END:VEVENT
6358 END:VCALENDAR
6359
63604.7.2. Bad RECURRENCE-ID
6361
6362 Component instances are identified by the combination of "UID",
6363 "RECURRENCE-ID", and "SEQUENCE". When an "Organizer" sends an iTIP
6364 message to an "Attendee", there are three cases in which an instance
6365 cannot be found. They are:
6366
6367 1. The component with the referenced "UID" and "RECURRENCE-ID" has
6368 been found but the "SEQUENCE" number in the calendar store does
6369 not match that of the iTIP message.
6370
6371 2. The component with the referenced "UID" has been found, the
6372 "SEQUENCE" numbers match, but the "RECURRENCE-ID" cannot be
6373 found.
6374
6375 3. The "UID" and "SEQUENCE" numbers are found but the CUA does not
6376 support recurrences.
6377
6378 In case (1), two things can happen. If the "SEQUENCE" number of the
6379 "Attendee's" instance is larger than that in the "Organizer's"
6380 message, then the "Attendee" is receiving an out-of-sequence message
6381 and MUST ignore it. If the "SEQUENCE" number of the "Attendee's"
6382 instance is smaller, then the "Organizer" is sending out a newer
6383
6384
6385
6386Daboo Standards Track [Page 114]
6387
6388RFC 5546 iTIP December 2009
6389
6390
6391 version of the component and the "Attendee's" version needs to be
6392 updated. Since one or more updates have been missed, the "Attendee"
6393 SHOULD send a "REFRESH" message to the "Organizer" to get an updated
6394 version of the event.
6395
6396 In case (2), something has gone wrong. Both the "Organizer" and the
6397 "Attendee" should have the same instances, but the "Attendee" does
6398 not have the referenced instance. In this case, the "Attendee"
6399 SHOULD send a "REFRESH" to the "Organizer" to get an updated version
6400 of the event.
6401
6402 In case (3), the limitations of the "Attendee's" CUA makes it
6403 impossible to match an instance other than the single instance
6404 scheduled. In this case, the "Attendee" need not send a "REFRESH" to
6405 the "Organizer".
6406
6407 The example below shows a sequence in which an "Attendee" sends a
6408 "REFRESH" to the "Organizer".
6409
6410 +-------------------------+--------------------+--------------------+
6411 | Action | Organizer | Attendee |
6412 +-------------------------+--------------------+--------------------+
6413 | Update an instance | "A" sends REQUEST | |
6414 | request | message to "B". | |
6415 | | | |
6416 | Attendee requests | | "B" sends a |
6417 | refresh because | | REFRESH message to |
6418 | RECURRENCE-ID was not | | "A". |
6419 | found | | |
6420 | | | |
6421 | Refresh the entire | "A" sends the | |
6422 | event | latest copy of the | |
6423 | | event to "B" | |
6424 | | | |
6425 | Attendee handles the | | "B" updates to the |
6426 | request and updates the | | latest copy of the |
6427 | instance | | meeting. |
6428 +-------------------------+--------------------+--------------------+
6429
6430 Request from "A":
6431
6432 BEGIN:VCALENDAR
6433 METHOD:REQUEST
6434 PRODID:-//Example/ExampleCalendarClient//EN
6435 VERSION:2.0
6436 BEGIN:VEVENT
6437 UID:example-12345@example.com
6438 SEQUENCE:3
6439
6440
6441
6442Daboo Standards Track [Page 115]
6443
6444RFC 5546 iTIP December 2009
6445
6446
6447 RRULE:FREQ=WEEKLY
6448 RDATE;VALUE=PERIOD:19970819T210000Z/199700819T220000Z
6449 ORGANIZER:mailto:a@example.com
6450 ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
6451 ATTENDEE:mailto:b@example.com
6452 DESCRIPTION:IETF-C&S Conference Call
6453 SUMMARY:IETF Calendaring Working Group Meeting
6454 DTSTART:19970801T210000Z
6455 DTEND:19970801T220000Z
6456 RECURRENCE-ID:19970809T210000Z
6457 DTSTAMP:19970726T083000
6458 STATUS:CONFIRMED
6459 END:VEVENT
6460 END:VCALENDAR
6461
6462 "B" has the event with "UID" property "example-12345@example.com",
6463 but "B's" "SEQUENCE" property value is "1" and the event does not
6464 have an instance at the specified recurrence time. This means that
6465 "B" has missed at least one update and needs a new copy of the event.
6466 "B" requests the latest copy of the event with the following refresh
6467 message:
6468
6469 BEGIN:VCALENDAR
6470 PRODID:-//Example/ExampleCalendarClient//EN
6471 METHOD:REFRESH
6472 VERSION:2.0
6473 BEGIN:VEVENT
6474 ORGANIZER:mailto:a@example.com
6475 ATTENDEE:mailto:b@example.com
6476 UID:example-12345@example.com
6477 DTSTAMP:19970603T094000
6478 END:VEVENT
6479 END:VCALENDAR
6480
64815. Application Protocol Fallbacks
6482
64835.1. Partial Implementation
6484
6485 Applications that support this specification are not required to
6486 support the entire protocol. The following describes how methods and
6487 properties SHOULD "fallback" in applications that do not support the
6488 complete protocol. If a method or property is not addressed in this
6489 section, it may be ignored.
6490
6491
6492
6493
6494
6495
6496
6497
6498Daboo Standards Track [Page 116]
6499
6500RFC 5546 iTIP December 2009
6501
6502
65035.1.1. Event-Related Fallbacks
6504
6505 +----------------+--------------------------------------------------+
6506 | Method | Fallback |
6507 +----------------+--------------------------------------------------+
6508 | PUBLISH | Required |
6509 | REQUEST | PUBLISH |
6510 | REPLY | Required |
6511 | ADD | Required if recurrences supported; otherwise, |
6512 | | reply with a REQUEST-STATUS "2.8; Success, |
6513 | | repeating event ignored. Scheduled as a single |
6514 | | component", and schedule as a single component. |
6515 | CANCEL | Required |
6516 | REFRESH | Required |
6517 | COUNTER | Reply with "Not Supported". |
6518 | DECLINECOUNTER | Required if COUNTER is implemented for VEVENTs; |
6519 | | otherwise, reply with "Not Supported". |
6520 +----------------+--------------------------------------------------+
6521
6522 +-----------------+-------------------------------------------------+
6523 | iCalendar | Fallback |
6524 | Property | |
6525 +-----------------+-------------------------------------------------+
6526 | CALSCALE | Ignore - assume GREGORIAN. |
6527 | PRODID | Ignore |
6528 | METHOD | Required as described in the Method list above. |
6529 | VERSION | Ignore |
6530 +-----------------+-------------------------------------------------+
6531
6532 +-----------------+-------------------------------------------------+
6533 | Event-Related | Fallback |
6534 | Components | |
6535 +-----------------+-------------------------------------------------+
6536 | VALARM | Reply with "Not Supported". |
6537 | VTIMEZONE | Required if any DateTime value refers to a time |
6538 | | zone. |
6539 +-----------------+-------------------------------------------------+
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554Daboo Standards Track [Page 117]
6555
6556RFC 5546 iTIP December 2009
6557
6558
6559 +-----------------+-------------------------------------------------+
6560 | Component | Fallback |
6561 | Property | |
6562 +-----------------+-------------------------------------------------+
6563 | ATTACH | Ignore |
6564 | ATTENDEE | Required if METHOD is REQUEST; otherwise, |
6565 | | ignore. |
6566 | CATEGORIES | Ignore |
6567 | CLASS | Ignore |
6568 | COMMENT | Ignore |
6569 | COMPLETED | Ignore |
6570 | CONTACT | Ignore |
6571 | CREATED | Ignore |
6572 | DESCRIPTION | Ignore |
6573 | DURATION | Required |
6574 | DTSTAMP | Required |
6575 | DTSTART | Required |
6576 | DTEND | Required |
6577 | EXDATE | Ignore |
6578 | GEO | Ignore |
6579 | LAST-MODIFIED | Ignore |
6580 | LOCATION | Required |
6581 | ORGANIZER | Required if METHOD is REQUEST; otherwise, |
6582 | | ignore. |
6583 | PRIORITY | Ignore |
6584 | RELATED-TO | Ignore |
6585 | RDATE | Ignore |
6586 | RRULE | Ignore - assume the first instance occurs on |
6587 | | the DTSTART property. If implemented, |
6588 | | VTIMEZONE MUST also be implemented. |
6589 | RECURRENCE-ID | Required if RRULE is implemented; otherwise, |
6590 | | ignore. |
6591 | REQUEST-STATUS | Required |
6592 | RESOURCES | Ignore |
6593 | SEQUENCE | Required |
6594 | STATUS | Ignore |
6595 | SUMMARY | Ignore |
6596 | TRANSP | Required if FREEBUSY is implemented; otherwise, |
6597 | | ignore. |
6598 | URL | Ignore |
6599 | UID | Required |
6600 | X- | Ignore |
6601 +-----------------+-------------------------------------------------+
6602
6603
6604
6605
6606
6607
6608
6609
6610Daboo Standards Track [Page 118]
6611
6612RFC 5546 iTIP December 2009
6613
6614
66155.1.2. Free/Busy-Related Fallbacks
6616
6617 +---------+---------------------------------------------------------+
6618 | Method | Fallback |
6619 +---------+---------------------------------------------------------+
6620 | PUBLISH | Required if freebusy lookups are supported; otherwise, |
6621 | | reply with a REQUEST-STATUS "3.14; Unsupported |
6622 | | capability". |
6623 | REQUEST | Required if freebusy lookups are supported; otherwise, |
6624 | | reply with a REQUEST-STATUS "3.14; Unsupported |
6625 | | capability". |
6626 | REPLY | Required if freebusy lookups are supported; otherwise, |
6627 | | reply with a REQUEST-STATUS "3.14; Unsupported |
6628 | | capability". |
6629 +---------+---------------------------------------------------------+
6630
6631 +-----------------+-------------------------------------------------+
6632 | iCalendar | Fallback |
6633 | Property | |
6634 +-----------------+-------------------------------------------------+
6635 | CALSCALE | Ignore - assume GREGORIAN. |
6636 | PRODID | Ignore |
6637 | METHOD | Required as described in the Method list above. |
6638 | VERSION | Ignore |
6639 +-----------------+-------------------------------------------------+
6640
6641 +-----------------+-------------------------------------------------+
6642 | Component | Fallback |
6643 | Property | |
6644 +-----------------+-------------------------------------------------+
6645 | ATTENDEE | Required if METHOD is REQUEST; otherwise, |
6646 | | ignore. |
6647 | COMMENT | Ignore |
6648 | CONTACT | Ignore |
6649 | DTEND | Required |
6650 | DTSTAMP | Required |
6651 | DTSTART | Required |
6652 | DURATION | Ignore |
6653 | FREEBUSY | Required |
6654 | ORGANIZER | Required if METHOD is REQUEST; otherwise, |
6655 | | ignore. |
6656 | REQUEST-STATUS | Ignore |
6657 | UID | Required |
6658 | URL | Ignore |
6659 | X- | Ignore |
6660 +-----------------+-------------------------------------------------+
6661
6662
6663
6664
6665
6666Daboo Standards Track [Page 119]
6667
6668RFC 5546 iTIP December 2009
6669
6670
66715.1.3. To-Do-Related Fallbacks
6672
6673 +----------------+--------------------------------------------------+
6674 | Method | Fallback |
6675 +----------------+--------------------------------------------------+
6676 | PUBLISH | Required |
6677 | REQUEST | PUBLISH |
6678 | REPLY | Required |
6679 | ADD | Required if recurrences supported; otherwise, |
6680 | | reply with a REQUEST-STATUS "2.8; Success, |
6681 | | repeating event ignored. Scheduled as a single |
6682 | | component", and schedule as a single component. |
6683 | CANCEL | Required |
6684 | REFRESH | Required |
6685 | COUNTER | Reply with "Not Supported". |
6686 | DECLINECOUNTER | Required if COUNTER for VTODOs is implemented; |
6687 | | otherwise, reply with "Not Supported". |
6688 +----------------+--------------------------------------------------+
6689
6690 +-----------------+-------------------------------------------------+
6691 | iCalendar | Fallback |
6692 | Property | |
6693 +-----------------+-------------------------------------------------+
6694 | CALSCALE | Ignore - assume GREGORIAN. |
6695 | PRODID | Ignore |
6696 | METHOD | Required as described in the Method list above. |
6697 | VERSION | Ignore |
6698 +-----------------+-------------------------------------------------+
6699
6700 +-----------------+-------------------------------------------------+
6701 | To-Do-Related | Fallback |
6702 | Components | |
6703 +-----------------+-------------------------------------------------+
6704 | VALARM | Reply with "Not Supported". |
6705 | VTIMEZONE | Required if any DateTime value refers to a time |
6706 | | zone. |
6707 +-----------------+-------------------------------------------------+
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722Daboo Standards Track [Page 120]
6723
6724RFC 5546 iTIP December 2009
6725
6726
6727 +------------------+------------------------------------------------+
6728 | Component | Fallback |
6729 | Property | |
6730 +------------------+------------------------------------------------+
6731 | ATTACH | Ignore |
6732 | ATTENDEE | Required if METHOD is REQUEST; otherwise, |
6733 | | ignore. |
6734 | CATEGORIES | Ignore |
6735 | CLASS | Ignore |
6736 | COMMENT | Ignore |
6737 | COMPLETED | Required |
6738 | CONTACT | Ignore |
6739 | CREATED | Ignore |
6740 | DESCRIPTION | Required if METHOD is REQUEST; otherwise, |
6741 | | ignore. |
6742 | DUE | Required |
6743 | DURATION | Required |
6744 | DTSTAMP | Required |
6745 | DTSTART | Required |
6746 | EXDATE | Ignore - reply with "Not Supported". |
6747 | LAST-MODIFIED | Ignore |
6748 | LOCATION | Ignore |
6749 | ORGANIZER | Required if METHOD is REQUEST; otherwise, |
6750 | | ignore. |
6751 | PERCENT-COMPLETE | Ignore |
6752 | PRIORITY | Required |
6753 | RECURRENCE-ID | Required if RRULE is implemented; otherwise, |
6754 | | ignore. |
6755 | RELATED-TO | Ignore |
6756 | REQUEST-STATUS | Ignore |
6757 | RDATE | Ignore |
6758 | RRULE | Ignore - assume the first instance occurs on |
6759 | | the DTSTART property. If implemented, |
6760 | | VTIMEZONE MUST also be implemented. |
6761 | RESOURCES | Ignore |
6762 | SEQUENCE | Required |
6763 | STATUS | Required |
6764 | SUMMARY | Ignore |
6765 | URL | Ignore |
6766 | UID | Required |
6767 | X- | Ignore |
6768 +------------------+------------------------------------------------+
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778Daboo Standards Track [Page 121]
6779
6780RFC 5546 iTIP December 2009
6781
6782
67835.1.4. Journal-Related Fallbacks
6784
6785 +---------+---------------------------------------------------------+
6786 | Method | Fallback |
6787 +---------+---------------------------------------------------------+
6788 | PUBLISH | Implementations MAY ignore the METHOD type. The |
6789 | | REQUEST-STATUS "3.14; Unsupported capability" MUST be |
6790 | | returned. |
6791 | ADD | Implementations MAY ignore the METHOD type. The |
6792 | | REQUEST-STATUS "3.14; Unsupported capability" MUST be |
6793 | | returned. |
6794 | CANCEL | Implementations MAY ignore the METHOD type. The |
6795 | | REQUEST-STATUS "3.14; Unsupported capability" MUST be |
6796 | | returned. |
6797 +---------+---------------------------------------------------------+
6798
6799 +-----------------+-------------------------------------------------+
6800 | iCalendar | Fallback |
6801 | Property | |
6802 +-----------------+-------------------------------------------------+
6803 | CALSCALE | Ignore - assume GREGORIAN. |
6804 | PRODID | Ignore |
6805 | METHOD | Required as described in the Method list above. |
6806 | VERSION | Ignore |
6807 +-----------------+-------------------------------------------------+
6808
6809 +-----------------+-------------------------------------------------+
6810 | Journal-Related | Fallback |
6811 | Components | |
6812 +-----------------+-------------------------------------------------+
6813 | VTIMEZONE | Required if any DateTime value refers to a time |
6814 | | zone. |
6815 +-----------------+-------------------------------------------------+
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834Daboo Standards Track [Page 122]
6835
6836RFC 5546 iTIP December 2009
6837
6838
6839 +-----------------+-------------------------------------------------+
6840 | Component | Fallback |
6841 | Property | |
6842 +-----------------+-------------------------------------------------+
6843 | ATTACH | Ignore |
6844 | ATTENDEE | Ignore |
6845 | CATEGORIES | Ignore |
6846 | CLASS | Ignore |
6847 | COMMENT | Ignore |
6848 | CONTACT | Ignore |
6849 | CREATED | Ignore |
6850 | DESCRIPTION | Ignore |
6851 | DTSTAMP | Required |
6852 | DTSTART | Required |
6853 | EXDATE | Ignore |
6854 | LAST-MODIFIED | Ignore |
6855 | ORGANIZER | Ignore |
6856 | RECURRENCE-ID | Required if RRULE is implemented; otherwise, |
6857 | | ignore. |
6858 | RELATED-TO | Ignore |
6859 | RDATE | Ignore |
6860 | RRULE | Ignore - assume the first instance occurs on |
6861 | | the DTSTART property. If implemented, |
6862 | | VTIMEZONE MUST also be implemented. |
6863 | SEQUENCE | Required |
6864 | STATUS | Ignore |
6865 | SUMMARY | Required |
6866 | URL | Ignore |
6867 | UID | Required |
6868 | X- | Ignore |
6869 +-----------------+-------------------------------------------------+
6870
68715.2. Latency Issues
6872
6873 With a store-and-forward transport, it is possible for events to
6874 arrive out of sequence. That is, a "CANCEL" method may be received
6875 prior to receiving the associated "REQUEST" for the calendar
6876 component. This section discusses a few of these scenarios.
6877
68785.2.1. Cancellation of an Unknown Calendar Component
6879
6880 When a "CANCEL" method is received before the original "REQUEST"
6881 method, the calendar will be unable to correlate the "UID" property
6882 of the cancellation with an existing calendar component. It is
6883 suggested that messages that cannot be correlated and that also
6884 contain non-zero sequence numbers be held and not discarded.
6885 Implementations MAY age them out if no other messages arrive with the
6886 same "UID" property value and a lower sequence number.
6887
6888
6889
6890Daboo Standards Track [Page 123]
6891
6892RFC 5546 iTIP December 2009
6893
6894
68955.2.2. Unexpected Reply from an Unknown Delegate
6896
6897 When an "Attendee" delegates an item to another CU, they MUST send a
6898 "REPLY" method to the "Organizer" using the "ATTENDEE" properties to
6899 indicate that the request was delegated and to whom. Hence, it is
6900 possible for an "Organizer" to receive a "REPLY" from a CU not listed
6901 as one of the original "Attendees". The resolution is left to the
6902 implementation, but it is expected that the calendaring software will
6903 either accept the reply or hold it until the related "REPLY" method
6904 is received from the "Delegator". If the version of the "REPLY"
6905 method is out of date, the "Organizer" SHOULD treat the message as a
6906 "REFRESH" message and update the "Delegate" with the correct version,
6907 provided that delegation to that delegate is acceptable.
6908
69095.3. Sequence Number
6910
6911 Under some conditions, a CUA may receive requests and replies with
6912 the same "SEQUENCE" property value. The "DTSTAMP" property is
6913 utilized as a tie-breaker when two items with the same "SEQUENCE"
6914 property value are evaluated.
6915
69166. Security Considerations
6917
6918 iTIP is an abstract transport protocol that will be bound to a real-
6919 time transport, a store-and-forward transport, and perhaps other
6920 transports. The transport protocol will be responsible for providing
6921 facilities for authentication and encryption using standard Internet
6922 mechanisms that are mutually understood between the sender and
6923 receiver.
6924
69256.1. Security Threats
6926
69276.1.1. Spoofing the Organizer
6928
6929 In iTIP, the "Organizer" (or someone working on the "Organizer's"
6930 behalf) is the only person authorized to make changes to an existing
6931 "VEVENT", "VTODO", or "VJOURNAL" calendar component and republish it
6932 or redistribute updates to the "Attendees". An iCalendar object that
6933 maliciously changes or cancels an existing "VEVENT", "VTODO", or
6934 "VJOURNAL" calendar component may be constructed by someone other
6935 than the "Organizer" and republished or sent to the "Attendees".
6936
69376.1.2. Spoofing the Attendee
6938
6939 In iTIP, an "Attendee" of a "VEVENT" or "VTODO" calendar component
6940 (or someone working on the "Attendee's" behalf) is the only person
6941 authorized to update any parameter associated with their "ATTENDEE"
6942
6943
6944
6945
6946Daboo Standards Track [Page 124]
6947
6948RFC 5546 iTIP December 2009
6949
6950
6951 property and send it to the "Organizer". An iCalendar object that
6952 maliciously changes the "ATTENDEE" parameters may be constructed by
6953 someone other than the real "Attendee" and sent to the "Organizer".
6954
69556.1.3. Unauthorized Replacement of the Organizer
6956
6957 There will be circumstances when "Attendees" of an event or to-do
6958 decide, using out-of-band mechanisms, that the "Organizer" must be
6959 replaced. When the new "Organizer" sends out the updated "VEVENT" or
6960 "VTODO", the "Attendee's" CUA will detect that the "Organizer" has
6961 been changed, but it has no way of knowing whether or not the change
6962 was mutually agreed upon.
6963
69646.1.4. Eavesdropping and Data Integrity
6965
6966 The iCalendar object is constructed with human-readable clear text.
6967 Any information contained in an iCalendar object may be read and/or
6968 changed by unauthorized persons while the object is in transit.
6969
69706.1.5. Flooding a Calendar
6971
6972 Implementations could provide a means to automatically incorporate
6973 "REQUEST" methods into a calendar. This presents the opportunity for
6974 a calendar to be flooded with requests, which effectively blocks all
6975 the calendar's free time.
6976
69776.1.6. Unauthorized REFRESH Requests
6978
6979 It is possible for an "Organizer" to receive a "REFRESH" request from
6980 someone who is not an "Attendee" of an event or to-do. Only
6981 "Attendees" of an event or to-do are authorized to receive replies to
6982 "REFRESH" requests. Replying to such requests to anyone who is not
6983 an "Attendee" may be a security problem.
6984
69856.2. Recommendations
6986
6987 For an application where the information is sensitive or critical and
6988 the network is subject to a high probability of attack, iTIP
6989 transactions SHOULD be encrypted and authenticated. This helps
6990 mitigate the threats of spoofing, eavesdropping, and malicious
6991 changes in transit.
6992
69936.2.1. Securing iTIP transactions
6994
6995 iTIP transport bindings MUST provide a mechanism to enable
6996 authentication of the sender's identity as well as privacy and
6997 integrity of the data being transmitted. This allows the receiver of
6998 a signed iCalendar object to verify the identity of the sender. This
6999
7000
7001
7002Daboo Standards Track [Page 125]
7003
7004RFC 5546 iTIP December 2009
7005
7006
7007 sender may then be correlated to an "ATTENDEE" property in the
7008 iCalendar object. If the correlation is made and the sender is
7009 authorized to make the requested change or update, then the operation
7010 may proceed. It also allows the message to be encrypted to prevent
7011 unauthorized reading of the message contents in transit. iTIP
7012 transport binding documents describe this process in detail.
7013
70146.2.2. Implementation Controls
7015
7016 The threat of unauthorized replacement of the "Organizer" SHOULD be
7017 mitigated by a calendar system that uses this protocol by providing
7018 controls or alerts that make "Calendar Users" aware of such
7019 "Organizer" changes and allowing them to decide whether or not the
7020 request should be honored.
7021
7022 The threat of flooding a calendar SHOULD be mitigated by a calendar
7023 system that uses this protocol by providing controls that may be used
7024 to limit the acceptable sources for iTIP transactions, and perhaps
7025 the size of messages and volume of traffic, by source.
7026
7027 The threat of unauthorized "REFRESH" requests SHOULD be mitigated by
7028 a calendar system that uses this protocol by providing controls or
7029 alerts that allow "Calendar Users" to decide whether or not the
7030 request should be honored. An implementation MAY decide to maintain,
7031 for audit or historical purposes, "Calendar Users" who were part of
7032 an "Attendee" list and who were subsequently uninvited. Similar
7033 controls or alerts should be provided when a "REFRESH" request is
7034 received from these "Calendar Users" as well.
7035
70366.2.3. Access Controls and Filtering
7037
7038 In many environments, there could be restrictions on who is allowed
7039 to schedule with whom and who the allowed delegates are for
7040 particular "Calendar Users".
7041
7042 iTIP transport bindings SHOULD provide mechanisms for implementing
7043 access controls or filtering to ensure iTIP transactions only take
7044 place between authorized "Calendar Users". That would include
7045 preventing one "Calendar User" from scheduling with another or one
7046 "Calendar User" delegating to another.
7047
70486.3. Privacy Issues
7049
7050 The "Organizer" might want to keep "Attendees" from knowing which
7051 other "Attendees" are participating in an event or to-do. The
7052 "Organizer" has the choice of sending single iTIP messages with a
7053 full list of "Attendees" or sending iTIP messages to each "Attendee"
7054 with only that "Attendee" listed.
7055
7056
7057
7058Daboo Standards Track [Page 126]
7059
7060RFC 5546 iTIP December 2009
7061
7062
70637. IANA Considerations
7064
70657.1. Registration Template for REQUEST-STATUS Values
7066
7067 This specification updates [RFC5545] by adding a "REQUEST-STATUS"
7068 value registry to the iCalendar Elements registry.
7069
7070 A "REQUEST-STATUS" value is defined by completing the following
7071 template.
7072
7073 Status Code: Hierarchical, numeric return status code, following
7074 the rules defined in Section 3.8.8.3 of [RFC5545].
7075
7076 Status Description: Textual status description. A short but
7077 clear description of the error.
7078
7079 Status Exception Data: Textual exception data. A short but clear
7080 description of what might appear in this field.
7081
7082 Description: Describe the underlying cause for this status code
7083 value.
7084
70857.2. Additions to iCalendar METHOD Registry
7086
7087 This document defines the following values for the iCalendar "METHOD"
7088 property, using the values template from Section 8.2.6 of [RFC5545].
7089 These should be added to the Methods Registry defined in Section
7090 8.3.12 of [RFC5545]:
7091
70927.2.1. METHOD:PUBLISH
7093
7094 Value: PUBLISH
7095
7096 Purpose: Standard iTIP "METHOD" value.
7097
7098 Conformance: Only used with the "METHOD" property.
7099
7100 Examples: See this RFC.
7101
71027.2.2. METHOD:REQUEST
7103
7104 Value: REQUEST
7105
7106 Purpose: Standard iTIP "METHOD" value.
7107
7108 Conformance: Only used with the "METHOD" property.
7109
7110 Examples: See this RFC.
7111
7112
7113
7114Daboo Standards Track [Page 127]
7115
7116RFC 5546 iTIP December 2009
7117
7118
71197.2.3. METHOD:REPLY
7120
7121 Value: REPLY
7122
7123 Purpose: Standard iTIP "METHOD" value.
7124
7125 Conformance: Only used with the "METHOD" property.
7126
7127 Examples: See this RFC.
7128
71297.2.4. METHOD:ADD
7130
7131 Value: ADD
7132
7133 Purpose: Standard iTIP "METHOD" value.
7134
7135 Conformance: Only used with the "METHOD" property.
7136
7137 Examples: See this RFC.
7138
71397.2.5. METHOD:CANCEL
7140
7141 Value: CANCEL
7142
7143 Purpose: Standard iTIP "METHOD" value.
7144
7145 Conformance: Only used with the "METHOD" property.
7146
7147 Examples: See this RFC.
7148
71497.2.6. METHOD:REFRESH
7150
7151 Value: REFRESH
7152
7153 Purpose: Standard iTIP "METHOD" value.
7154
7155 Conformance: Only used with the "METHOD" property.
7156
7157 Examples: See this RFC.
7158
71597.2.7. METHOD:COUNTER
7160
7161 Value: COUNTER
7162
7163 Purpose: Standard iTIP "METHOD" value.
7164
7165 Conformance: Only used with the "METHOD" property.
7166
7167
7168
7169
7170Daboo Standards Track [Page 128]
7171
7172RFC 5546 iTIP December 2009
7173
7174
7175 Examples: See this RFC.
7176
71777.2.8. METHOD:DECLINECOUNTER
7178
7179 Value: DECLINECOUNTER
7180
7181 Purpose: Standard iTIP "METHOD" value.
7182
7183 Conformance: Only used with the "METHOD" property.
7184
7185 Examples: See this RFC.
7186
71877.3. REQUEST-STATUS Value Registry
7188
7189 New "REQUEST-STATUS" values can be registered using the process
7190 described in Section 8.2.1 of [RFC5545].
7191
7192 The following table is to be used to initialize the "REQUEST-STATUS"
7193 value registry.
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226Daboo Standards Track [Page 129]
7227
7228RFC 5546 iTIP December 2009
7229
7230
7231 +-------------+---------+--------------------------+
7232 | Status Code | Status | Reference |
7233 +-------------+---------+--------------------------+
7234 | 2.0 | Current | RFC 5546, Section 3.6.1 |
7235 | 2.1 | Current | RFC 5546, Section 3.6.2 |
7236 | 2.2 | Current | RFC 5546, Section 3.6.3 |
7237 | 2.3 | Current | RFC 5546, Section 3.6.4 |
7238 | 2.4 | Current | RFC 5546, Section 3.6.5 |
7239 | 2.5 | Current | RFC 5546, Section 3.6.6 |
7240 | 2.6 | Current | RFC 5546, Section 3.6.7 |
7241 | 2.7 | Current | RFC 5546, Section 3.6.8 |
7242 | 2.8 | Current | RFC 5546, Section 3.6.9 |
7243 | 2.9 | Current | RFC 5546, Section 3.6.10 |
7244 | 2.10 | Current | RFC 5546, Section 3.6.11 |
7245 | 2.11 | Current | RFC 5546, Section 3.6.12 |
7246 | 3.0 | Current | RFC 5546, Section 3.6.13 |
7247 | 3.1 | Current | RFC 5546, Section 3.6.14 |
7248 | 3.2 | Current | RFC 5546, Section 3.6.15 |
7249 | 3.3 | Current | RFC 5546, Section 3.6.16 |
7250 | 3.4 | Current | RFC 5546, Section 3.6.17 |
7251 | 3.5 | Current | RFC 5546, Section 3.6.18 |
7252 | 3.6 | Current | RFC 5546, Section 3.6.19 |
7253 | 3.7 | Current | RFC 5546, Section 3.6.20 |
7254 | 3.8 | Current | RFC 5546, Section 3.6.21 |
7255 | 3.9 | Current | RFC 5546, Section 3.6.22 |
7256 | 3.10 | Current | RFC 5546, Section 3.6.23 |
7257 | 3.11 | Current | RFC 5546, Section 3.6.24 |
7258 | 3.12 | Current | RFC 5546, Section 3.6.25 |
7259 | 3.13 | Current | RFC 5546, Section 3.6.26 |
7260 | 3.14 | Current | RFC 5546, Section 3.6.27 |
7261 | 4.0 | Current | RFC 5546, Section 3.6.28 |
7262 | 5.0 | Current | RFC 5546, Section 3.6.29 |
7263 | 5.1 | Current | RFC 5546, Section 3.6.30 |
7264 | 5.2 | Current | RFC 5546, Section 3.6.31 |
7265 | 5.3 | Current | RFC 5546, Section 3.6.32 |
7266 +-------------+---------+--------------------------+
7267
72688. Acknowledgments
7269
7270 This is an update to the original iTIP document authored by S.
7271 Silverberg, S. Mansour, F. Dawson, and R. Hopson.
7272
7273 This revision is the product of the Calsify IETF Working Group, and
7274 several participants have made important contributions to this
7275 specification, including Oliver Block, Bernard Desruisseaux, Mike
7276 Douglass, Tim Hare, Ciny Joy, Bruce Kahn, Reinhold Kainhofer, Eliot
7277 Lear, Jonathan Lennox, Andy Mabbett, Aki Niemi, John W. Noerenberg
7278 II, Robert Ransdell, and Caleb Richardson.
7279
7280
7281
7282Daboo Standards Track [Page 130]
7283
7284RFC 5546 iTIP December 2009
7285
7286
72879. References
7288
72899.1. Normative References
7290
7291 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
7292 Requirement Levels", BCP 14, RFC 2119, March 1997.
7293
7294 [RFC2368] Hoffman, P., Masinter, L., and J. Zawinski, "The mailto
7295 URL scheme", RFC 2368, July 1998.
7296
7297 [RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling
7298 Core Object Specification (iCalendar)", RFC 5545,
7299 September 2009.
7300
73019.2. Informative References
7302
7303 [iMIP] Melnikov, A., Ed., "iCalendar Message-Based
7304 Interoperability Protocol (iMIP)", Work in Progress,
7305 October 2009.
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338Daboo Standards Track [Page 131]
7339
7340RFC 5546 iTIP December 2009
7341
7342
7343Appendix A. Differences from RFC 2446
7344
7345A.1. Changed Restrictions
7346
7347 This specification now defines an allowed combination of "REQUEST-
7348 STATUS" codes when multiple iCalendar components are included in an
7349 iTIP message.
7350
7351 This specification now restricts "RECURRENCE-ID" to only a single
7352 occurrence in any one iCalendar component in an iTIP message, as
7353 required by [RFC5545].
7354
7355 Changed the "RECURRENCE-ID" entry in the component restriction table
7356 to "0 or 1" from "0+", to fall in line with [RFC5545].
7357
7358 Changed the "FREEBUSY" entry in the "VFREEBUSY", "PUBLISH", and
7359 "REPLY" restriction tables to "0+" from "1+", to fall in line with
7360 [RFC5545].
7361
7362 Changed the "FREEBUSY" description in the "VFREEBUSY" and "REPLY"
7363 restriction tables to indicate that different "FBTYPE" ranges MUST
7364 NOT overlap.
7365
7366 Changed the "TZNAME" entry in the "VTIMEZONE" restriction table to
7367 "0+" from "0 or 1", to fall in line with [RFC5545].
7368
7369 Changed the "COMMENT" entry in the component restriction tables to
7370 "0+" from "0 or 1", to fall in line with [RFC5545].
7371
7372 Added the "ATTENDEE" entry in the "VALARM" restriction table to match
7373 the email alarm type in [RFC5545].
7374
7375 Changed the "CATEGORIES" entry in the component restriction tables to
7376 "0+" from "0 or 1", to fall in line with [RFC5545].
7377
7378 Changed the "RESOURCES" entry in the component restriction tables to
7379 "0+" from "0 or 1", to fall in line with [RFC5545].
7380
7381 Changed the "CONTACT" entry in the "VFREEBUSY" restriction table to
7382 "0 or 1" from "0+", to fall in line with [RFC5545].
7383
7384 Changed the "UID" entry in the "VFREEBUSY" and "PUBLISH" restriction
7385 tables to "1" from "0", to fall in line with [RFC5545].
7386
7387 Added the "COMPLETED" entry in the "VTODO" restriction tables to fall
7388 in line with [RFC5545].
7389
7390
7391
7392
7393
7394Daboo Standards Track [Page 132]
7395
7396RFC 5546 iTIP December 2009
7397
7398
7399 Added the "REQUEST-STATUS" entry in the "VJOURNAL" restriction tables
7400 to fall in line with [RFC5545].
7401
7402A.2. Deprecated Features
7403
7404 The "EXRULE" property was removed in [RFC5545] and references to that
7405 have been removed in this document too.
7406
7407 The "PROCEDURE" value for the "ACTION" property was removed in
7408 [RFC5545] and references to that have been removed in this document
7409 too.
7410
7411 The "THISANDPRIOR" option for the "RANGE" parameter was removed in
7412 [RFC5545] and references to that have been removed in this document
7413 too.
7414
7415Author's Address
7416
7417 Cyrus Daboo (editor)
7418 Apple Inc.
7419 1 Infinite Loop
7420 Cupertino, CA 95014
7421 USA
7422
7423 EMail: cyrus@daboo.name
7424 URI: http://www.apple.com/
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450Daboo Standards Track [Page 133]
7451
7452