1 | |
---|
2 | |
---|
3 | |
---|
4 | Calendar Server Extension C. Daboo |
---|
5 | E. York |
---|
6 | Apple Inc. |
---|
7 | October 6, 2010 |
---|
8 | |
---|
9 | |
---|
10 | Shared and Published Calendars in CalDAV |
---|
11 | |
---|
12 | Abstract |
---|
13 | |
---|
14 | This specification defines an extension to CalDAV that enables the |
---|
15 | sharing of calendars between users on a CalDAV server. |
---|
16 | |
---|
17 | |
---|
18 | Table of Contents |
---|
19 | |
---|
20 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 |
---|
21 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 |
---|
22 | 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 |
---|
23 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 5 |
---|
24 | 4.1. Additional Principal Properties . . . . . . . . . . . . . 5 |
---|
25 | 4.1.1. CS:notification-URL Property . . . . . . . . . . . . . 6 |
---|
26 | 4.2. Properties on Notification Resources . . . . . . . . . . . 6 |
---|
27 | 4.2.1. CS:notificationtype Property . . . . . . . . . . . . . 6 |
---|
28 | 5. Shared Calendaring . . . . . . . . . . . . . . . . . . . . . . 7 |
---|
29 | 5.1. Feature Discovery . . . . . . . . . . . . . . . . . . . . 7 |
---|
30 | 5.2. Additional Properties for Calendars . . . . . . . . . . . 7 |
---|
31 | 5.2.1. DAV:resourcetype Property . . . . . . . . . . . . . . 7 |
---|
32 | 5.2.2. CS:invite Property . . . . . . . . . . . . . . . . . . 8 |
---|
33 | 5.2.3. CS:allowed-sharing-modes Property . . . . . . . . . . 8 |
---|
34 | 5.2.4. CS:shared-url Property . . . . . . . . . . . . . . . . 9 |
---|
35 | 5.3. Sharer Actions on Shared Calendars . . . . . . . . . . . . 9 |
---|
36 | 5.3.1. Creating a Shared Calendar . . . . . . . . . . . . . . 9 |
---|
37 | 5.3.1.1. Example: Successful MKCALENDAR Request . . . . . . 10 |
---|
38 | 5.3.1.2. Example: Successful Extended MKCOL Request . . . . 10 |
---|
39 | 5.3.2. Sharing an Existing Calendar . . . . . . . . . . . . . 11 |
---|
40 | 5.3.2.1. Example: Successful PROPPATCH Request . . . . . . 11 |
---|
41 | 5.3.3. Manipulating Sharees of a Shared Calendar . . . . . . 12 |
---|
42 | 5.3.3.1. Example: Successful Sharee Add Request . . . . . . 13 |
---|
43 | 5.3.3.2. Example: Successful Multiple Sharee Change |
---|
44 | Request . . . . . . . . . . . . . . . . . . . . . 14 |
---|
45 | 5.4. Sharee Actions on Shared Calendars . . . . . . . . . . . . 15 |
---|
46 | 5.4.1. Replying to a Sharing Invite . . . . . . . . . . . . . 15 |
---|
47 | 5.4.2. Removing a Shared Calendar . . . . . . . . . . . . . . 16 |
---|
48 | 5.5. General Considerations . . . . . . . . . . . . . . . . . . 16 |
---|
49 | 5.5.1. Access Levels . . . . . . . . . . . . . . . . . . . . 16 |
---|
50 | 5.5.2. Allowing or Disallowing Sharing . . . . . . . . . . . 16 |
---|
51 | 5.5.3. Per-user WebDAV Properties . . . . . . . . . . . . . . 17 |
---|
52 | |
---|
53 | |
---|
54 | |
---|
55 | Daboo & York [Page 1] |
---|
56 | |
---|
57 | CalDAV Sharing and Publishing October 2010 |
---|
58 | |
---|
59 | |
---|
60 | 5.5.4. Per-user Calendar Data . . . . . . . . . . . . . . . . 17 |
---|
61 | 5.5.5. Scheduling . . . . . . . . . . . . . . . . . . . . . . 18 |
---|
62 | 6. XML Element Definitions . . . . . . . . . . . . . . . . . . . 19 |
---|
63 | 6.1. CS:shared-owner . . . . . . . . . . . . . . . . . . . . . 19 |
---|
64 | 6.2. CS:shared . . . . . . . . . . . . . . . . . . . . . . . . 20 |
---|
65 | 6.3. CS:can-be-shared . . . . . . . . . . . . . . . . . . . . . 20 |
---|
66 | 6.4. CS:can-be-published . . . . . . . . . . . . . . . . . . . 21 |
---|
67 | 6.5. CS:user . . . . . . . . . . . . . . . . . . . . . . . . . 21 |
---|
68 | 6.6. CS:invite-noresponse . . . . . . . . . . . . . . . . . . . 21 |
---|
69 | 6.7. CS:invite-deleted . . . . . . . . . . . . . . . . . . . . 22 |
---|
70 | 6.8. CS:invite-accepted . . . . . . . . . . . . . . . . . . . . 22 |
---|
71 | 6.9. CS:invite-declined . . . . . . . . . . . . . . . . . . . . 22 |
---|
72 | 6.10. CS:invite-invalid . . . . . . . . . . . . . . . . . . . . 23 |
---|
73 | 6.11. CS:access . . . . . . . . . . . . . . . . . . . . . . . . 23 |
---|
74 | 6.12. CS:read . . . . . . . . . . . . . . . . . . . . . . . . . 24 |
---|
75 | 6.13. CS:read-write . . . . . . . . . . . . . . . . . . . . . . 24 |
---|
76 | 6.14. CS:summary . . . . . . . . . . . . . . . . . . . . . . . . 24 |
---|
77 | 6.15. CS:invite-notification . . . . . . . . . . . . . . . . . . 25 |
---|
78 | 6.16. CS:uid . . . . . . . . . . . . . . . . . . . . . . . . . . 25 |
---|
79 | 6.17. CS:hosturl . . . . . . . . . . . . . . . . . . . . . . . . 25 |
---|
80 | 6.18. CS:organizer . . . . . . . . . . . . . . . . . . . . . . . 26 |
---|
81 | 6.19. CS:common-name . . . . . . . . . . . . . . . . . . . . . . 26 |
---|
82 | 6.20. CS:invite-reply . . . . . . . . . . . . . . . . . . . . . 26 |
---|
83 | 6.21. CS:in-reply-to . . . . . . . . . . . . . . . . . . . . . . 27 |
---|
84 | 6.22. CS:notification . . . . . . . . . . . . . . . . . . . . . 27 |
---|
85 | 6.23. CS:dtstamp . . . . . . . . . . . . . . . . . . . . . . . . 28 |
---|
86 | 6.24. CS:share . . . . . . . . . . . . . . . . . . . . . . . . . 28 |
---|
87 | 6.25. CS:set . . . . . . . . . . . . . . . . . . . . . . . . . . 28 |
---|
88 | 6.26. CS:remove . . . . . . . . . . . . . . . . . . . . . . . . 29 |
---|
89 | 6.27. CS:shared-as . . . . . . . . . . . . . . . . . . . . . . . 29 |
---|
90 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 29 |
---|
91 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 |
---|
92 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 30 |
---|
93 | 10. Normative References . . . . . . . . . . . . . . . . . . . . . 30 |
---|
94 | Appendix A. Change History . . . . . . . . . . . . . . . . . . . 30 |
---|
95 | Appendix B. Change History . . . . . . . . . . . . . . . . . . . 30 |
---|
96 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31 |
---|
97 | |
---|
98 | |
---|
99 | |
---|
100 | |
---|
101 | |
---|
102 | |
---|
103 | |
---|
104 | |
---|
105 | |
---|
106 | |
---|
107 | |
---|
108 | |
---|
109 | |
---|
110 | |
---|
111 | Daboo & York [Page 2] |
---|
112 | |
---|
113 | CalDAV Sharing and Publishing October 2010 |
---|
114 | |
---|
115 | |
---|
116 | 1. Introduction |
---|
117 | |
---|
118 | CalDAV [RFC4791] provides a way for calendar users to store calendar |
---|
119 | data and exchange this data via scheduling operations. Based on the |
---|
120 | WebDAV [RFC4918] protocol, it also includes the ability to manage |
---|
121 | access to calendar data via the WebDAV ACL [RFC3744] extension. |
---|
122 | |
---|
123 | WebDAV ACL [RFC3744] provides a way to manage fine-grained access |
---|
124 | controls on WebDAV resources. Whilst this could be used directly to |
---|
125 | manage sharing of calendars, experience has shown that client |
---|
126 | developers are averse to using it due to its complexity. Instead a |
---|
127 | simpler process for sharing calendars is preferred. |
---|
128 | |
---|
129 | This extension defines a way for individual calendar users to share |
---|
130 | calendars with other users. This is done via an "opt-in" process in |
---|
131 | which a sharing invite is sent from the sharer to a sharee, allowing |
---|
132 | the sharee to accept or decline. If the sharee accepts the sharing |
---|
133 | invite, the shared calendar is made available to them in their own |
---|
134 | calendar home collection (i.e., alongside their own personal |
---|
135 | calendars). HTTP POST operations are used to manage the sharing |
---|
136 | invitations and replies, and WebDAV properties are used to expose the |
---|
137 | state of shared calendars. |
---|
138 | |
---|
139 | |
---|
140 | 2. Conventions Used in This Document |
---|
141 | |
---|
142 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", |
---|
143 | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this |
---|
144 | document are to be interpreted as described in [RFC2119]. |
---|
145 | |
---|
146 | When XML element types in the namespaces "DAV:" and |
---|
147 | "urn:ietf:params:xml:ns:caldav" are referenced in this document |
---|
148 | outside of the context of an XML fragment, the string "DAV:" and |
---|
149 | "CALDAV:" will be prefixed to the element type names respectively. |
---|
150 | |
---|
151 | The namespace "http://calendarserver.org/ns/" is used for XML |
---|
152 | elements defined in this specification. When XML element types in |
---|
153 | that namespace are referenced in this document outside of the context |
---|
154 | of an XML fragment, the string "CS:" will be prefixed to the element |
---|
155 | type names. |
---|
156 | |
---|
157 | Terms Used: |
---|
158 | |
---|
159 | Sharer A calendar user who is sharing a calendar with other calendar |
---|
160 | users. |
---|
161 | |
---|
162 | |
---|
163 | |
---|
164 | |
---|
165 | |
---|
166 | |
---|
167 | Daboo & York [Page 3] |
---|
168 | |
---|
169 | CalDAV Sharing and Publishing October 2010 |
---|
170 | |
---|
171 | |
---|
172 | Sharee A calendar user to whom a calendar has been shared. |
---|
173 | |
---|
174 | Sharing Invite A message sent by a sharer to a sharee to indicate |
---|
175 | the status of a shared calendar. |
---|
176 | |
---|
177 | Sharing Reply A message sent by a sharee to a sharer to indicate the |
---|
178 | status of a shared calendar. |
---|
179 | |
---|
180 | |
---|
181 | 3. Overview |
---|
182 | |
---|
183 | This section provides a basic overview of this protocol by way of a |
---|
184 | simple use case of a sharer sharing a calendar with a single sharee. |
---|
185 | |
---|
186 | To share a calendar with another user, the sharer's client executes |
---|
187 | an HTTP POST request against the calendar collection resource for the |
---|
188 | calendar to be shared. The POST request body will contain details of |
---|
189 | the calendar user to whom the calendar is to be shared as well as the |
---|
190 | access right to be granted to them. If the request succeeds, a |
---|
191 | notification is sent to the sharee with details of the calendar being |
---|
192 | shared to them. |
---|
193 | |
---|
194 | The sharer's client will show the notification to the sharee and |
---|
195 | present them with the choice to accept or decline the invitation to |
---|
196 | the shared calendar. If the sharee chooses to decline, then nothing |
---|
197 | changes for that sharee. If the sharee chooses to accept, then the |
---|
198 | server automatically creates a new calendar collection resource in |
---|
199 | the sharee's calendar home collection, and ensures that calendar |
---|
200 | provides a mapping to the actual shared calendar of the sharer. Thus |
---|
201 | the shared calendar is available to the sharee as just another |
---|
202 | calendar in their calendar home. The server enforces the appropriare |
---|
203 | access privileges for the sharee. |
---|
204 | |
---|
205 | At any time, the sharer can inspect properties on the calendar |
---|
206 | collection being shared, and determine the accept/decline status of |
---|
207 | each sharee. Additional sharees can be added and existing ones |
---|
208 | removed. The access privileges for existing sharees can also be |
---|
209 | changed. |
---|
210 | |
---|
211 | Once a sharee has a shared calendar set to appear in their calendar |
---|
212 | home collection, they can remove it and decline the sharing invite by |
---|
213 | simply having their client issue an HTTP DELETE request on the shared |
---|
214 | calendar collection. That does not delete any calendar data, but |
---|
215 | rather simply removes the "link" to the sharer's calendar collection |
---|
216 | and sets the sharee's inviate status to declined. |
---|
217 | |
---|
218 | |
---|
219 | |
---|
220 | |
---|
221 | |
---|
222 | |
---|
223 | Daboo & York [Page 4] |
---|
224 | |
---|
225 | CalDAV Sharing and Publishing October 2010 |
---|
226 | |
---|
227 | |
---|
228 | 4. Notifications |
---|
229 | |
---|
230 | In order to facilitate the process of sharing invitations, this |
---|
231 | specification defines a new generic notification mechanism for CalDAV |
---|
232 | servers. When this feature is available, a CS:notification-URL |
---|
233 | (Section 4.1.1) property appears on principal resources for those |
---|
234 | principals who are able to receive notifications. That property |
---|
235 | specifies a single DAV:href element whose content refers to a WebDAV |
---|
236 | collection resource. Notification "messages" are deposited into this |
---|
237 | collection and can be retrieved by clients and acted on accordingly. |
---|
238 | |
---|
239 | The notification collection referenced by the CS:notification-URL |
---|
240 | (Section 4.1.1) property MUST have a DAV:resourcetype property with |
---|
241 | DAV:collection and CS:notification (Section 6.22) child elements. |
---|
242 | |
---|
243 | Notification "messages" are XML documents stored as resources in the |
---|
244 | notification collection. Each XML document contains a CS: |
---|
245 | notification (Section 6.22) element as its root. The root element |
---|
246 | contains a CS:dtstamp (Section 6.23) element, and one additional |
---|
247 | element which represents the type of notification being conveyed in |
---|
248 | the message. That child element will typically contain additional |
---|
249 | content that describes the notification. |
---|
250 | |
---|
251 | Each notification resource has a CS:notificationtype (Section 4.2.1) |
---|
252 | property which contains as its single child element an empty element |
---|
253 | that matches the child element of the notification resource XML |
---|
254 | document root. Any attributes on the child element in the XML |
---|
255 | document are also present in the property child element. |
---|
256 | |
---|
257 | Notifications are automatically generated by the server (perhaps in |
---|
258 | response to a client action) with an appropriate resource stored in |
---|
259 | the notifications collection of the user to whom the notification is |
---|
260 | targeted. Clients SHOULD monitor the notification collection looking |
---|
261 | for new notification resources. When doing so, clients SHOULD look |
---|
262 | at the CS:notificationtype (Section 4.2.1) property to ensure that |
---|
263 | the notification is of a type that the client can handle. Once a |
---|
264 | client has handled the notification in whatever way is appropriate it |
---|
265 | SHOULD delete the notification resource. Servers MAY delete |
---|
266 | notification resources on their own if they determine that the |
---|
267 | notifications are no longer relevant or valid. Servers MAY coalesce |
---|
268 | notifications as appropriate. |
---|
269 | |
---|
270 | 4.1. Additional Principal Properties |
---|
271 | |
---|
272 | This section defines new properties for WebDAV principal resources as |
---|
273 | defined in RFC3744 [RFC3744]. These properties are likely to be |
---|
274 | protected but the server MAY allow them to be written by appropriate |
---|
275 | users. |
---|
276 | |
---|
277 | |
---|
278 | |
---|
279 | Daboo & York [Page 5] |
---|
280 | |
---|
281 | CalDAV Sharing and Publishing October 2010 |
---|
282 | |
---|
283 | |
---|
284 | 4.1.1. CS:notification-URL Property |
---|
285 | |
---|
286 | Name: notification-URL |
---|
287 | |
---|
288 | Namespace: http://calendarserver.org/ns/ |
---|
289 | |
---|
290 | Purpose: Identify the URL of the notification collection owned by |
---|
291 | the associated principal resource. |
---|
292 | |
---|
293 | Protected: This property SHOULD be protected. |
---|
294 | |
---|
295 | PROPFIND behavior: This property SHOULD NOT be returned by a |
---|
296 | PROPFIND allprop request (as defined in Section 14.2 of |
---|
297 | [RFC4918]). |
---|
298 | |
---|
299 | COPY/MOVE behavior: This property value SHOULD be preserved in COPY |
---|
300 | and MOVE operations. |
---|
301 | |
---|
302 | Description: This property is needed for a client to determine where |
---|
303 | the notification collection of the current user is located so that |
---|
304 | processing of notification messages can occur. If not present, |
---|
305 | then the associated calendar user is not enabled for notification |
---|
306 | messages on the server. |
---|
307 | |
---|
308 | Definition: |
---|
309 | |
---|
310 | <!ELEMENT notification-URL (DAV:href)> |
---|
311 | |
---|
312 | 4.2. Properties on Notification Resources |
---|
313 | |
---|
314 | The following new WebDAV properties are defined for notification |
---|
315 | resources. |
---|
316 | |
---|
317 | 4.2.1. CS:notificationtype Property |
---|
318 | |
---|
319 | Name: notificationtype |
---|
320 | |
---|
321 | Namespace: http://calendarserver.org/ns/ |
---|
322 | |
---|
323 | Purpose: Identify the type of notification of the corresponding |
---|
324 | resource. |
---|
325 | |
---|
326 | Protected: This property MUST be protected. |
---|
327 | |
---|
328 | PROPFIND behavior: This property SHOULD NOT be returned by a |
---|
329 | PROPFIND allprop request (as defined in Section 14.2 of |
---|
330 | [RFC4918]). |
---|
331 | |
---|
332 | |
---|
333 | |
---|
334 | |
---|
335 | Daboo & York [Page 6] |
---|
336 | |
---|
337 | CalDAV Sharing and Publishing October 2010 |
---|
338 | |
---|
339 | |
---|
340 | COPY/MOVE behavior: This property value MUST be preserved in COPY |
---|
341 | and MOVE operations. |
---|
342 | |
---|
343 | Description: This property allows a client, via a PROPFIND Depth:1 |
---|
344 | request, to quickly find notification messages that the client can |
---|
345 | handle in a notification collection. The single child element is |
---|
346 | the notification resource root element's child defining the |
---|
347 | notification itself. This element MUST be empty, though any |
---|
348 | attributes on the element in the notification resource MUST be |
---|
349 | present in the property element. |
---|
350 | |
---|
351 | Definition: |
---|
352 | |
---|
353 | <!ELEMENT notificationtype (invite-notification | invite-reply)> |
---|
354 | <!-- Child elements are empty but will have appropriate attributes. |
---|
355 | Any valid notification message child element can appear.--> |
---|
356 | |
---|
357 | |
---|
358 | 5. Shared Calendaring |
---|
359 | |
---|
360 | 5.1. Feature Discovery |
---|
361 | |
---|
362 | A server that supports the features described in this document MUST |
---|
363 | include "calendarserver-sharing" as a field in the DAV response |
---|
364 | header from an OPTIONS request on any resource that supports these |
---|
365 | features. |
---|
366 | |
---|
367 | 5.2. Additional Properties for Calendars |
---|
368 | |
---|
369 | The following new or modified WebDAV properties are defined for |
---|
370 | calendar collections and used to view or manipulate shared calendar |
---|
371 | features. |
---|
372 | |
---|
373 | 5.2.1. DAV:resourcetype Property |
---|
374 | |
---|
375 | Calendar collections that are shared have addition elements listed in |
---|
376 | their DAV:resourcetype property in addition to DAV:collection and |
---|
377 | CALDAV:calendar. |
---|
378 | |
---|
379 | o CS:shared-owner (Section 6.1): used to indicate that the calendar |
---|
380 | is owned by the current user and is being shared by them. |
---|
381 | |
---|
382 | o CS:shared (Section 6.2): used to indicate that the calendar is |
---|
383 | owned by another user and is being shared to the current user. |
---|
384 | |
---|
385 | |
---|
386 | |
---|
387 | |
---|
388 | |
---|
389 | |
---|
390 | |
---|
391 | Daboo & York [Page 7] |
---|
392 | |
---|
393 | CalDAV Sharing and Publishing October 2010 |
---|
394 | |
---|
395 | |
---|
396 | 5.2.2. CS:invite Property |
---|
397 | |
---|
398 | Name: invite |
---|
399 | |
---|
400 | Namespace: http://calendarserver.org/ns/ |
---|
401 | |
---|
402 | Purpose: Used to show to whom a calendar has been shared. |
---|
403 | |
---|
404 | Protected: This property MUST be protected. |
---|
405 | |
---|
406 | PROPFIND behavior: This property SHOULD NOT be returned by a |
---|
407 | PROPFIND allprop request (as defined in Section 14.2 of |
---|
408 | [RFC4918]). |
---|
409 | |
---|
410 | COPY/MOVE behavior: This property value MUST be preserved in COPY |
---|
411 | and MOVE operations. |
---|
412 | |
---|
413 | Description: This WebDAV property is present on a calendar |
---|
414 | collection resource that has been shared by the owner. It MUST |
---|
415 | NOT appear on the calendar collection resources of the sharees of |
---|
416 | the calendar. It provides a list of users to whom the calendar |
---|
417 | has been shared, along with the "status" of the sharing invites |
---|
418 | sent to each user. |
---|
419 | |
---|
420 | Definition: |
---|
421 | |
---|
422 | <!ELEMENT invite (user*)> |
---|
423 | |
---|
424 | 5.2.3. CS:allowed-sharing-modes Property |
---|
425 | |
---|
426 | Name: allowed-sharing-modes |
---|
427 | |
---|
428 | Namespace: http://calendarserver.org/ns/ |
---|
429 | |
---|
430 | Purpose: Used to show which modes of sharing are supported on a |
---|
431 | calendar collection. |
---|
432 | |
---|
433 | Protected: This property MUST be protected. |
---|
434 | |
---|
435 | PROPFIND behavior: This property SHOULD NOT be returned by a |
---|
436 | PROPFIND allprop request (as defined in Section 14.2 of |
---|
437 | [RFC4918]). |
---|
438 | |
---|
439 | COPY/MOVE behavior: This property value MUST be preserved in COPY |
---|
440 | and MOVE operations. |
---|
441 | |
---|
442 | |
---|
443 | |
---|
444 | |
---|
445 | |
---|
446 | |
---|
447 | Daboo & York [Page 8] |
---|
448 | |
---|
449 | CalDAV Sharing and Publishing October 2010 |
---|
450 | |
---|
451 | |
---|
452 | Description: This WebDAV property is present on a calendar |
---|
453 | collection resource that can been shared or published. It |
---|
454 | provides a list of options indicating what sharing modes are |
---|
455 | allowed as per Section 5.5.2. |
---|
456 | |
---|
457 | Definition: |
---|
458 | |
---|
459 | <!ELEMENT allowed-sharing-modes |
---|
460 | (can-be-shared?, can-be-published?)> |
---|
461 | |
---|
462 | 5.2.4. CS:shared-url Property |
---|
463 | |
---|
464 | Name: shared-url |
---|
465 | |
---|
466 | Namespace: http://calendarserver.org/ns/ |
---|
467 | |
---|
468 | Purpose: Indicates the URL of the owner's copy of a shared calendar. |
---|
469 | |
---|
470 | Protected: This property MUST be protected. |
---|
471 | |
---|
472 | PROPFIND behavior: This property SHOULD NOT be returned by a |
---|
473 | PROPFIND allprop request (as defined in Section 14.2 of |
---|
474 | [RFC4918]). |
---|
475 | |
---|
476 | COPY/MOVE behavior: This property value MUST be preserved in COPY |
---|
477 | and MOVE operations. |
---|
478 | |
---|
479 | Description: This WebDAV property is present on a shared calendar |
---|
480 | collection resource that appears in a sharee's calendar home |
---|
481 | collection. Its content is a single DAV:href element whose value |
---|
482 | is the URL of the sharer's calendar being shared. |
---|
483 | |
---|
484 | Definition: |
---|
485 | |
---|
486 | <!ELEMENT shared-url (DAV:href)> |
---|
487 | |
---|
488 | 5.3. Sharer Actions on Shared Calendars |
---|
489 | |
---|
490 | 5.3.1. Creating a Shared Calendar |
---|
491 | |
---|
492 | To create a shared calendar, clients use the MKCALENDAR [RFC4791] or |
---|
493 | extended MKCOL [RFC5689] requests, and include a DAV:resourcetype |
---|
494 | property to be set upon creation. That property MUST contain DAV: |
---|
495 | collection, CALDAV:calendar and CS:shared-owner child elements to |
---|
496 | enable sharing. |
---|
497 | |
---|
498 | |
---|
499 | |
---|
500 | |
---|
501 | |
---|
502 | |
---|
503 | Daboo & York [Page 9] |
---|
504 | |
---|
505 | CalDAV Sharing and Publishing October 2010 |
---|
506 | |
---|
507 | |
---|
508 | 5.3.1.1. Example: Successful MKCALENDAR Request |
---|
509 | |
---|
510 | This example shows how the MKCALENDAR request is used to create a |
---|
511 | shared calendar collection. The response body is empty as the |
---|
512 | request completed successfully. |
---|
513 | |
---|
514 | >> Request << |
---|
515 | |
---|
516 | MKCALENDAR /calendars/users/cyrus/shared/ HTTP/1.1 |
---|
517 | Host: calendar.example.com |
---|
518 | Content-Type: application/xml; charset="utf-8" |
---|
519 | Content-Length: xxxx |
---|
520 | |
---|
521 | <?xml version="1.0" encoding="utf-8" ?> |
---|
522 | <C:mkcalendar xmlns:D="DAV:" |
---|
523 | xmlns:C="urn:ietf:params:xml:ns:caldav" |
---|
524 | xmlns:CS="http://calendarserver.org/ns/"> |
---|
525 | <D:set> |
---|
526 | <D:prop> |
---|
527 | <D:resourcetype> |
---|
528 | <D:collection/> |
---|
529 | <C:calendar/> |
---|
530 | <CS:shared-owner/> |
---|
531 | </D:resourcetype> |
---|
532 | </D:prop> |
---|
533 | </D:set> |
---|
534 | </C:mkcalendar> |
---|
535 | |
---|
536 | >> Response << |
---|
537 | |
---|
538 | HTTP/1.1 201 Created |
---|
539 | Cache-Control: no-cache |
---|
540 | Date: Sat, 11 Nov 2006 09:32:12 GMT |
---|
541 | |
---|
542 | 5.3.1.2. Example: Successful Extended MKCOL Request |
---|
543 | |
---|
544 | This example shows how the extended MKCOL request is used to create a |
---|
545 | shared calendar collection. The response body is empty as the |
---|
546 | request completed successfully. |
---|
547 | |
---|
548 | |
---|
549 | |
---|
550 | |
---|
551 | |
---|
552 | |
---|
553 | |
---|
554 | |
---|
555 | |
---|
556 | |
---|
557 | |
---|
558 | |
---|
559 | Daboo & York [Page 10] |
---|
560 | |
---|
561 | CalDAV Sharing and Publishing October 2010 |
---|
562 | |
---|
563 | |
---|
564 | >> Request << |
---|
565 | |
---|
566 | MKCOL /calendars/users/cyrus/shared/ HTTP/1.1 |
---|
567 | Host: calendar.example.com |
---|
568 | Content-Type: application/xml; charset="utf-8" |
---|
569 | Content-Length: xxxx |
---|
570 | |
---|
571 | <?xml version="1.0" encoding="utf-8" ?> |
---|
572 | <D:mkcol xmlns:D="DAV:" |
---|
573 | xmlns:C="urn:ietf:params:xml:ns:caldav" |
---|
574 | xmlns:CS="http://calendarserver.org/ns/"> |
---|
575 | <D:set> |
---|
576 | <D:prop> |
---|
577 | <D:resourcetype> |
---|
578 | <D:collection/> |
---|
579 | <C:calendar/> |
---|
580 | <CS:shared-owner/> |
---|
581 | </D:resourcetype> |
---|
582 | </D:prop> |
---|
583 | </D:set> |
---|
584 | </D:mkcol> |
---|
585 | |
---|
586 | >> Response << |
---|
587 | |
---|
588 | HTTP/1.1 201 Created |
---|
589 | Cache-Control: no-cache |
---|
590 | Date: Sat, 11 Nov 2006 09:32:12 GMT |
---|
591 | |
---|
592 | 5.3.2. Sharing an Existing Calendar |
---|
593 | |
---|
594 | Sharing an existing calendar can be accomplished in two ways. One |
---|
595 | option is to use a PROPPATCH request to set the DAV:resourcetype |
---|
596 | property to include CS:shared-owner as a child element. Another |
---|
597 | option is to add sharee's directly to the calendar collection (as |
---|
598 | described in Section 5.3.3) - that action MUST upgrade a non-shared |
---|
599 | calendar to a shared calendar when it completes successfully, |
---|
600 | assuming that such an upgrade is allowed as per Section 5.5.2. |
---|
601 | |
---|
602 | 5.3.2.1. Example: Successful PROPPATCH Request |
---|
603 | |
---|
604 | This example shows how the PROPPATCH request is used to upgrade to a |
---|
605 | shared calendar collection. |
---|
606 | |
---|
607 | |
---|
608 | |
---|
609 | |
---|
610 | |
---|
611 | |
---|
612 | |
---|
613 | |
---|
614 | |
---|
615 | Daboo & York [Page 11] |
---|
616 | |
---|
617 | CalDAV Sharing and Publishing October 2010 |
---|
618 | |
---|
619 | |
---|
620 | >> Request << |
---|
621 | |
---|
622 | PROPPATCH /calendars/users/cyrus/shared/ HTTP/1.1 |
---|
623 | Host: calendar.example.com |
---|
624 | Content-Type: application/xml; charset="utf-8" |
---|
625 | Content-Length: xxxx |
---|
626 | |
---|
627 | <?xml version="1.0" encoding="utf-8" ?> |
---|
628 | <D:propertyupdate xmlns:D="DAV:" |
---|
629 | xmlns:C="urn:ietf:params:xml:ns:caldav" |
---|
630 | xmlns:CS="http://calendarserver.org/ns/"> |
---|
631 | <D:set> |
---|
632 | <D:prop> |
---|
633 | <D:resourcetype> |
---|
634 | <D:collection/> |
---|
635 | <C:calendar/> |
---|
636 | <CS:shared-owner/> |
---|
637 | </D:resourcetype> |
---|
638 | </D:prop> |
---|
639 | </D:set> |
---|
640 | </D:propertyupdate> |
---|
641 | |
---|
642 | >> Response << |
---|
643 | |
---|
644 | HTTP/1.1 207 Multi-Status |
---|
645 | Date: Sat, 11 Nov 2006 09:32:12 GMT |
---|
646 | Content-Type: application/xml; charset="utf-8" |
---|
647 | Content-Length: xxxx |
---|
648 | |
---|
649 | <?xml version="1.0" encoding="utf-8" ?> |
---|
650 | <D:multistatus xmlns:D="DAV:"> |
---|
651 | <D:response> |
---|
652 | <D:href>/calendars/users/cyrus/shared/</D:href> |
---|
653 | <D:propstat> |
---|
654 | <D:prop> |
---|
655 | <D:resourcetype/> |
---|
656 | </D:prop> |
---|
657 | <D:status>HTTP/1.1 200 OK</D:status> |
---|
658 | </D:propstat> |
---|
659 | </D:response> |
---|
660 | </D:multistatus> |
---|
661 | |
---|
662 | 5.3.3. Manipulating Sharees of a Shared Calendar |
---|
663 | |
---|
664 | The sharer of a shared calendar is able to manipulate the sharee list |
---|
665 | by issuing a POST request targeted at the shared calendar collection |
---|
666 | resource. The POST request MUST contain an XML document as its body |
---|
667 | with the root element being CS:share (Section 6.24). |
---|
668 | |
---|
669 | |
---|
670 | |
---|
671 | Daboo & York [Page 12] |
---|
672 | |
---|
673 | CalDAV Sharing and Publishing October 2010 |
---|
674 | |
---|
675 | |
---|
676 | The CS:share (Section 6.24) element in the POST requests MUST contain |
---|
677 | one or more CS:set (Section 6.25) or CS:remove (Section 6.26) |
---|
678 | elements. For each CS:set (Section 6.25) element, the server MUST |
---|
679 | add the specified sharee access to the shared calendar. For each CS: |
---|
680 | remove (Section 6.26) element the server MUST remove the specified |
---|
681 | sharee access from the shared calendar. In each case the server MUST |
---|
682 | send a notification message to any sharees whose status is changed |
---|
683 | (added, modified or removed), indicating to them a change in status |
---|
684 | for the shared calendar. The server SHOULD NOT send notification |
---|
685 | messages to sharees whose status is unchanged. |
---|
686 | |
---|
687 | Sharee's are identified via a DAV:href element whose value is either |
---|
688 | a principal-URL for a sharee hosted on the same server, a calendar |
---|
689 | user address or email address. In the case of the later two, the |
---|
690 | sharee might not be a user on the same server - though in that case |
---|
691 | how invitations are sent or access enabled is out of scope for this |
---|
692 | specification. A server MAY change the sharee's "address" to any |
---|
693 | suitable alternative that it might prefer when returning the list of |
---|
694 | sharees via the CS:invite property (Section 5.2.2). |
---|
695 | |
---|
696 | The client MAY include a CS:common-name (Section 6.19) element in the |
---|
697 | CS:set (Section 6.25) element. When provided, the value represents |
---|
698 | the common name for the sharee, and is returned in the list of |
---|
699 | sharees via the CS:invite property (Section 5.2.2). The server MAY |
---|
700 | change this to a suitable alternative when it is able to match the |
---|
701 | sharee to a known user. If absent from the client request, the |
---|
702 | server SHOULD add a CS:common-name when it is able to match the |
---|
703 | sharee with a known user, and a common name for that user can be |
---|
704 | determined. |
---|
705 | |
---|
706 | When the sharee list on a shared calendar is changed, the server MUST |
---|
707 | send notifications to each sharee to update them on their current |
---|
708 | sharing status. This is accomplished by sending a CS:invite- |
---|
709 | notification (Section 6.15) notification to each sharee. |
---|
710 | |
---|
711 | 5.3.3.1. Example: Successful Sharee Add Request |
---|
712 | |
---|
713 | This example shows how to add a single sharee (with calendar user |
---|
714 | address "mailto:eric@example.com") to a shared calendar with CS:read- |
---|
715 | write access. |
---|
716 | |
---|
717 | |
---|
718 | |
---|
719 | |
---|
720 | |
---|
721 | |
---|
722 | |
---|
723 | |
---|
724 | |
---|
725 | |
---|
726 | |
---|
727 | Daboo & York [Page 13] |
---|
728 | |
---|
729 | CalDAV Sharing and Publishing October 2010 |
---|
730 | |
---|
731 | |
---|
732 | >> Request << |
---|
733 | |
---|
734 | POST /calendars/users/cyrus/shared/ HTTP/1.1 |
---|
735 | Host: calendar.example.com |
---|
736 | Content-Type: application/xml; charset="utf-8" |
---|
737 | Content-Length: xxxx |
---|
738 | |
---|
739 | <?xml version="1.0" encoding="utf-8" ?> |
---|
740 | <CS:share xmlns:D="DAV:" |
---|
741 | xmlns:CS="http://calendarserver.org/ns/"> |
---|
742 | <CS:set> |
---|
743 | <D:href>mailto:eric@example.com</D:href> |
---|
744 | <CS:common-name>Eric York</CS:common-name> |
---|
745 | <CS:summary>Shared workspace</CS:summary> |
---|
746 | <CS:read-write /> |
---|
747 | </CS:set> |
---|
748 | </CS:share> |
---|
749 | |
---|
750 | >> Response << |
---|
751 | |
---|
752 | HTTP/1.1 200 OK |
---|
753 | Cache-Control: no-cache |
---|
754 | Date: Sat, 11 Nov 2006 09:32:12 GMT |
---|
755 | |
---|
756 | 5.3.3.2. Example: Successful Multiple Sharee Change Request |
---|
757 | |
---|
758 | This example shows how multiple sharee's can be manipulated in a |
---|
759 | single request. The sharee with calendar user address |
---|
760 | "mailto:eric@example.com" has their access downgraded to CS:read, |
---|
761 | whilst another sharee is removed from the access list entirely. |
---|
762 | |
---|
763 | |
---|
764 | |
---|
765 | |
---|
766 | |
---|
767 | |
---|
768 | |
---|
769 | |
---|
770 | |
---|
771 | |
---|
772 | |
---|
773 | |
---|
774 | |
---|
775 | |
---|
776 | |
---|
777 | |
---|
778 | |
---|
779 | |
---|
780 | |
---|
781 | |
---|
782 | |
---|
783 | Daboo & York [Page 14] |
---|
784 | |
---|
785 | CalDAV Sharing and Publishing October 2010 |
---|
786 | |
---|
787 | |
---|
788 | >> Request << |
---|
789 | |
---|
790 | POST /calendars/users/cyrus/shared/ HTTP/1.1 |
---|
791 | Host: calendar.example.com |
---|
792 | Content-Type: application/xml; charset="utf-8" |
---|
793 | Content-Length: xxxx |
---|
794 | |
---|
795 | <?xml version="1.0" encoding="utf-8" ?> |
---|
796 | <CS:share xmlns:D="DAV:" |
---|
797 | xmlns:CS="http://calendarserver.org/ns/"> |
---|
798 | <CS:set> |
---|
799 | <D:href>mailto:eric@example.com</D:href> |
---|
800 | <CS:summary>Shared workspace</CS:summary> |
---|
801 | <CS:read-write /> |
---|
802 | </CS:set> |
---|
803 | <CS:remove> |
---|
804 | <D:href>mailto:wilfredo@example.com</D:href> |
---|
805 | </CS:remove> |
---|
806 | </CS:share> |
---|
807 | |
---|
808 | >> Response << |
---|
809 | |
---|
810 | HTTP/1.1 200 OK |
---|
811 | Cache-Control: no-cache |
---|
812 | Date: Sat, 11 Nov 2006 09:32:12 GMT |
---|
813 | |
---|
814 | 5.4. Sharee Actions on Shared Calendars |
---|
815 | |
---|
816 | 5.4.1. Replying to a Sharing Invite |
---|
817 | |
---|
818 | When a sharee is invited to a shared calendar they can accept or |
---|
819 | decline the invite by issuing a POST request to the sharee's calendar |
---|
820 | home collection resource. The POST request MUST contain an XML |
---|
821 | document as its body with the root element being CS:invite-reply |
---|
822 | (Section 6.20). |
---|
823 | |
---|
824 | The CS:invite-reply (Section 6.20) element in the POST request |
---|
825 | specifies the sharee who is replying in the DAV:href element, the |
---|
826 | accept or decline action via the CS:invite-accepted or CS:invite- |
---|
827 | declined elements, the URL of the shared calendar in the CS:hosturl |
---|
828 | element, the unique identifier of the invite to which it is a reply |
---|
829 | in the CS:in-reply-to element, and an optional CS:summary element. |
---|
830 | |
---|
831 | The response to a POST request that accepts a shared calendar invite |
---|
832 | MUST be an XML document containing CS:shared-as (Section 6.27) as its |
---|
833 | root element. That root element contains a single DAV:href element |
---|
834 | whose content is the URI of the shared calendar in the sharee's |
---|
835 | calendar home created by the invite acceptance. |
---|
836 | |
---|
837 | |
---|
838 | |
---|
839 | Daboo & York [Page 15] |
---|
840 | |
---|
841 | CalDAV Sharing and Publishing October 2010 |
---|
842 | |
---|
843 | |
---|
844 | When the sharee replies to an invite, the server SHOULD send a |
---|
845 | notification to the sharer to update them on the change in the sharee |
---|
846 | state. This is accomplished by sending a CS:invite-reply |
---|
847 | (Section 6.20) notification to the sharer. |
---|
848 | |
---|
849 | 5.4.2. Removing a Shared Calendar |
---|
850 | |
---|
851 | To remove a shared calendar from a sharee's calendar home collection |
---|
852 | a DELETE request is targeted at the shared calendar URI. When such a |
---|
853 | request is received the server MUST remove the shared calendar from |
---|
854 | the sharee's calendar home and automatically update the sharee's |
---|
855 | status in the sharer's calendar's CS:invite property. |
---|
856 | |
---|
857 | 5.5. General Considerations |
---|
858 | |
---|
859 | 5.5.1. Access Levels |
---|
860 | |
---|
861 | Two levels of access ca be granted by a sharer to any sharee. These |
---|
862 | are governed by the CS:access element used in the CS:invite/CS:user |
---|
863 | element that specifies a shared user invite. CS:access contains a |
---|
864 | single empty element that defines the type of access granted: |
---|
865 | |
---|
866 | CS:read When present this indicates that sharees can read calendar |
---|
867 | data but cannot change it. |
---|
868 | |
---|
869 | CS:read-write When present this indicates that sharees can read and |
---|
870 | write calendar data. |
---|
871 | |
---|
872 | 5.5.2. Allowing or Disallowing Sharing |
---|
873 | |
---|
874 | Servers MAY support calendar sharing on a per-calendar basis - e.g., |
---|
875 | they could treat some calendars as always private (cannot be shared) |
---|
876 | or always public (always shared). As a result clients need a way to |
---|
877 | determine which calendar could be shared so they can enable or |
---|
878 | disable sharing options on a per-calendar basis. |
---|
879 | |
---|
880 | This specification adds a CS:allowed-sharing-modes (Section 5.2.3) |
---|
881 | WebDAV property which servers can return on calendar collection |
---|
882 | resources. This property contains XML elements that describe which |
---|
883 | sharing or publishing capabilities can be supported by the |
---|
884 | corresponding calendar collection: |
---|
885 | |
---|
886 | CS:can-be-shared (Section 6.3): when present indicates that the |
---|
887 | calendar collection can be shared. When not present, the calendar |
---|
888 | collection cannot be shared. |
---|
889 | |
---|
890 | CS:can-be-published (Section 6.4): when present indicates that the |
---|
891 | calendar collection can be published. When not present, the |
---|
892 | |
---|
893 | |
---|
894 | |
---|
895 | Daboo & York [Page 16] |
---|
896 | |
---|
897 | CalDAV Sharing and Publishing October 2010 |
---|
898 | |
---|
899 | |
---|
900 | calendar collection cannot be published. |
---|
901 | |
---|
902 | When not present on a calendar collection, sharing or publishing of |
---|
903 | that calendar is not allowed. Clients SHOULD NOT attempt to use |
---|
904 | requests to enable sharing or publishing targeted at those calendar |
---|
905 | collections. |
---|
906 | |
---|
907 | 5.5.3. Per-user WebDAV Properties |
---|
908 | |
---|
909 | Servers MUST support "per-user" WebDAV properties on shared calendar |
---|
910 | collections and MAY support them on calendar object resources within |
---|
911 | shared calendar collections. A "per-user" WebDAV property is one |
---|
912 | whose value can be set and retrieved independently by each user with |
---|
913 | appropriate access rights. e.g., user "A" changes the DAV:displayname |
---|
914 | property on a shared calendar in their calendar home to "My |
---|
915 | calendar", and user "B" changes the same property to "Shared" on the |
---|
916 | same shared calendar in their calendar home. When each user |
---|
917 | retrieves the property value they will see their own last stored |
---|
918 | value and not the value of the other user. |
---|
919 | |
---|
920 | For shared calendars, the server MUST allow all users to write "per- |
---|
921 | user" WebDAV properties on the shared calendar collection and MAY |
---|
922 | allow property writes on calendar object resources within the shared |
---|
923 | calendar collection. This is required even in the case where the |
---|
924 | sharee has been granted read access only (i.e., the ability to change |
---|
925 | calendar data is disallowed). This requirement ensures that sharees |
---|
926 | can always change "personal" properties such as calendar colors and |
---|
927 | display names. |
---|
928 | |
---|
929 | Servers MUST treat the following properties as "per-user": |
---|
930 | |
---|
931 | DAV:displayname |
---|
932 | |
---|
933 | CALDAV:calendar-description |
---|
934 | |
---|
935 | CALDAV:schedule-calendar-transp |
---|
936 | |
---|
937 | ICAL:calendar-color |
---|
938 | |
---|
939 | Servers MAY treat any dead property as per-user. |
---|
940 | |
---|
941 | Servers MUST NOT treat live properties as per-user. |
---|
942 | |
---|
943 | 5.5.4. Per-user Calendar Data |
---|
944 | |
---|
945 | Servers MUST support "per-user" calendar data in calendar object |
---|
946 | resources stored in shared calendars. This allows each sharee and |
---|
947 | the sharer to store their own alarms and free busy transparency |
---|
948 | |
---|
949 | |
---|
950 | |
---|
951 | Daboo & York [Page 17] |
---|
952 | |
---|
953 | CalDAV Sharing and Publishing October 2010 |
---|
954 | |
---|
955 | |
---|
956 | status without "interfering" with other users who also have access to |
---|
957 | the same calendar object resources. |
---|
958 | |
---|
959 | For calendaring object resources in shared calendar collections, the |
---|
960 | server MUST treat the following iCalendar data objects as per-user: |
---|
961 | |
---|
962 | TRANSP property |
---|
963 | |
---|
964 | VALARM component |
---|
965 | |
---|
966 | Servers MAY treat any non-standard X- iCalendar properties as per- |
---|
967 | user. |
---|
968 | |
---|
969 | When handling per-user data in recurring components, servers SHOULD |
---|
970 | eliminate overridden instances when returning iCalendar data to |
---|
971 | clients in the case where there are no differences between the |
---|
972 | overridden component and the instance that could be derived from the |
---|
973 | "master" recurrence component. For example, consider a daily |
---|
974 | recurring event, Monday through Friday, initially defined without any |
---|
975 | overridden instances, that is in a shared calendar. If user "A" |
---|
976 | overrides the Tuesday instance and adds their own "VALARM" component |
---|
977 | only, then when user "A" later retrieves the data again they would |
---|
978 | see that overridden instance, but when user "B" does so, they would |
---|
979 | not. This ensures that each user sees the most "compact" |
---|
980 | representation of the calendar data. |
---|
981 | |
---|
982 | 5.5.5. Scheduling |
---|
983 | |
---|
984 | CalDAV Scheduling [I-D.desruisseaux-caldav-sched] defines how a |
---|
985 | CalDAV server carries out scheduling operations when calendar object |
---|
986 | resources are created, modified or deleted and include "ORGANIZER" |
---|
987 | and "ATTENDEE" iCalendar properties. |
---|
988 | |
---|
989 | When calendar object resources are created, modified or deleted in |
---|
990 | shared calendars by sharees, the following restrictions apply: |
---|
991 | |
---|
992 | 1. The "ORGANIZER" iCalendar property value in the iCalendar data |
---|
993 | MUST match a calendar user address of the sharer (owner) of the |
---|
994 | shared calendar. The DAV:owner WebDAV property MUST be present |
---|
995 | on a shared calendar and MUST provide a reference to a principal- |
---|
996 | URL of the sharer (owner) of the shared calendar. Clients can |
---|
997 | use this value to determine what the allowed "ORGANIZER" |
---|
998 | iCalendar property values are. The server MUST reject any |
---|
999 | attempt by a sharee to create an iCalendar component with an |
---|
1000 | "ORGANIZER" property value other than the sharer (owner) of the |
---|
1001 | shared calendar. |
---|
1002 | |
---|
1003 | |
---|
1004 | |
---|
1005 | |
---|
1006 | |
---|
1007 | Daboo & York [Page 18] |
---|
1008 | |
---|
1009 | CalDAV Sharing and Publishing October 2010 |
---|
1010 | |
---|
1011 | |
---|
1012 | 2. The server MUST reject any attempt by a sharee to MOVE a calendar |
---|
1013 | object resource in a shared calendar to some other collection. |
---|
1014 | |
---|
1015 | 3. When a sharee is listed as an Attendee in a calendar object |
---|
1016 | resource in a shared calendar, and write access is granted, the |
---|
1017 | sharee is allowed to change not only iCalendar data related to |
---|
1018 | the Organizer, but also data related to the Attendee. i.e., a |
---|
1019 | sharee can change their own participation status on the |
---|
1020 | "ATTENDEE" iCalendar property referring to them. Additionally, |
---|
1021 | if the sharee is not listed as an Attendee, and write access is |
---|
1022 | granted, the sharee can add themselves as an Attendee. |
---|
1023 | |
---|
1024 | 4. The default calendar collection defined in Section 6.3 of |
---|
1025 | [I-D.desruisseaux-caldav-sched] MUST NOT be a calendar shared to |
---|
1026 | the corresponding calendar user. |
---|
1027 | |
---|
1028 | Following are additional considerations for scheduling with shared |
---|
1029 | calendars: |
---|
1030 | |
---|
1031 | 1. A scheduled iCalendar component could appear in more than one |
---|
1032 | calendar collection within a sharee's calendar home if the sharee |
---|
1033 | is an Attendee and the Organizer or other Attendees have shared a |
---|
1034 | calendar with the sharee that includes their copies of the |
---|
1035 | iCalendar component. It is important to note that the scheduled |
---|
1036 | component in the shared calendar could have different access |
---|
1037 | rights than the one in the sharee's owned calendar. |
---|
1038 | |
---|
1039 | 2. A scheduled iCalendar component appearing in a sharee's shared |
---|
1040 | calendar could include the sharee as an Attendee. For recurring |
---|
1041 | events, it is possible for the sharee to only be listed as an |
---|
1042 | Attendee in some instances, as opposed to all. Clients will need |
---|
1043 | to be aware of this when allowing sharee's to set their own |
---|
1044 | participation status. |
---|
1045 | |
---|
1046 | In addition, when a shared calendar is first accepted by a sharee, |
---|
1047 | the server SHOULD set the CALDAV:schedule-calendar-transp property to |
---|
1048 | the value CALDAV:transparent to ensure newly accepted shared |
---|
1049 | calendars do not contribute to the sharee's freebusy time until the |
---|
1050 | sharee explicitly requests it. |
---|
1051 | |
---|
1052 | |
---|
1053 | 6. XML Element Definitions |
---|
1054 | |
---|
1055 | 6.1. CS:shared-owner |
---|
1056 | |
---|
1057 | |
---|
1058 | |
---|
1059 | |
---|
1060 | |
---|
1061 | |
---|
1062 | |
---|
1063 | Daboo & York [Page 19] |
---|
1064 | |
---|
1065 | CalDAV Sharing and Publishing October 2010 |
---|
1066 | |
---|
1067 | |
---|
1068 | Name: shared-owner |
---|
1069 | |
---|
1070 | Namespace: http://calendarserver.org/ns/ |
---|
1071 | |
---|
1072 | Purpose: Used to indicate that a calendar is being shared by the |
---|
1073 | owner. |
---|
1074 | |
---|
1075 | Description: This property appears in the DAV:resourcetype property |
---|
1076 | on the calendar collection resource shared by a sharer. See |
---|
1077 | Section 5.2. |
---|
1078 | |
---|
1079 | Definition: |
---|
1080 | |
---|
1081 | <!ELEMENT shared-owner EMPTY> |
---|
1082 | |
---|
1083 | 6.2. CS:shared |
---|
1084 | |
---|
1085 | Name: shared |
---|
1086 | |
---|
1087 | Namespace: http://calendarserver.org/ns/ |
---|
1088 | |
---|
1089 | Purpose: Used to indicate that a calendar is being shared to a |
---|
1090 | sharee. |
---|
1091 | |
---|
1092 | Description: This property appears in the DAV:resourcetype property |
---|
1093 | on a calendar collection resource that is shared to a sharee and |
---|
1094 | appears in the sharee's calendar home collection. See |
---|
1095 | Section 5.2. |
---|
1096 | |
---|
1097 | Definition: |
---|
1098 | |
---|
1099 | <!ELEMENT shared EMPTY> |
---|
1100 | |
---|
1101 | 6.3. CS:can-be-shared |
---|
1102 | |
---|
1103 | Name: can-be-shared |
---|
1104 | |
---|
1105 | Namespace: http://calendarserver.org/ns/ |
---|
1106 | |
---|
1107 | Purpose: Used to indicate that a calendar can be shared. |
---|
1108 | |
---|
1109 | Description: This element indicates that a calendar can be shared |
---|
1110 | with other users. See Section 5.2.3 |
---|
1111 | |
---|
1112 | Definition: |
---|
1113 | |
---|
1114 | <!ELEMENT can-be-shared EMPTY> |
---|
1115 | |
---|
1116 | |
---|
1117 | |
---|
1118 | |
---|
1119 | Daboo & York [Page 20] |
---|
1120 | |
---|
1121 | CalDAV Sharing and Publishing October 2010 |
---|
1122 | |
---|
1123 | |
---|
1124 | 6.4. CS:can-be-published |
---|
1125 | |
---|
1126 | Name: can-be-published |
---|
1127 | |
---|
1128 | Namespace: http://calendarserver.org/ns/ |
---|
1129 | |
---|
1130 | Purpose: Used to indicate that a calendar can be published. |
---|
1131 | |
---|
1132 | Description: This element indicates that a calendar can be published |
---|
1133 | to anyone. See Section 5.2.3 |
---|
1134 | |
---|
1135 | Definition: |
---|
1136 | |
---|
1137 | <!ELEMENT can-be-published EMPTY> |
---|
1138 | |
---|
1139 | 6.5. CS:user |
---|
1140 | |
---|
1141 | Name: user |
---|
1142 | |
---|
1143 | Namespace: http://calendarserver.org/ns/ |
---|
1144 | |
---|
1145 | Purpose: Used to show status of sharing invites sent to sharees. |
---|
1146 | |
---|
1147 | Description: This element provides the "status" of a sharing invite |
---|
1148 | sent to a particular user. See Section 5.2.2. |
---|
1149 | |
---|
1150 | Definition: |
---|
1151 | |
---|
1152 | <!ELEMENT user (DAV:href, common-name?, (invite-noresponse | |
---|
1153 | invite-accepted | invite-declined | invite-invalid), |
---|
1154 | access, summary?)> |
---|
1155 | |
---|
1156 | 6.6. CS:invite-noresponse |
---|
1157 | |
---|
1158 | Name: invite-noresponse |
---|
1159 | |
---|
1160 | Namespace: http://calendarserver.org/ns/ |
---|
1161 | |
---|
1162 | Purpose: Sharing invite status. |
---|
1163 | |
---|
1164 | Description: When used in a CS:user (Section 6.5) element, this |
---|
1165 | element is used to indicate that the sharee has never replied to |
---|
1166 | the corresponding sharing invite. When used in a CS:invite- |
---|
1167 | notification (Section 6.15) element, this element is used to |
---|
1168 | indicate to the sharee that a sharing reply is needed. |
---|
1169 | |
---|
1170 | |
---|
1171 | |
---|
1172 | |
---|
1173 | |
---|
1174 | |
---|
1175 | Daboo & York [Page 21] |
---|
1176 | |
---|
1177 | CalDAV Sharing and Publishing October 2010 |
---|
1178 | |
---|
1179 | |
---|
1180 | Definition: |
---|
1181 | |
---|
1182 | <!ELEMENT invite-noresponse EMPTY> |
---|
1183 | |
---|
1184 | 6.7. CS:invite-deleted |
---|
1185 | |
---|
1186 | Name: invite-deleted |
---|
1187 | |
---|
1188 | Namespace: http://calendarserver.org/ns/ |
---|
1189 | |
---|
1190 | Purpose: Sharing invite status. |
---|
1191 | |
---|
1192 | Description: When used in a CS:invite-notification (Section 6.15) |
---|
1193 | element, this element is used to indicate to the sharee that a |
---|
1194 | shared calendar has been unshared by the sharer. |
---|
1195 | |
---|
1196 | Definition: |
---|
1197 | |
---|
1198 | <!ELEMENT invite-deleted EMPTY> |
---|
1199 | |
---|
1200 | 6.8. CS:invite-accepted |
---|
1201 | |
---|
1202 | Name: invite-accepted |
---|
1203 | |
---|
1204 | Namespace: http://calendarserver.org/ns/ |
---|
1205 | |
---|
1206 | Purpose: Sharing invite status. |
---|
1207 | |
---|
1208 | Description: When used in a CS:user (Section 6.5) element, this |
---|
1209 | element is used to indicate that the sharee has accepted the |
---|
1210 | corresponding sharing invite. When used in a CS:invite- |
---|
1211 | notification (Section 6.15) element, this element is used to |
---|
1212 | indicate to the sharee that the sharing invite is an update for |
---|
1213 | one they previously accepted. |
---|
1214 | |
---|
1215 | Definition: |
---|
1216 | |
---|
1217 | <!ELEMENT invite-accepted EMPTY> |
---|
1218 | |
---|
1219 | 6.9. CS:invite-declined |
---|
1220 | |
---|
1221 | Name: invite-declined |
---|
1222 | |
---|
1223 | Namespace: http://calendarserver.org/ns/ |
---|
1224 | |
---|
1225 | |
---|
1226 | |
---|
1227 | |
---|
1228 | |
---|
1229 | |
---|
1230 | |
---|
1231 | Daboo & York [Page 22] |
---|
1232 | |
---|
1233 | CalDAV Sharing and Publishing October 2010 |
---|
1234 | |
---|
1235 | |
---|
1236 | Purpose: Sharing invite status. |
---|
1237 | |
---|
1238 | Description: When used in a CS:user (Section 6.5) element, this |
---|
1239 | element is used to indicate that the sharee has declined the |
---|
1240 | corresponding sharing invite. When used in a CS:invite- |
---|
1241 | notification (Section 6.15) element, this element is used to |
---|
1242 | indicate to the sharee that the sharing invite is an update for |
---|
1243 | one they previously declined. |
---|
1244 | |
---|
1245 | Definition: |
---|
1246 | |
---|
1247 | <!ELEMENT invite-declined EMPTY> |
---|
1248 | |
---|
1249 | 6.10. CS:invite-invalid |
---|
1250 | |
---|
1251 | Name: invite-invalid |
---|
1252 | |
---|
1253 | Namespace: http://calendarserver.org/ns/ |
---|
1254 | |
---|
1255 | Purpose: Sharing invite status. |
---|
1256 | |
---|
1257 | Description: When used in a CS:user (Section 6.5) element, this |
---|
1258 | element is used to indicate that the corresponding sharee is not a |
---|
1259 | valid calendar user known to the server. |
---|
1260 | |
---|
1261 | Definition: |
---|
1262 | |
---|
1263 | <!ELEMENT invite-invalid EMPTY> |
---|
1264 | |
---|
1265 | 6.11. CS:access |
---|
1266 | |
---|
1267 | Name: access |
---|
1268 | |
---|
1269 | Namespace: http://calendarserver.org/ns/ |
---|
1270 | |
---|
1271 | Purpose: Shared calendar access level. |
---|
1272 | |
---|
1273 | Description: When used in a CS:user (Section 6.5) element, this |
---|
1274 | element is used to indicate the sharing access level granted to |
---|
1275 | the corresponding sharee. |
---|
1276 | |
---|
1277 | Definition: |
---|
1278 | |
---|
1279 | <!ELEMENT invite-invalid (read | read-write)> |
---|
1280 | |
---|
1281 | |
---|
1282 | |
---|
1283 | |
---|
1284 | |
---|
1285 | |
---|
1286 | |
---|
1287 | Daboo & York [Page 23] |
---|
1288 | |
---|
1289 | CalDAV Sharing and Publishing October 2010 |
---|
1290 | |
---|
1291 | |
---|
1292 | 6.12. CS:read |
---|
1293 | |
---|
1294 | Name: read |
---|
1295 | |
---|
1296 | Namespace: http://calendarserver.org/ns/ |
---|
1297 | |
---|
1298 | Purpose: Shared calendar access level privilege. |
---|
1299 | |
---|
1300 | Description: Indicates that the access level granted only allows |
---|
1301 | sharees to read data in the shared calendar (though they can write |
---|
1302 | per-user data (Section 5.5.4)). |
---|
1303 | |
---|
1304 | Definition: |
---|
1305 | |
---|
1306 | <!ELEMENT read EMPTY> |
---|
1307 | |
---|
1308 | 6.13. CS:read-write |
---|
1309 | |
---|
1310 | Name: read-write |
---|
1311 | |
---|
1312 | Namespace: http://calendarserver.org/ns/ |
---|
1313 | |
---|
1314 | Purpose: Shared calendar access level privilege. |
---|
1315 | |
---|
1316 | Description: Indicates that the access level granted allows sharees |
---|
1317 | to read and write all data in the shared calendar, with the |
---|
1318 | exception of components that would trigger scheduling. |
---|
1319 | |
---|
1320 | Definition: |
---|
1321 | |
---|
1322 | <!ELEMENT read-write EMPTY> |
---|
1323 | |
---|
1324 | 6.14. CS:summary |
---|
1325 | |
---|
1326 | Name: summary |
---|
1327 | |
---|
1328 | Namespace: http://calendarserver.org/ns/ |
---|
1329 | |
---|
1330 | Purpose: Summary or title of shared calendar. |
---|
1331 | |
---|
1332 | Description: A brief description of a shared calendar. This can be |
---|
1333 | used by sharers to communicate the nature of a shared calendar to |
---|
1334 | sharees, as well as used by sharees to indicate back to the sharer |
---|
1335 | how each sharee is refering to the shared calendar. |
---|
1336 | |
---|
1337 | |
---|
1338 | |
---|
1339 | |
---|
1340 | |
---|
1341 | |
---|
1342 | |
---|
1343 | Daboo & York [Page 24] |
---|
1344 | |
---|
1345 | CalDAV Sharing and Publishing October 2010 |
---|
1346 | |
---|
1347 | |
---|
1348 | Definition: |
---|
1349 | |
---|
1350 | <!ELEMENT summary (#PCDATA)> |
---|
1351 | |
---|
1352 | 6.15. CS:invite-notification |
---|
1353 | |
---|
1354 | Name: invite-notification |
---|
1355 | |
---|
1356 | Namespace: http://calendarserver.org/ns/ |
---|
1357 | |
---|
1358 | Purpose: A notification used as a shared calendar invite. |
---|
1359 | |
---|
1360 | Description: Defines a notification message sent automatically by |
---|
1361 | the server when a sharer adds, changes or removes a sharee from a |
---|
1362 | shared calendar. The DAV:href element specifies the calendar user |
---|
1363 | address of the sharee to whom the message was sent. |
---|
1364 | |
---|
1365 | Definition: |
---|
1366 | |
---|
1367 | <!ELEMENT invite-notification (uid, DAV:href, |
---|
1368 | (invite-noresponse | invite-deleted | |
---|
1369 | invite-accepted | invite-declined), |
---|
1370 | access, hosturl, organizer, summary?> |
---|
1371 | |
---|
1372 | 6.16. CS:uid |
---|
1373 | |
---|
1374 | Name: uid |
---|
1375 | |
---|
1376 | Namespace: http://calendarserver.org/ns/ |
---|
1377 | |
---|
1378 | Purpose: Unique identifier. |
---|
1379 | |
---|
1380 | Description: A unique identifier for an invitation to a shared |
---|
1381 | calendar. |
---|
1382 | |
---|
1383 | Definition: |
---|
1384 | |
---|
1385 | <!ELEMENT uid (#PCDATA)> |
---|
1386 | |
---|
1387 | 6.17. CS:hosturl |
---|
1388 | |
---|
1389 | Name: hosturl |
---|
1390 | |
---|
1391 | Namespace: http://calendarserver.org/ns/ |
---|
1392 | |
---|
1393 | |
---|
1394 | |
---|
1395 | |
---|
1396 | |
---|
1397 | |
---|
1398 | |
---|
1399 | Daboo & York [Page 25] |
---|
1400 | |
---|
1401 | CalDAV Sharing and Publishing October 2010 |
---|
1402 | |
---|
1403 | |
---|
1404 | Purpose: Identifies the source URL of a shared calendar. |
---|
1405 | |
---|
1406 | Description: Contains a single DAV:href element that refers to the |
---|
1407 | source of a shared calendar - i.e., the URL of the calendar shared |
---|
1408 | by the sharer. |
---|
1409 | |
---|
1410 | Definition: |
---|
1411 | |
---|
1412 | <!ELEMENT hosturl (DAV:href)> |
---|
1413 | |
---|
1414 | 6.18. CS:organizer |
---|
1415 | |
---|
1416 | Name: organizer |
---|
1417 | |
---|
1418 | Namespace: http://calendarserver.org/ns/ |
---|
1419 | |
---|
1420 | Purpose: Identifies the sharer of a shared calendar. |
---|
1421 | |
---|
1422 | Description: Contains a single DAV:href element that identifies the |
---|
1423 | calendar user address of the sharer of a shared calendar, and an |
---|
1424 | optional CS:common-name element that matches that user. |
---|
1425 | |
---|
1426 | Definition: |
---|
1427 | |
---|
1428 | <!ELEMENT organizer (DAV:href, CS:common-name?)> |
---|
1429 | |
---|
1430 | 6.19. CS:common-name |
---|
1431 | |
---|
1432 | Name: common-name |
---|
1433 | |
---|
1434 | Namespace: http://calendarserver.org/ns/ |
---|
1435 | |
---|
1436 | Purpose: The common name of a sharer or sharee. |
---|
1437 | |
---|
1438 | Description: The common name is optionally provided by a client when |
---|
1439 | adding a sharee and optionally included (or modified) by the |
---|
1440 | server when returning results for sharers or sharees and in |
---|
1441 | notifications. |
---|
1442 | |
---|
1443 | Definition: |
---|
1444 | |
---|
1445 | <!ELEMENT common-name (#PCDATA)> |
---|
1446 | |
---|
1447 | 6.20. CS:invite-reply |
---|
1448 | |
---|
1449 | |
---|
1450 | |
---|
1451 | |
---|
1452 | |
---|
1453 | |
---|
1454 | |
---|
1455 | Daboo & York [Page 26] |
---|
1456 | |
---|
1457 | CalDAV Sharing and Publishing October 2010 |
---|
1458 | |
---|
1459 | |
---|
1460 | Name: invite-reply |
---|
1461 | |
---|
1462 | Namespace: http://calendarserver.org/ns/ |
---|
1463 | |
---|
1464 | Purpose: A notification used as a reply to a shared calendar invite. |
---|
1465 | |
---|
1466 | Description: Defines a notification message sent automatically by |
---|
1467 | the server when a sharee replies to a shared calendar invite. The |
---|
1468 | DAV:href element specifies the calendar user address of the sharee |
---|
1469 | to whom the original invite message was sent. |
---|
1470 | |
---|
1471 | Definition: |
---|
1472 | |
---|
1473 | <!ELEMENT invite-reply (DAV:href, |
---|
1474 | (invite-accepted | invite-declined), |
---|
1475 | hosturl, in-reply-to, summary?> |
---|
1476 | |
---|
1477 | 6.21. CS:in-reply-to |
---|
1478 | |
---|
1479 | Name: in-reply-to |
---|
1480 | |
---|
1481 | Namespace: http://calendarserver.org/ns/ |
---|
1482 | |
---|
1483 | Purpose: Unique identifier. |
---|
1484 | |
---|
1485 | Description: Specifies the unique identifier of the inviate message |
---|
1486 | that this notification message is a reply to. |
---|
1487 | |
---|
1488 | Definition: |
---|
1489 | |
---|
1490 | <!ELEMENT in-reply-to (#PCDATA)> |
---|
1491 | |
---|
1492 | 6.22. CS:notification |
---|
1493 | |
---|
1494 | Name: notification |
---|
1495 | |
---|
1496 | Namespace: http://calendarserver.org/ns/ |
---|
1497 | |
---|
1498 | Purpose: Notification message root element. |
---|
1499 | |
---|
1500 | Description: The root element used in notification resources. |
---|
1501 | |
---|
1502 | Definition: |
---|
1503 | |
---|
1504 | <!ELEMENT notification (CS:dtstamp, |
---|
1505 | (invite-notification | invite-reply)> |
---|
1506 | <!-- Any notification type element can appear after CS:dtstamp, |
---|
1507 | this specification defines only the two listed above --> |
---|
1508 | |
---|
1509 | |
---|
1510 | |
---|
1511 | Daboo & York [Page 27] |
---|
1512 | |
---|
1513 | CalDAV Sharing and Publishing October 2010 |
---|
1514 | |
---|
1515 | |
---|
1516 | 6.23. CS:dtstamp |
---|
1517 | |
---|
1518 | Name: dtstamp |
---|
1519 | |
---|
1520 | Namespace: http://calendarserver.org/ns/ |
---|
1521 | |
---|
1522 | Purpose: Date-time stamp. |
---|
1523 | |
---|
1524 | Description: Contains the date-time stamp corresponding to the |
---|
1525 | creation of a notification message. |
---|
1526 | |
---|
1527 | Definition: |
---|
1528 | |
---|
1529 | <!ELEMENT dtstamp (#PCDATA)> |
---|
1530 | |
---|
1531 | 6.24. CS:share |
---|
1532 | |
---|
1533 | Name: share |
---|
1534 | |
---|
1535 | Namespace: http://calendarserver.org/ns/ |
---|
1536 | |
---|
1537 | Purpose: Describes changes to sharees. |
---|
1538 | |
---|
1539 | Description: The root element used in POST requests on calendars by |
---|
1540 | sharers to manipulate the sharee list of a shared calendar. |
---|
1541 | |
---|
1542 | Definition: |
---|
1543 | |
---|
1544 | <!ELEMENT share (set | remove)*> |
---|
1545 | |
---|
1546 | 6.25. CS:set |
---|
1547 | |
---|
1548 | Name: set |
---|
1549 | |
---|
1550 | Namespace: http://calendarserver.org/ns/ |
---|
1551 | |
---|
1552 | Purpose: Sets access for a sharee. |
---|
1553 | |
---|
1554 | Description: Used to add or modify sharee access to a shared |
---|
1555 | calendar. The specified access to the shared calendar is given to |
---|
1556 | the sharee. |
---|
1557 | |
---|
1558 | Definition: |
---|
1559 | |
---|
1560 | <!ELEMENT set (DAV:href, common-name?, summary?, |
---|
1561 | (read | read-write)> |
---|
1562 | |
---|
1563 | |
---|
1564 | |
---|
1565 | |
---|
1566 | |
---|
1567 | Daboo & York [Page 28] |
---|
1568 | |
---|
1569 | CalDAV Sharing and Publishing October 2010 |
---|
1570 | |
---|
1571 | |
---|
1572 | 6.26. CS:remove |
---|
1573 | |
---|
1574 | Name: remove |
---|
1575 | |
---|
1576 | Namespace: http://calendarserver.org/ns/ |
---|
1577 | |
---|
1578 | Purpose: Removes access for a sharee. |
---|
1579 | |
---|
1580 | Description: Used to remove sharee access to a shared calendar. All |
---|
1581 | access to the shared calendar is removed for the sharee. |
---|
1582 | |
---|
1583 | Definition: |
---|
1584 | |
---|
1585 | <!ELEMENT remove (DAV:href)> |
---|
1586 | |
---|
1587 | 6.27. CS:shared-as |
---|
1588 | |
---|
1589 | Name: shared-as |
---|
1590 | |
---|
1591 | Namespace: http://calendarserver.org/ns/ |
---|
1592 | |
---|
1593 | Purpose: Identifies a shared calendar. |
---|
1594 | |
---|
1595 | Description: Returned by the server for a POST request by a sharee |
---|
1596 | accepting a shared calendar invite. The DAV:href element |
---|
1597 | specifies the URI of the calendar created by the acceptance. |
---|
1598 | |
---|
1599 | Definition: |
---|
1600 | |
---|
1601 | <!ELEMENT shared-as (DAV:href)> |
---|
1602 | |
---|
1603 | |
---|
1604 | 7. Security Considerations |
---|
1605 | |
---|
1606 | Per-user WebDAV properties and iCalendar data MUST only be accessible |
---|
1607 | by the user that created them. |
---|
1608 | |
---|
1609 | Alarms set by the sharer SHOULD NOT be propagated to sharees by |
---|
1610 | default. Clients SHOULD NOT automatically enable triggering of |
---|
1611 | alarms on shared calendars that have just been accepted without |
---|
1612 | confirmation by the user. |
---|
1613 | |
---|
1614 | TBD |
---|
1615 | |
---|
1616 | |
---|
1617 | 8. IANA Considerations |
---|
1618 | |
---|
1619 | This document does not require any actions on the part of IANA. |
---|
1620 | |
---|
1621 | |
---|
1622 | |
---|
1623 | Daboo & York [Page 29] |
---|
1624 | |
---|
1625 | CalDAV Sharing and Publishing October 2010 |
---|
1626 | |
---|
1627 | |
---|
1628 | 9. Acknowledgments |
---|
1629 | |
---|
1630 | This specification is the result of discussions between the Apple |
---|
1631 | calendar server and client teams. |
---|
1632 | |
---|
1633 | |
---|
1634 | 10. Normative References |
---|
1635 | |
---|
1636 | [I-D.desruisseaux-caldav-sched] |
---|
1637 | Daboo, C. and B. Desruisseaux, "CalDAV Scheduling |
---|
1638 | Extensions to WebDAV", draft-desruisseaux-caldav-sched-08 |
---|
1639 | (work in progress), August 2009. |
---|
1640 | |
---|
1641 | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate |
---|
1642 | Requirement Levels", BCP 14, RFC 2119, March 1997. |
---|
1643 | |
---|
1644 | [RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web |
---|
1645 | Distributed Authoring and Versioning (WebDAV) |
---|
1646 | Access Control Protocol", RFC 3744, May 2004. |
---|
1647 | |
---|
1648 | [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, |
---|
1649 | "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, |
---|
1650 | March 2007. |
---|
1651 | |
---|
1652 | [RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed |
---|
1653 | Authoring and Versioning (WebDAV)", RFC 4918, June 2007. |
---|
1654 | |
---|
1655 | [RFC5689] Daboo, C., "Extended MKCOL for Web Distributed Authoring |
---|
1656 | and Versioning (WebDAV)", RFC 5689, September 2009. |
---|
1657 | |
---|
1658 | |
---|
1659 | Appendix A. Change History |
---|
1660 | |
---|
1661 | Changes in -02: |
---|
1662 | |
---|
1663 | 1. Removed read-write-shared access mode - now a server that does |
---|
1664 | not support shared scheduling should advertise that via a DAV |
---|
1665 | header |
---|
1666 | |
---|
1667 | |
---|
1668 | Appendix B. Change History |
---|
1669 | |
---|
1670 | Changes in -01: |
---|
1671 | |
---|
1672 | 1. Added CS:shared-url property |
---|
1673 | |
---|
1674 | 2. Clarified that notifications are only required to be sent when |
---|
1675 | sharee status is changed |
---|
1676 | |
---|
1677 | |
---|
1678 | |
---|
1679 | Daboo & York [Page 30] |
---|
1680 | |
---|
1681 | CalDAV Sharing and Publishing October 2010 |
---|
1682 | |
---|
1683 | |
---|
1684 | Authors' Addresses |
---|
1685 | |
---|
1686 | Cyrus Daboo |
---|
1687 | Apple Inc. |
---|
1688 | 1 Infinite Loop |
---|
1689 | Cupertino, CA 95014 |
---|
1690 | USA |
---|
1691 | |
---|
1692 | Email: cyrus@daboo.name |
---|
1693 | URI: http://www.apple.com/ |
---|
1694 | |
---|
1695 | |
---|
1696 | Eric York |
---|
1697 | Apple Inc. |
---|
1698 | 1 Infinite Loop |
---|
1699 | Cupertino, CA 95014 |
---|
1700 | USA |
---|
1701 | |
---|
1702 | Email: |
---|
1703 | URI: http://www.apple.com/ |
---|
1704 | |
---|
1705 | |
---|
1706 | |
---|
1707 | |
---|
1708 | |
---|
1709 | |
---|
1710 | |
---|
1711 | |
---|
1712 | |
---|
1713 | |
---|
1714 | |
---|
1715 | |
---|
1716 | |
---|
1717 | |
---|
1718 | |
---|
1719 | |
---|
1720 | |
---|
1721 | |
---|
1722 | |
---|
1723 | |
---|
1724 | |
---|
1725 | |
---|
1726 | |
---|
1727 | |
---|
1728 | |
---|
1729 | |
---|
1730 | |
---|
1731 | |
---|
1732 | |
---|
1733 | |
---|
1734 | |
---|
1735 | Daboo & York [Page 31] |
---|
1736 | |
---|