Wiki source code of CalDAV and CardDAV handshake
Last modified by Pascal Robert on 2013/11/18 06:16
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | (% class="panelMacro" %) |
2 | ((( | ||
3 | |((( | ||
4 | [[image:url:http://www.macti.ca/wiki/images/icons/emoticons/information.png]] | ||
5 | )))|((( | ||
6 | The RFC that explains the handshake is [[now available>>url:http://tools.ietf.org/html/rfc6764||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]]. | ||
7 | ))) | ||
8 | |||
9 | |||
10 | ))) | ||
11 | |||
12 | (% style="color: rgb(34,34,34);" %) | ||
13 | |||
14 | |||
15 | (% style="color: rgb(34,34,34);" %)If you use iCal/Calendar on Mac OS X or iOS, you might have seen that you don't have to specify the type of server ("Automatic" is the default type). But to work, you need to setup DNS entries so that iCal/Calendar can find the server for the user, and your CalDAV server must support "well-known" URLs. "well-known" is supported by iCal Server (OS X Server 10.7 or 10.8), Calendar Server (the open source version of iCal Server) and Kerio Connect (starting with version 7.2). | ||
16 | |||
17 | (% style="color: rgb(34,34,34);" %)For DNS, I found how to do it in this [[article>>url:http://www.staze.org/carddav-caldav-autodiscovery-on-mac-os-x-and-ios/||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]]. In short, you need at least one SRV entry that will tell where your server is located. If your domain is "macti.lan", you need to add the following entry: | ||
18 | |||
19 | (% class="syntaxhighlighter nogutter html" %) | ||
20 | ((( | ||
21 | |||
22 | |||
23 | |((( | ||
24 | (% class="container" title="Hint: double-click to select code" %) | ||
25 | ((( | ||
26 | (% class="line number1 index0 alt2" %) | ||
27 | ((( | ||
28 | {{code language="none"}} | ||
29 | _caldavs._tcp.macti.lan. 10800 IN SRV 10 1 8443 server.macti.lan. | ||
30 | {{/code}} | ||
31 | ))) | ||
32 | ))) | ||
33 | ))) | ||
34 | |||
35 | |||
36 | ))) | ||
37 | |||
38 | (% style="color: rgb(34,34,34);" %)Where 8443 is the port on which your CalDAV server is running (8443 is the HTTPS port for iCal Server/Calendar Server, for Kerio Connect by default it's on port 443). server.macti.lan is the DNS name of the host running the CalDAV service. | ||
39 | |||
40 | (% style="color: rgb(34,34,34);" %)You will notice that the DNS entry is _caldav**s**_. If your CalDAV server is running on a non-protected port, or if it's available on both ports, you should add a DNS entry like this: | ||
41 | |||
42 | (% class="syntaxhighlighter nogutter html" %) | ||
43 | ((( | ||
44 | |||
45 | |||
46 | |((( | ||
47 | (% class="container" title="Hint: double-click to select code" %) | ||
48 | ((( | ||
49 | (% class="line number1 index0 alt2" %) | ||
50 | ((( | ||
51 | {{code language="none"}} | ||
52 | _caldav._tcp.macti.lan. 10800 IN SRV 10 1 8008 server.macti.lan. | ||
53 | {{/code}} | ||
54 | ))) | ||
55 | ))) | ||
56 | ))) | ||
57 | |||
58 | |||
59 | ))) | ||
60 | |||
61 | (% style="color: rgb(34,34,34);" %)Notice that the 's' is missing in the DNS entry. If you have both entries, iCal/Calendar will try the secure entry first, and it's not working, it will try the non-secure entry after. | ||
62 | |||
63 | (% style="color: rgb(34,34,34);" %)If you have a iCloud account with a @me.com, a SRV entry do exist: | ||
64 | |||
65 | (% class="syntaxhighlighter nogutter html" %) | ||
66 | ((( | ||
67 | |||
68 | |||
69 | |((( | ||
70 | (% class="container" title="Hint: double-click to select code" %) | ||
71 | ((( | ||
72 | (% class="line number1 index0 alt2" %) | ||
73 | ((( | ||
74 | {{code language="none"}} | ||
75 | $ dig _caldavs._tcp.me.com srv | ||
76 | {{/code}} | ||
77 | ))) | ||
78 | |||
79 | (% class="line number2 index1 alt1" %) | ||
80 | ((( | ||
81 | {{code language="none"}} | ||
82 | _caldavs._tcp.me.com. 3600 IN SRV 0 0 443 caldav.icloud.com. | ||
83 | {{/code}} | ||
84 | ))) | ||
85 | ))) | ||
86 | ))) | ||
87 | |||
88 | |||
89 | ))) | ||
90 | |||
91 | Once the DNS entry is found, the CalDAV client will take the value off the SRV record and do the following: | ||
92 | |||
93 | * ((( | ||
94 | Do a PROPFIND (WebDAV method) request on [[https:~~/~~/server.macti.lan:443/.well-known/caldav>>url:https://server.macti.lan/.well-known/caldav||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]] (or port 80 if the SRV record wasn't specifying https) with the following body:(% style="color: rgb(34,34,34);" %) | ||
95 | |||
96 | |||
97 | (% class="syntaxhighlighter nogutter html" %) | ||
98 | ((( | ||
99 | |||
100 | |||
101 | |((( | ||
102 | (% class="container" title="Hint: double-click to select code" %) | ||
103 | ((( | ||
104 | (% class="line number1 index0 alt2" %) | ||
105 | ((( | ||
106 | {{code language="none"}} | ||
107 | <? | ||
108 | {{/code}} | ||
109 | |||
110 | {{code language="none"}} | ||
111 | xml | ||
112 | {{/code}} | ||
113 | |||
114 | |||
115 | |||
116 | {{code language="none"}} | ||
117 | version | ||
118 | {{/code}} | ||
119 | |||
120 | {{code language="none"}} | ||
121 | = | ||
122 | {{/code}} | ||
123 | |||
124 | {{code language="none"}} | ||
125 | "1.0" | ||
126 | {{/code}} | ||
127 | |||
128 | |||
129 | |||
130 | {{code language="none"}} | ||
131 | encoding | ||
132 | {{/code}} | ||
133 | |||
134 | {{code language="none"}} | ||
135 | = | ||
136 | {{/code}} | ||
137 | |||
138 | {{code language="none"}} | ||
139 | "UTF-8" | ||
140 | {{/code}} | ||
141 | |||
142 | {{code language="none"}} | ||
143 | ?> | ||
144 | {{/code}} | ||
145 | ))) | ||
146 | |||
147 | (% class="line number2 index1 alt1" %) | ||
148 | ((( | ||
149 | {{code language="none"}} | ||
150 | < | ||
151 | {{/code}} | ||
152 | |||
153 | {{code language="none"}} | ||
154 | A:propfind | ||
155 | {{/code}} | ||
156 | |||
157 | |||
158 | |||
159 | {{code language="none"}} | ||
160 | xmlns:A | ||
161 | {{/code}} | ||
162 | |||
163 | {{code language="none"}} | ||
164 | = | ||
165 | {{/code}} | ||
166 | |||
167 | {{code language="none"}} | ||
168 | "DAV:" | ||
169 | {{/code}} | ||
170 | |||
171 | {{code language="none"}} | ||
172 | > | ||
173 | {{/code}} | ||
174 | ))) | ||
175 | |||
176 | (% class="line number3 index2 alt2" %) | ||
177 | ((( | ||
178 | {{code language="none"}} | ||
179 | |||
180 | {{/code}} | ||
181 | |||
182 | {{code language="none"}} | ||
183 | < | ||
184 | {{/code}} | ||
185 | |||
186 | {{code language="none"}} | ||
187 | A:prop | ||
188 | {{/code}} | ||
189 | |||
190 | {{code language="none"}} | ||
191 | > | ||
192 | {{/code}} | ||
193 | ))) | ||
194 | |||
195 | (% class="line number4 index3 alt1" %) | ||
196 | ((( | ||
197 | {{code language="none"}} | ||
198 | |||
199 | {{/code}} | ||
200 | |||
201 | {{code language="none"}} | ||
202 | < | ||
203 | {{/code}} | ||
204 | |||
205 | {{code language="none"}} | ||
206 | A:current-user-principal | ||
207 | {{/code}} | ||
208 | |||
209 | {{code language="none"}} | ||
210 | /> | ||
211 | {{/code}} | ||
212 | ))) | ||
213 | |||
214 | (% class="line number5 index4 alt2" %) | ||
215 | ((( | ||
216 | {{code language="none"}} | ||
217 | |||
218 | {{/code}} | ||
219 | |||
220 | {{code language="none"}} | ||
221 | < | ||
222 | {{/code}} | ||
223 | |||
224 | {{code language="none"}} | ||
225 | A:principal-URL | ||
226 | {{/code}} | ||
227 | |||
228 | {{code language="none"}} | ||
229 | /> | ||
230 | {{/code}} | ||
231 | ))) | ||
232 | |||
233 | (% class="line number6 index5 alt1" %) | ||
234 | ((( | ||
235 | {{code language="none"}} | ||
236 | |||
237 | {{/code}} | ||
238 | |||
239 | {{code language="none"}} | ||
240 | < | ||
241 | {{/code}} | ||
242 | |||
243 | {{code language="none"}} | ||
244 | A:resourcetype | ||
245 | {{/code}} | ||
246 | |||
247 | {{code language="none"}} | ||
248 | /> | ||
249 | {{/code}} | ||
250 | ))) | ||
251 | |||
252 | (% class="line number7 index6 alt2" %) | ||
253 | ((( | ||
254 | {{code language="none"}} | ||
255 | |||
256 | {{/code}} | ||
257 | |||
258 | {{code language="none"}} | ||
259 | </ | ||
260 | {{/code}} | ||
261 | |||
262 | {{code language="none"}} | ||
263 | A:prop | ||
264 | {{/code}} | ||
265 | |||
266 | {{code language="none"}} | ||
267 | > | ||
268 | {{/code}} | ||
269 | ))) | ||
270 | |||
271 | (% class="line number8 index7 alt1" %) | ||
272 | ((( | ||
273 | {{code language="none"}} | ||
274 | </ | ||
275 | {{/code}} | ||
276 | |||
277 | {{code language="none"}} | ||
278 | A:propfind | ||
279 | {{/code}} | ||
280 | |||
281 | {{code language="none"}} | ||
282 | > | ||
283 | {{/code}} | ||
284 | ))) | ||
285 | ))) | ||
286 | ))) | ||
287 | ))) | ||
288 | ))) | ||
289 | * If nothing was found on port 443 or port 80, it will do the same request on port 8443 or 8008. | ||
290 | * If nothing was found on port 8443 or 8008, it will then use use the host and port from the SRV record. | ||
291 | |||
292 | (% style="color: rgb(34,34,34);" %)The response from /.well-known/caldav might be a redirect (HTTP status code 301 or 302). In fact, that's what iCal Server 10.8 does, it redirect the request to [[http:~~/~~/server.macti.lan:8008/>>url:http://server.macti.lan:8008/||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]]. So again, iCal will do the same request as before until it gets a 207 status code instead of a redirect. The response will look like this: | ||
293 | |||
294 | (% class="syntaxhighlighter nogutter html" %) | ||
295 | ((( | ||
296 | |||
297 | |||
298 | |((( | ||
299 | (% class="container" title="Hint: double-click to select code" %) | ||
300 | ((( | ||
301 | (% class="line number1 index0 alt2" %) | ||
302 | ((( | ||
303 | {{code language="none"}} | ||
304 | <? | ||
305 | {{/code}} | ||
306 | |||
307 | {{code language="none"}} | ||
308 | xml | ||
309 | {{/code}} | ||
310 | |||
311 | |||
312 | |||
313 | {{code language="none"}} | ||
314 | version | ||
315 | {{/code}} | ||
316 | |||
317 | {{code language="none"}} | ||
318 | = | ||
319 | {{/code}} | ||
320 | |||
321 | {{code language="none"}} | ||
322 | '1.0' | ||
323 | {{/code}} | ||
324 | |||
325 | |||
326 | |||
327 | {{code language="none"}} | ||
328 | encoding | ||
329 | {{/code}} | ||
330 | |||
331 | {{code language="none"}} | ||
332 | = | ||
333 | {{/code}} | ||
334 | |||
335 | {{code language="none"}} | ||
336 | 'UTF-8' | ||
337 | {{/code}} | ||
338 | |||
339 | {{code language="none"}} | ||
340 | ?> | ||
341 | {{/code}} | ||
342 | ))) | ||
343 | |||
344 | (% class="line number2 index1 alt1" %) | ||
345 | ((( | ||
346 | {{code language="none"}} | ||
347 | < | ||
348 | {{/code}} | ||
349 | |||
350 | {{code language="none"}} | ||
351 | multistatus | ||
352 | {{/code}} | ||
353 | |||
354 | |||
355 | |||
356 | {{code language="none"}} | ||
357 | xmlns | ||
358 | {{/code}} | ||
359 | |||
360 | {{code language="none"}} | ||
361 | = | ||
362 | {{/code}} | ||
363 | |||
364 | {{code language="none"}} | ||
365 | 'DAV:' | ||
366 | {{/code}} | ||
367 | |||
368 | {{code language="none"}} | ||
369 | > | ||
370 | {{/code}} | ||
371 | ))) | ||
372 | |||
373 | (% class="line number3 index2 alt2" %) | ||
374 | ((( | ||
375 | {{code language="none"}} | ||
376 | |||
377 | {{/code}} | ||
378 | |||
379 | {{code language="none"}} | ||
380 | < | ||
381 | {{/code}} | ||
382 | |||
383 | {{code language="none"}} | ||
384 | response | ||
385 | {{/code}} | ||
386 | |||
387 | {{code language="none"}} | ||
388 | > | ||
389 | {{/code}} | ||
390 | ))) | ||
391 | |||
392 | (% class="line number4 index3 alt1" %) | ||
393 | ((( | ||
394 | {{code language="none"}} | ||
395 | |||
396 | {{/code}} | ||
397 | |||
398 | {{code language="none"}} | ||
399 | < | ||
400 | {{/code}} | ||
401 | |||
402 | {{code language="none"}} | ||
403 | href | ||
404 | {{/code}} | ||
405 | |||
406 | {{code language="none"}} | ||
407 | >/</ | ||
408 | {{/code}} | ||
409 | |||
410 | {{code language="none"}} | ||
411 | href | ||
412 | {{/code}} | ||
413 | |||
414 | {{code language="none"}} | ||
415 | > | ||
416 | {{/code}} | ||
417 | ))) | ||
418 | |||
419 | (% class="line number5 index4 alt2" %) | ||
420 | ((( | ||
421 | {{code language="none"}} | ||
422 | |||
423 | {{/code}} | ||
424 | |||
425 | {{code language="none"}} | ||
426 | < | ||
427 | {{/code}} | ||
428 | |||
429 | {{code language="none"}} | ||
430 | propstat | ||
431 | {{/code}} | ||
432 | |||
433 | {{code language="none"}} | ||
434 | > | ||
435 | {{/code}} | ||
436 | ))) | ||
437 | |||
438 | (% class="line number6 index5 alt1" %) | ||
439 | ((( | ||
440 | {{code language="none"}} | ||
441 | |||
442 | {{/code}} | ||
443 | |||
444 | {{code language="none"}} | ||
445 | < | ||
446 | {{/code}} | ||
447 | |||
448 | {{code language="none"}} | ||
449 | prop | ||
450 | {{/code}} | ||
451 | |||
452 | {{code language="none"}} | ||
453 | > | ||
454 | {{/code}} | ||
455 | ))) | ||
456 | |||
457 | (% class="line number7 index6 alt2" %) | ||
458 | ((( | ||
459 | {{code language="none"}} | ||
460 | |||
461 | {{/code}} | ||
462 | |||
463 | {{code language="none"}} | ||
464 | < | ||
465 | {{/code}} | ||
466 | |||
467 | {{code language="none"}} | ||
468 | current-user-principal | ||
469 | {{/code}} | ||
470 | |||
471 | {{code language="none"}} | ||
472 | > | ||
473 | {{/code}} | ||
474 | ))) | ||
475 | |||
476 | (% class="line number8 index7 alt1" %) | ||
477 | ((( | ||
478 | {{code language="none"}} | ||
479 | |||
480 | {{/code}} | ||
481 | |||
482 | {{code language="none"}} | ||
483 | < | ||
484 | {{/code}} | ||
485 | |||
486 | {{code language="none"}} | ||
487 | href | ||
488 | {{/code}} | ||
489 | |||
490 | {{code language="none"}} | ||
491 | >/principals/__uids__/C0F07FAF-A20A-4A88-A518-D27E5D3074CA/</ | ||
492 | {{/code}} | ||
493 | |||
494 | {{code language="none"}} | ||
495 | href | ||
496 | {{/code}} | ||
497 | |||
498 | {{code language="none"}} | ||
499 | > | ||
500 | {{/code}} | ||
501 | ))) | ||
502 | |||
503 | (% class="line number9 index8 alt2" %) | ||
504 | ((( | ||
505 | {{code language="none"}} | ||
506 | |||
507 | {{/code}} | ||
508 | |||
509 | {{code language="none"}} | ||
510 | </ | ||
511 | {{/code}} | ||
512 | |||
513 | {{code language="none"}} | ||
514 | current-user-principal | ||
515 | {{/code}} | ||
516 | |||
517 | {{code language="none"}} | ||
518 | > | ||
519 | {{/code}} | ||
520 | ))) | ||
521 | |||
522 | (% class="line number10 index9 alt1" %) | ||
523 | ((( | ||
524 | {{code language="none"}} | ||
525 | |||
526 | {{/code}} | ||
527 | |||
528 | {{code language="none"}} | ||
529 | < | ||
530 | {{/code}} | ||
531 | |||
532 | {{code language="none"}} | ||
533 | resourcetype | ||
534 | {{/code}} | ||
535 | |||
536 | {{code language="none"}} | ||
537 | > | ||
538 | {{/code}} | ||
539 | ))) | ||
540 | |||
541 | (% class="line number11 index10 alt2" %) | ||
542 | ((( | ||
543 | {{code language="none"}} | ||
544 | |||
545 | {{/code}} | ||
546 | |||
547 | {{code language="none"}} | ||
548 | < | ||
549 | {{/code}} | ||
550 | |||
551 | {{code language="none"}} | ||
552 | collection | ||
553 | {{/code}} | ||
554 | |||
555 | {{code language="none"}} | ||
556 | /> | ||
557 | {{/code}} | ||
558 | ))) | ||
559 | |||
560 | (% class="line number12 index11 alt1" %) | ||
561 | ((( | ||
562 | {{code language="none"}} | ||
563 | |||
564 | {{/code}} | ||
565 | |||
566 | {{code language="none"}} | ||
567 | </ | ||
568 | {{/code}} | ||
569 | |||
570 | {{code language="none"}} | ||
571 | resourcetype | ||
572 | {{/code}} | ||
573 | |||
574 | {{code language="none"}} | ||
575 | > | ||
576 | {{/code}} | ||
577 | ))) | ||
578 | |||
579 | (% class="line number13 index12 alt2" %) | ||
580 | ((( | ||
581 | {{code language="none"}} | ||
582 | |||
583 | {{/code}} | ||
584 | |||
585 | {{code language="none"}} | ||
586 | </ | ||
587 | {{/code}} | ||
588 | |||
589 | {{code language="none"}} | ||
590 | prop | ||
591 | {{/code}} | ||
592 | |||
593 | {{code language="none"}} | ||
594 | > | ||
595 | {{/code}} | ||
596 | ))) | ||
597 | |||
598 | (% class="line number14 index13 alt1" %) | ||
599 | ((( | ||
600 | {{code language="none"}} | ||
601 | |||
602 | {{/code}} | ||
603 | |||
604 | {{code language="none"}} | ||
605 | < | ||
606 | {{/code}} | ||
607 | |||
608 | {{code language="none"}} | ||
609 | status | ||
610 | {{/code}} | ||
611 | |||
612 | {{code language="none"}} | ||
613 | >HTTP/1.1 200 OK</ | ||
614 | {{/code}} | ||
615 | |||
616 | {{code language="none"}} | ||
617 | status | ||
618 | {{/code}} | ||
619 | |||
620 | {{code language="none"}} | ||
621 | > | ||
622 | {{/code}} | ||
623 | ))) | ||
624 | |||
625 | (% class="line number15 index14 alt2" %) | ||
626 | ((( | ||
627 | {{code language="none"}} | ||
628 | |||
629 | {{/code}} | ||
630 | |||
631 | {{code language="none"}} | ||
632 | </ | ||
633 | {{/code}} | ||
634 | |||
635 | {{code language="none"}} | ||
636 | propstat | ||
637 | {{/code}} | ||
638 | |||
639 | {{code language="none"}} | ||
640 | > | ||
641 | {{/code}} | ||
642 | ))) | ||
643 | |||
644 | (% class="line number16 index15 alt1" %) | ||
645 | ((( | ||
646 | {{code language="none"}} | ||
647 | |||
648 | {{/code}} | ||
649 | |||
650 | {{code language="none"}} | ||
651 | </ | ||
652 | {{/code}} | ||
653 | |||
654 | {{code language="none"}} | ||
655 | response | ||
656 | {{/code}} | ||
657 | |||
658 | {{code language="none"}} | ||
659 | > | ||
660 | {{/code}} | ||
661 | ))) | ||
662 | |||
663 | (% class="line number17 index16 alt2" %) | ||
664 | ((( | ||
665 | {{code language="none"}} | ||
666 | </ | ||
667 | {{/code}} | ||
668 | |||
669 | {{code language="none"}} | ||
670 | multistatus | ||
671 | {{/code}} | ||
672 | |||
673 | {{code language="none"}} | ||
674 | > | ||
675 | {{/code}} | ||
676 | ))) | ||
677 | ))) | ||
678 | ))) | ||
679 | |||
680 | |||
681 | ))) | ||
682 | |||
683 | (% style="color: rgb(34,34,34);" %)The value we need is the value of (%%)[[current-user-principal>>url:http://tools.ietf.org/html/rfc5397#section-3||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]](% style="color: rgb(34,34,34);" %), which indicates the location of the user's "principals". With this value, iCal will make a OPTIONS request to /principals/~_~_uids~_~_/C0F07FAF-A20A-4A88-A518-D27E5D3074CA/. I don't know why iCal is making the request, but my guess it's doing it so that it can find which CalDAV features are supported by the CalDAV server. That list is available in the response's DAV header: | ||
684 | |||
685 | (% class="syntaxhighlighter nogutter html" %) | ||
686 | ((( | ||
687 | |||
688 | |||
689 | |((( | ||
690 | (% class="container" title="Hint: double-click to select code" %) | ||
691 | ((( | ||
692 | (% class="line number1 index0 alt2" %) | ||
693 | ((( | ||
694 | {{code language="none"}} | ||
695 | DAV: 1, access-control, calendar-access, calendar-schedule, calendar-auto-schedule, calendar-availability, inbox-availability, calendar-proxy, calendarserver-private-events, calendarserver-private-comments, calendarserver-sharing, calendarserver-sharing-no-scheduling, calendar-query-extended, calendar-default-alarms, addressbook, extended-mkcol, calendarserver-principal-property-search | ||
696 | {{/code}} | ||
697 | ))) | ||
698 | ))) | ||
699 | ))) | ||
700 | |||
701 | |||
702 | ))) | ||
703 | |||
704 | (% style="color: rgb(34,34,34);" %)This is a response from iCal Server 10.8, which supports all CalDAV features and extensions. Doing the same request to a Google Calendar server will return a lot less features/extensions. | ||
705 | |||
706 | (% style="color: rgb(34,34,34);" %)Following the OPTIONS request, iCal will make a PROPFIND request on the same URL as the OPTIONS request, with the following body: | ||
707 | |||
708 | (% class="syntaxhighlighter nogutter html" %) | ||
709 | ((( | ||
710 | |||
711 | |||
712 | |((( | ||
713 | (% class="container" title="Hint: double-click to select code" %) | ||
714 | ((( | ||
715 | (% class="line number1 index0 alt2" %) | ||
716 | ((( | ||
717 | {{code language="none"}} | ||
718 | <? | ||
719 | {{/code}} | ||
720 | |||
721 | {{code language="none"}} | ||
722 | xml | ||
723 | {{/code}} | ||
724 | |||
725 | |||
726 | |||
727 | {{code language="none"}} | ||
728 | version | ||
729 | {{/code}} | ||
730 | |||
731 | {{code language="none"}} | ||
732 | = | ||
733 | {{/code}} | ||
734 | |||
735 | {{code language="none"}} | ||
736 | "1.0" | ||
737 | {{/code}} | ||
738 | |||
739 | |||
740 | |||
741 | {{code language="none"}} | ||
742 | encoding | ||
743 | {{/code}} | ||
744 | |||
745 | {{code language="none"}} | ||
746 | = | ||
747 | {{/code}} | ||
748 | |||
749 | {{code language="none"}} | ||
750 | "UTF-8" | ||
751 | {{/code}} | ||
752 | |||
753 | {{code language="none"}} | ||
754 | ?> | ||
755 | {{/code}} | ||
756 | ))) | ||
757 | |||
758 | (% class="line number2 index1 alt1" %) | ||
759 | ((( | ||
760 | {{code language="none"}} | ||
761 | < | ||
762 | {{/code}} | ||
763 | |||
764 | {{code language="none"}} | ||
765 | A:propfind | ||
766 | {{/code}} | ||
767 | |||
768 | |||
769 | |||
770 | {{code language="none"}} | ||
771 | xmlns:A | ||
772 | {{/code}} | ||
773 | |||
774 | {{code language="none"}} | ||
775 | = | ||
776 | {{/code}} | ||
777 | |||
778 | {{code language="none"}} | ||
779 | "DAV:" | ||
780 | {{/code}} | ||
781 | |||
782 | {{code language="none"}} | ||
783 | > | ||
784 | {{/code}} | ||
785 | ))) | ||
786 | |||
787 | (% class="line number3 index2 alt2" %) | ||
788 | ((( | ||
789 | {{code language="none"}} | ||
790 | |||
791 | {{/code}} | ||
792 | |||
793 | {{code language="none"}} | ||
794 | < | ||
795 | {{/code}} | ||
796 | |||
797 | {{code language="none"}} | ||
798 | A:prop | ||
799 | {{/code}} | ||
800 | |||
801 | {{code language="none"}} | ||
802 | > | ||
803 | {{/code}} | ||
804 | ))) | ||
805 | |||
806 | (% class="line number4 index3 alt1" %) | ||
807 | ((( | ||
808 | {{code language="none"}} | ||
809 | |||
810 | {{/code}} | ||
811 | |||
812 | {{code language="none"}} | ||
813 | < | ||
814 | {{/code}} | ||
815 | |||
816 | {{code language="none"}} | ||
817 | C:calendar-home-set | ||
818 | {{/code}} | ||
819 | |||
820 | |||
821 | |||
822 | {{code language="none"}} | ||
823 | xmlns:C | ||
824 | {{/code}} | ||
825 | |||
826 | {{code language="none"}} | ||
827 | = | ||
828 | {{/code}} | ||
829 | |||
830 | [[urn:ietf:params:xml:ns:caldav>>url:http://urnietfparamsxml:ns:caldav||shape="rect"]] | ||
831 | |||
832 | {{code language="none"}} | ||
833 | "" | ||
834 | {{/code}} | ||
835 | |||
836 | {{code language="none"}} | ||
837 | /> | ||
838 | {{/code}} | ||
839 | ))) | ||
840 | |||
841 | (% class="line number5 index4 alt2" %) | ||
842 | ((( | ||
843 | {{code language="none"}} | ||
844 | |||
845 | {{/code}} | ||
846 | |||
847 | {{code language="none"}} | ||
848 | < | ||
849 | {{/code}} | ||
850 | |||
851 | {{code language="none"}} | ||
852 | C:calendar-user-address-set | ||
853 | {{/code}} | ||
854 | |||
855 | |||
856 | |||
857 | {{code language="none"}} | ||
858 | xmlns:C | ||
859 | {{/code}} | ||
860 | |||
861 | {{code language="none"}} | ||
862 | = | ||
863 | {{/code}} | ||
864 | |||
865 | [[urn:ietf:params:xml:ns:caldav>>url:http://urnietfparamsxml:ns:caldav||shape="rect"]] | ||
866 | |||
867 | {{code language="none"}} | ||
868 | "" | ||
869 | {{/code}} | ||
870 | |||
871 | {{code language="none"}} | ||
872 | /> | ||
873 | {{/code}} | ||
874 | ))) | ||
875 | |||
876 | (% class="line number6 index5 alt1" %) | ||
877 | ((( | ||
878 | {{code language="none"}} | ||
879 | |||
880 | {{/code}} | ||
881 | |||
882 | {{code language="none"}} | ||
883 | < | ||
884 | {{/code}} | ||
885 | |||
886 | {{code language="none"}} | ||
887 | A:current-user-principal | ||
888 | {{/code}} | ||
889 | |||
890 | {{code language="none"}} | ||
891 | /> | ||
892 | {{/code}} | ||
893 | ))) | ||
894 | |||
895 | (% class="line number7 index6 alt2" %) | ||
896 | ((( | ||
897 | {{code language="none"}} | ||
898 | |||
899 | {{/code}} | ||
900 | |||
901 | {{code language="none"}} | ||
902 | < | ||
903 | {{/code}} | ||
904 | |||
905 | {{code language="none"}} | ||
906 | A:displayname | ||
907 | {{/code}} | ||
908 | |||
909 | {{code language="none"}} | ||
910 | /> | ||
911 | {{/code}} | ||
912 | ))) | ||
913 | |||
914 | (% class="line number8 index7 alt1" %) | ||
915 | ((( | ||
916 | {{code language="none"}} | ||
917 | |||
918 | {{/code}} | ||
919 | |||
920 | {{code language="none"}} | ||
921 | < | ||
922 | {{/code}} | ||
923 | |||
924 | {{code language="none"}} | ||
925 | B:dropbox-home-URL | ||
926 | {{/code}} | ||
927 | |||
928 | |||
929 | |||
930 | {{code language="none"}} | ||
931 | xmlns:B | ||
932 | {{/code}} | ||
933 | |||
934 | {{code language="none"}} | ||
935 | = | ||
936 | {{/code}} | ||
937 | |||
938 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
939 | |||
940 | {{code language="none"}} | ||
941 | " | ||
942 | {{/code}} | ||
943 | |||
944 | {{code language="none"}} | ||
945 | /> | ||
946 | {{/code}} | ||
947 | ))) | ||
948 | |||
949 | (% class="line number9 index8 alt2" %) | ||
950 | ((( | ||
951 | {{code language="none"}} | ||
952 | |||
953 | {{/code}} | ||
954 | |||
955 | {{code language="none"}} | ||
956 | < | ||
957 | {{/code}} | ||
958 | |||
959 | {{code language="none"}} | ||
960 | B:email-address-set | ||
961 | {{/code}} | ||
962 | |||
963 | |||
964 | |||
965 | {{code language="none"}} | ||
966 | xmlns:B | ||
967 | {{/code}} | ||
968 | |||
969 | {{code language="none"}} | ||
970 | = | ||
971 | {{/code}} | ||
972 | |||
973 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
974 | |||
975 | {{code language="none"}} | ||
976 | " | ||
977 | {{/code}} | ||
978 | |||
979 | {{code language="none"}} | ||
980 | /> | ||
981 | {{/code}} | ||
982 | ))) | ||
983 | |||
984 | (% class="line number10 index9 alt1" %) | ||
985 | ((( | ||
986 | {{code language="none"}} | ||
987 | |||
988 | {{/code}} | ||
989 | |||
990 | {{code language="none"}} | ||
991 | < | ||
992 | {{/code}} | ||
993 | |||
994 | {{code language="none"}} | ||
995 | B:notification-URL | ||
996 | {{/code}} | ||
997 | |||
998 | |||
999 | |||
1000 | {{code language="none"}} | ||
1001 | xmlns:B | ||
1002 | {{/code}} | ||
1003 | |||
1004 | {{code language="none"}} | ||
1005 | = | ||
1006 | {{/code}} | ||
1007 | |||
1008 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
1009 | |||
1010 | {{code language="none"}} | ||
1011 | " | ||
1012 | {{/code}} | ||
1013 | |||
1014 | {{code language="none"}} | ||
1015 | /> | ||
1016 | {{/code}} | ||
1017 | ))) | ||
1018 | |||
1019 | (% class="line number11 index10 alt2" %) | ||
1020 | ((( | ||
1021 | {{code language="none"}} | ||
1022 | |||
1023 | {{/code}} | ||
1024 | |||
1025 | {{code language="none"}} | ||
1026 | < | ||
1027 | {{/code}} | ||
1028 | |||
1029 | {{code language="none"}} | ||
1030 | A:principal-collection-set | ||
1031 | {{/code}} | ||
1032 | |||
1033 | {{code language="none"}} | ||
1034 | /> | ||
1035 | {{/code}} | ||
1036 | ))) | ||
1037 | |||
1038 | (% class="line number12 index11 alt1" %) | ||
1039 | ((( | ||
1040 | {{code language="none"}} | ||
1041 | |||
1042 | {{/code}} | ||
1043 | |||
1044 | {{code language="none"}} | ||
1045 | < | ||
1046 | {{/code}} | ||
1047 | |||
1048 | {{code language="none"}} | ||
1049 | A:principal-URL | ||
1050 | {{/code}} | ||
1051 | |||
1052 | {{code language="none"}} | ||
1053 | /> | ||
1054 | {{/code}} | ||
1055 | ))) | ||
1056 | |||
1057 | (% class="line number13 index12 alt2" %) | ||
1058 | ((( | ||
1059 | {{code language="none"}} | ||
1060 | |||
1061 | {{/code}} | ||
1062 | |||
1063 | {{code language="none"}} | ||
1064 | < | ||
1065 | {{/code}} | ||
1066 | |||
1067 | {{code language="none"}} | ||
1068 | A:resource-id | ||
1069 | {{/code}} | ||
1070 | |||
1071 | {{code language="none"}} | ||
1072 | /> | ||
1073 | {{/code}} | ||
1074 | ))) | ||
1075 | |||
1076 | (% class="line number14 index13 alt1" %) | ||
1077 | ((( | ||
1078 | {{code language="none"}} | ||
1079 | |||
1080 | {{/code}} | ||
1081 | |||
1082 | {{code language="none"}} | ||
1083 | < | ||
1084 | {{/code}} | ||
1085 | |||
1086 | {{code language="none"}} | ||
1087 | C:schedule-inbox-URL | ||
1088 | {{/code}} | ||
1089 | |||
1090 | |||
1091 | |||
1092 | {{code language="none"}} | ||
1093 | xmlns:C | ||
1094 | {{/code}} | ||
1095 | |||
1096 | {{code language="none"}} | ||
1097 | = | ||
1098 | {{/code}} | ||
1099 | |||
1100 | [[urn:ietf:params:xml:ns:caldav>>url:http://urnietfparamsxml:ns:caldav||shape="rect"]] | ||
1101 | |||
1102 | {{code language="none"}} | ||
1103 | "" | ||
1104 | {{/code}} | ||
1105 | |||
1106 | {{code language="none"}} | ||
1107 | /> | ||
1108 | {{/code}} | ||
1109 | ))) | ||
1110 | |||
1111 | (% class="line number15 index14 alt2" %) | ||
1112 | ((( | ||
1113 | {{code language="none"}} | ||
1114 | |||
1115 | {{/code}} | ||
1116 | |||
1117 | {{code language="none"}} | ||
1118 | <C:schedule-outbox-URL | ||
1119 | {{/code}} | ||
1120 | |||
1121 | {{code language="none"}} | ||
1122 | xmlns:C | ||
1123 | {{/code}} | ||
1124 | |||
1125 | {{code language="none"}} | ||
1126 | = | ||
1127 | {{/code}} | ||
1128 | |||
1129 | [[urn:ietf:params:xml:ns:caldav>>url:http://urnietfparamsxml:ns:caldav||shape="rect"]] | ||
1130 | |||
1131 | {{code language="none"}} | ||
1132 | "" | ||
1133 | {{/code}} | ||
1134 | |||
1135 | {{code language="none"}} | ||
1136 | /> < | ||
1137 | {{/code}} | ||
1138 | |||
1139 | {{code language="none"}} | ||
1140 | A:supported-report-set | ||
1141 | {{/code}} | ||
1142 | |||
1143 | {{code language="none"}} | ||
1144 | /> | ||
1145 | {{/code}} | ||
1146 | ))) | ||
1147 | |||
1148 | (% class="line number16 index15 alt1" %) | ||
1149 | ((( | ||
1150 | {{code language="none"}} | ||
1151 | |||
1152 | {{/code}} | ||
1153 | |||
1154 | {{code language="none"}} | ||
1155 | </ | ||
1156 | {{/code}} | ||
1157 | |||
1158 | {{code language="none"}} | ||
1159 | A:prop | ||
1160 | {{/code}} | ||
1161 | |||
1162 | {{code language="none"}} | ||
1163 | > | ||
1164 | {{/code}} | ||
1165 | ))) | ||
1166 | |||
1167 | (% class="line number17 index16 alt2" %) | ||
1168 | ((( | ||
1169 | {{code language="none"}} | ||
1170 | </ | ||
1171 | {{/code}} | ||
1172 | |||
1173 | {{code language="none"}} | ||
1174 | A:propfind | ||
1175 | {{/code}} | ||
1176 | |||
1177 | {{code language="none"}} | ||
1178 | > | ||
1179 | {{/code}} | ||
1180 | ))) | ||
1181 | ))) | ||
1182 | ))) | ||
1183 | |||
1184 | |||
1185 | ))) | ||
1186 | |||
1187 | (% style="color: rgb(34,34,34);" %)The value that we need back from this request is the value of the (%%)[[calendar-home-set>>url:http://tools.ietf.org/html/rfc4791#section-6.2.1||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]](% style="color: rgb(34,34,34);" %) property. This property is the URL to calendar collections. So iCal can finally found where the calendars are, and it will do a PROPFIND request to the URL found with the value of calendar-home-set. The body of that PROPFIND request is quite large so I'm not going to past it here, but in short, that PROPFIND will find the request properties for each sub-collections in the main calendar collection. For example, if the main collection is located at: | ||
1188 | |||
1189 | (% class="syntaxhighlighter nogutter java" %) | ||
1190 | ((( | ||
1191 | |||
1192 | |||
1193 | |((( | ||
1194 | (% class="container" title="Hint: double-click to select code" %) | ||
1195 | ((( | ||
1196 | (% class="line number1 index0 alt2" %) | ||
1197 | ((( | ||
1198 | {{code language="none"}} | ||
1199 | /calendars/__uids__/0B9B4FA7-8ADC- | ||
1200 | {{/code}} | ||
1201 | |||
1202 | {{code language="none"}} | ||
1203 | 4984 | ||
1204 | {{/code}} | ||
1205 | |||
1206 | {{code language="none"}} | ||
1207 | - | ||
1208 | {{/code}} | ||
1209 | |||
1210 | {{code language="none"}} | ||
1211 | 8258 | ||
1212 | {{/code}} | ||
1213 | |||
1214 | {{code language="none"}} | ||
1215 | -D04A4939A574/ | ||
1216 | {{/code}} | ||
1217 | ))) | ||
1218 | ))) | ||
1219 | ))) | ||
1220 | |||
1221 | |||
1222 | ))) | ||
1223 | |||
1224 | (% style="color: rgb(34,34,34);" %)The "calendar" collection will be located at: | ||
1225 | |||
1226 | (% class="syntaxhighlighter nogutter java" %) | ||
1227 | ((( | ||
1228 | |||
1229 | |||
1230 | |((( | ||
1231 | (% class="container" title="Hint: double-click to select code" %) | ||
1232 | ((( | ||
1233 | (% class="line number1 index0 alt2" %) | ||
1234 | ((( | ||
1235 | {{code language="none"}} | ||
1236 | /calendars/__uids__/0B9B4FA7-8ADC- | ||
1237 | {{/code}} | ||
1238 | |||
1239 | {{code language="none"}} | ||
1240 | 4984 | ||
1241 | {{/code}} | ||
1242 | |||
1243 | {{code language="none"}} | ||
1244 | - | ||
1245 | {{/code}} | ||
1246 | |||
1247 | {{code language="none"}} | ||
1248 | 8258 | ||
1249 | {{/code}} | ||
1250 | |||
1251 | {{code language="none"}} | ||
1252 | -D04A4939A574/calendar/ | ||
1253 | {{/code}} | ||
1254 | ))) | ||
1255 | ))) | ||
1256 | ))) | ||
1257 | |||
1258 | |||
1259 | ))) | ||
1260 | |||
1261 | (% style="color: rgb(34,34,34);" %)And the "tasks" collection: | ||
1262 | |||
1263 | (% class="syntaxhighlighter nogutter java" %) | ||
1264 | ((( | ||
1265 | |||
1266 | |||
1267 | |((( | ||
1268 | (% class="container" title="Hint: double-click to select code" %) | ||
1269 | ((( | ||
1270 | (% class="line number1 index0 alt2" %) | ||
1271 | ((( | ||
1272 | {{code language="none"}} | ||
1273 | /calendars/__uids__/0B9B4FA7-8ADC- | ||
1274 | {{/code}} | ||
1275 | |||
1276 | {{code language="none"}} | ||
1277 | 4984 | ||
1278 | {{/code}} | ||
1279 | |||
1280 | {{code language="none"}} | ||
1281 | - | ||
1282 | {{/code}} | ||
1283 | |||
1284 | {{code language="none"}} | ||
1285 | 8258 | ||
1286 | {{/code}} | ||
1287 | |||
1288 | {{code language="none"}} | ||
1289 | -D04A4939A574/tasks/ | ||
1290 | {{/code}} | ||
1291 | ))) | ||
1292 | ))) | ||
1293 | ))) | ||
1294 | |||
1295 | |||
1296 | ))) | ||
1297 | |||
1298 | (% style="color: rgb(34,34,34);" %)So, for each sub-collection, iCal will do the following: | ||
1299 | |||
1300 | * A PROPFIND request to find the value of the checksum-versions property; | ||
1301 | * A PROPFIND request to find the value of the get[[ctag>>url:http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk/doc/Extensions/caldav-ctag.txt||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]] and [[sync-token>>url:http://tools.ietf.org/html/rfc6578#section-4||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]] properties; | ||
1302 | * A PROPFIND request to find the value of the [[getcontenttype>>url:http://tools.ietf.org/html/rfc2518#section-13.5||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]] and [[getetag>>url:http://tools.ietf.org/html/rfc4791#section-5.3.4||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]] properties; | ||
1303 | |||
1304 | ((( | ||
1305 | The third request, who fetches the content type and etag, is the one that will return a link to all iCalendar objects from the calendar collection. The response will return a <response> XML attribute for each iCalendar objects, with the following structure: | ||
1306 | |||
1307 | ))) | ||
1308 | |||
1309 | ((( | ||
1310 | |||
1311 | |||
1312 | (% class="syntaxhighlighter nogutter html" %) | ||
1313 | ((( | ||
1314 | |||
1315 | |||
1316 | |((( | ||
1317 | (% class="container" title="Hint: double-click to select code" %) | ||
1318 | ((( | ||
1319 | (% class="line number1 index0 alt2" %) | ||
1320 | ((( | ||
1321 | {{code language="none"}} | ||
1322 | < | ||
1323 | {{/code}} | ||
1324 | |||
1325 | {{code language="none"}} | ||
1326 | response | ||
1327 | {{/code}} | ||
1328 | |||
1329 | {{code language="none"}} | ||
1330 | > | ||
1331 | {{/code}} | ||
1332 | ))) | ||
1333 | |||
1334 | (% class="line number2 index1 alt1" %) | ||
1335 | ((( | ||
1336 | {{code language="none"}} | ||
1337 | |||
1338 | {{/code}} | ||
1339 | |||
1340 | {{code language="none"}} | ||
1341 | < | ||
1342 | {{/code}} | ||
1343 | |||
1344 | {{code language="none"}} | ||
1345 | href | ||
1346 | {{/code}} | ||
1347 | |||
1348 | {{code language="none"}} | ||
1349 | >/calendars/__uids__/C0F07FAF-A20A-4A88-A518-D27E5D3074CA/calendar/20111210T013923Z-uidGen%40mbp-pascal-robert-4.local.ics</ | ||
1350 | {{/code}} | ||
1351 | |||
1352 | {{code language="none"}} | ||
1353 | href | ||
1354 | {{/code}} | ||
1355 | |||
1356 | {{code language="none"}} | ||
1357 | > | ||
1358 | {{/code}} | ||
1359 | ))) | ||
1360 | |||
1361 | (% class="line number3 index2 alt2" %) | ||
1362 | ((( | ||
1363 | {{code language="none"}} | ||
1364 | |||
1365 | {{/code}} | ||
1366 | |||
1367 | {{code language="none"}} | ||
1368 | < | ||
1369 | {{/code}} | ||
1370 | |||
1371 | {{code language="none"}} | ||
1372 | propstat | ||
1373 | {{/code}} | ||
1374 | |||
1375 | {{code language="none"}} | ||
1376 | > | ||
1377 | {{/code}} | ||
1378 | ))) | ||
1379 | |||
1380 | (% class="line number4 index3 alt1" %) | ||
1381 | ((( | ||
1382 | {{code language="none"}} | ||
1383 | |||
1384 | {{/code}} | ||
1385 | |||
1386 | {{code language="none"}} | ||
1387 | < | ||
1388 | {{/code}} | ||
1389 | |||
1390 | {{code language="none"}} | ||
1391 | prop | ||
1392 | {{/code}} | ||
1393 | |||
1394 | {{code language="none"}} | ||
1395 | > | ||
1396 | {{/code}} | ||
1397 | ))) | ||
1398 | |||
1399 | (% class="line number5 index4 alt2" %) | ||
1400 | ((( | ||
1401 | {{code language="none"}} | ||
1402 | |||
1403 | {{/code}} | ||
1404 | |||
1405 | {{code language="none"}} | ||
1406 | < | ||
1407 | {{/code}} | ||
1408 | |||
1409 | {{code language="none"}} | ||
1410 | getcontenttype | ||
1411 | {{/code}} | ||
1412 | |||
1413 | {{code language="none"}} | ||
1414 | >text/calendar;charset=utf-8</ | ||
1415 | {{/code}} | ||
1416 | |||
1417 | {{code language="none"}} | ||
1418 | getcontenttype | ||
1419 | {{/code}} | ||
1420 | |||
1421 | {{code language="none"}} | ||
1422 | > | ||
1423 | {{/code}} | ||
1424 | ))) | ||
1425 | |||
1426 | (% class="line number6 index5 alt1" %) | ||
1427 | ((( | ||
1428 | {{code language="none"}} | ||
1429 | |||
1430 | {{/code}} | ||
1431 | |||
1432 | {{code language="none"}} | ||
1433 | < | ||
1434 | {{/code}} | ||
1435 | |||
1436 | {{code language="none"}} | ||
1437 | getetag | ||
1438 | {{/code}} | ||
1439 | |||
1440 | {{code language="none"}} | ||
1441 | >"9b6b2d11f86891f748ef09ab0993b75c"</ | ||
1442 | {{/code}} | ||
1443 | |||
1444 | {{code language="none"}} | ||
1445 | getetag | ||
1446 | {{/code}} | ||
1447 | |||
1448 | {{code language="none"}} | ||
1449 | > | ||
1450 | {{/code}} | ||
1451 | ))) | ||
1452 | |||
1453 | (% class="line number7 index6 alt2" %) | ||
1454 | ((( | ||
1455 | {{code language="none"}} | ||
1456 | |||
1457 | {{/code}} | ||
1458 | |||
1459 | {{code language="none"}} | ||
1460 | </ | ||
1461 | {{/code}} | ||
1462 | |||
1463 | {{code language="none"}} | ||
1464 | prop | ||
1465 | {{/code}} | ||
1466 | |||
1467 | {{code language="none"}} | ||
1468 | > | ||
1469 | {{/code}} | ||
1470 | ))) | ||
1471 | |||
1472 | (% class="line number8 index7 alt1" %) | ||
1473 | ((( | ||
1474 | {{code language="none"}} | ||
1475 | |||
1476 | {{/code}} | ||
1477 | |||
1478 | {{code language="none"}} | ||
1479 | < | ||
1480 | {{/code}} | ||
1481 | |||
1482 | {{code language="none"}} | ||
1483 | status | ||
1484 | {{/code}} | ||
1485 | |||
1486 | {{code language="none"}} | ||
1487 | >HTTP/1.1 200 OK</ | ||
1488 | {{/code}} | ||
1489 | |||
1490 | {{code language="none"}} | ||
1491 | status | ||
1492 | {{/code}} | ||
1493 | |||
1494 | {{code language="none"}} | ||
1495 | > | ||
1496 | {{/code}} | ||
1497 | ))) | ||
1498 | |||
1499 | (% class="line number9 index8 alt2" %) | ||
1500 | ((( | ||
1501 | {{code language="none"}} | ||
1502 | |||
1503 | {{/code}} | ||
1504 | |||
1505 | {{code language="none"}} | ||
1506 | </ | ||
1507 | {{/code}} | ||
1508 | |||
1509 | {{code language="none"}} | ||
1510 | propstat | ||
1511 | {{/code}} | ||
1512 | |||
1513 | {{code language="none"}} | ||
1514 | > | ||
1515 | {{/code}} | ||
1516 | ))) | ||
1517 | |||
1518 | (% class="line number10 index9 alt1" %) | ||
1519 | ((( | ||
1520 | {{code language="none"}} | ||
1521 | |||
1522 | {{/code}} | ||
1523 | |||
1524 | {{code language="none"}} | ||
1525 | </ | ||
1526 | {{/code}} | ||
1527 | |||
1528 | {{code language="none"}} | ||
1529 | response | ||
1530 | {{/code}} | ||
1531 | |||
1532 | {{code language="none"}} | ||
1533 | > | ||
1534 | {{/code}} | ||
1535 | ))) | ||
1536 | ))) | ||
1537 | ))) | ||
1538 | |||
1539 | |||
1540 | ))) | ||
1541 | |||
1542 | ((( | ||
1543 | (% style="color: rgb(34,34,34);" %) | ||
1544 | |||
1545 | ))) | ||
1546 | |||
1547 | ((( | ||
1548 | (% style="color: rgb(34,34,34);" %)From there, iCal will simply fetch all valid iCalendar objects and display them in the calendar window. This is done by doing a REPORT request on the calendar collection, with the (%%)[[calendar-multiget >>url:http://tools.ietf.org/html/rfc4791#section-7.9||rel="nofollow" style="text-decoration: underline;" shape="rect" class="external-link"]](% style="color: rgb(34,34,34);" %)attribute, with the list of calendar objects that the previous PROPFIND response have returned. | ||
1549 | ))) | ||
1550 | |||
1551 | ((( | ||
1552 | (% style="color: rgb(34,34,34);" %) | ||
1553 | ))) | ||
1554 | |||
1555 | ((( | ||
1556 | |||
1557 | |||
1558 | (% class="syntaxhighlighter nogutter html" %) | ||
1559 | ((( | ||
1560 | |||
1561 | |||
1562 | |((( | ||
1563 | (% class="container" title="Hint: double-click to select code" %) | ||
1564 | ((( | ||
1565 | (% class="line number1 index0 alt2" %) | ||
1566 | ((( | ||
1567 | {{code language="none"}} | ||
1568 | <? | ||
1569 | {{/code}} | ||
1570 | |||
1571 | {{code language="none"}} | ||
1572 | xml | ||
1573 | {{/code}} | ||
1574 | |||
1575 | |||
1576 | |||
1577 | {{code language="none"}} | ||
1578 | version | ||
1579 | {{/code}} | ||
1580 | |||
1581 | {{code language="none"}} | ||
1582 | = | ||
1583 | {{/code}} | ||
1584 | |||
1585 | {{code language="none"}} | ||
1586 | "1.0" | ||
1587 | {{/code}} | ||
1588 | |||
1589 | |||
1590 | |||
1591 | {{code language="none"}} | ||
1592 | encoding | ||
1593 | {{/code}} | ||
1594 | |||
1595 | {{code language="none"}} | ||
1596 | = | ||
1597 | {{/code}} | ||
1598 | |||
1599 | {{code language="none"}} | ||
1600 | "UTF-8" | ||
1601 | {{/code}} | ||
1602 | |||
1603 | {{code language="none"}} | ||
1604 | ?> | ||
1605 | {{/code}} | ||
1606 | ))) | ||
1607 | |||
1608 | (% class="line number2 index1 alt1" %) | ||
1609 | ((( | ||
1610 | {{code language="none"}} | ||
1611 | < | ||
1612 | {{/code}} | ||
1613 | |||
1614 | {{code language="none"}} | ||
1615 | B:calendar-multiget | ||
1616 | {{/code}} | ||
1617 | |||
1618 | |||
1619 | |||
1620 | {{code language="none"}} | ||
1621 | xmlns:B | ||
1622 | {{/code}} | ||
1623 | |||
1624 | {{code language="none"}} | ||
1625 | = | ||
1626 | {{/code}} | ||
1627 | |||
1628 | [[urn:ietf:params:xml:ns:caldav>>url:http://urnietfparamsxml:ns:caldav||shape="rect"]] | ||
1629 | |||
1630 | {{code language="none"}} | ||
1631 | "" | ||
1632 | {{/code}} | ||
1633 | |||
1634 | {{code language="none"}} | ||
1635 | > | ||
1636 | {{/code}} | ||
1637 | ))) | ||
1638 | |||
1639 | (% class="line number3 index2 alt2" %) | ||
1640 | ((( | ||
1641 | {{code language="none"}} | ||
1642 | |||
1643 | {{/code}} | ||
1644 | |||
1645 | {{code language="none"}} | ||
1646 | < | ||
1647 | {{/code}} | ||
1648 | |||
1649 | {{code language="none"}} | ||
1650 | A:prop | ||
1651 | {{/code}} | ||
1652 | |||
1653 | |||
1654 | |||
1655 | {{code language="none"}} | ||
1656 | xmlns:A | ||
1657 | {{/code}} | ||
1658 | |||
1659 | {{code language="none"}} | ||
1660 | = | ||
1661 | {{/code}} | ||
1662 | |||
1663 | {{code language="none"}} | ||
1664 | "DAV:" | ||
1665 | {{/code}} | ||
1666 | |||
1667 | {{code language="none"}} | ||
1668 | > | ||
1669 | {{/code}} | ||
1670 | ))) | ||
1671 | |||
1672 | (% class="line number4 index3 alt1" %) | ||
1673 | ((( | ||
1674 | {{code language="none"}} | ||
1675 | |||
1676 | {{/code}} | ||
1677 | |||
1678 | {{code language="none"}} | ||
1679 | < | ||
1680 | {{/code}} | ||
1681 | |||
1682 | {{code language="none"}} | ||
1683 | A:getetag | ||
1684 | {{/code}} | ||
1685 | |||
1686 | {{code language="none"}} | ||
1687 | /> | ||
1688 | {{/code}} | ||
1689 | ))) | ||
1690 | |||
1691 | (% class="line number5 index4 alt2" %) | ||
1692 | ((( | ||
1693 | {{code language="none"}} | ||
1694 | |||
1695 | {{/code}} | ||
1696 | |||
1697 | {{code language="none"}} | ||
1698 | < | ||
1699 | {{/code}} | ||
1700 | |||
1701 | {{code language="none"}} | ||
1702 | B:calendar-data | ||
1703 | {{/code}} | ||
1704 | |||
1705 | {{code language="none"}} | ||
1706 | /> | ||
1707 | {{/code}} | ||
1708 | ))) | ||
1709 | |||
1710 | (% class="line number6 index5 alt1" %) | ||
1711 | ((( | ||
1712 | {{code language="none"}} | ||
1713 | |||
1714 | {{/code}} | ||
1715 | |||
1716 | {{code language="none"}} | ||
1717 | < | ||
1718 | {{/code}} | ||
1719 | |||
1720 | {{code language="none"}} | ||
1721 | C:updated-by | ||
1722 | {{/code}} | ||
1723 | |||
1724 | |||
1725 | |||
1726 | {{code language="none"}} | ||
1727 | xmlns:C | ||
1728 | {{/code}} | ||
1729 | |||
1730 | {{code language="none"}} | ||
1731 | = | ||
1732 | {{/code}} | ||
1733 | |||
1734 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
1735 | |||
1736 | {{code language="none"}} | ||
1737 | " | ||
1738 | {{/code}} | ||
1739 | |||
1740 | {{code language="none"}} | ||
1741 | /> | ||
1742 | {{/code}} | ||
1743 | ))) | ||
1744 | |||
1745 | (% class="line number7 index6 alt2" %) | ||
1746 | ((( | ||
1747 | {{code language="none"}} | ||
1748 | |||
1749 | {{/code}} | ||
1750 | |||
1751 | {{code language="none"}} | ||
1752 | < | ||
1753 | {{/code}} | ||
1754 | |||
1755 | {{code language="none"}} | ||
1756 | C:created-by | ||
1757 | {{/code}} | ||
1758 | |||
1759 | |||
1760 | |||
1761 | {{code language="none"}} | ||
1762 | xmlns:C | ||
1763 | {{/code}} | ||
1764 | |||
1765 | {{code language="none"}} | ||
1766 | = | ||
1767 | {{/code}} | ||
1768 | |||
1769 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
1770 | |||
1771 | {{code language="none"}} | ||
1772 | " | ||
1773 | {{/code}} | ||
1774 | |||
1775 | {{code language="none"}} | ||
1776 | /> | ||
1777 | {{/code}} | ||
1778 | ))) | ||
1779 | |||
1780 | (% class="line number8 index7 alt1" %) | ||
1781 | ((( | ||
1782 | {{code language="none"}} | ||
1783 | |||
1784 | {{/code}} | ||
1785 | |||
1786 | {{code language="none"}} | ||
1787 | </ | ||
1788 | {{/code}} | ||
1789 | |||
1790 | {{code language="none"}} | ||
1791 | A:prop | ||
1792 | {{/code}} | ||
1793 | |||
1794 | {{code language="none"}} | ||
1795 | > | ||
1796 | {{/code}} | ||
1797 | ))) | ||
1798 | |||
1799 | (% class="line number9 index8 alt2" %) | ||
1800 | ((( | ||
1801 | {{code language="none"}} | ||
1802 | |||
1803 | {{/code}} | ||
1804 | |||
1805 | {{code language="none"}} | ||
1806 | < | ||
1807 | {{/code}} | ||
1808 | |||
1809 | {{code language="none"}} | ||
1810 | A:href | ||
1811 | {{/code}} | ||
1812 | |||
1813 | |||
1814 | |||
1815 | {{code language="none"}} | ||
1816 | xmlns:A | ||
1817 | {{/code}} | ||
1818 | |||
1819 | {{code language="none"}} | ||
1820 | = | ||
1821 | {{/code}} | ||
1822 | |||
1823 | {{code language="none"}} | ||
1824 | "DAV:" | ||
1825 | {{/code}} | ||
1826 | |||
1827 | [[/calendars/~~_~~_uids~~_~~_/C0F07FAF-A20A-4A88-A518-D27E5D3074CA/calendar/2011Z@local.ics>>url:http://wiki.wocommunity.org/mailto:/calendars/__uids__/C0F07FAF-A20A-4A88-A518-D27E5D3074CA/calendar/2011Z@local.ics||shape="rect"]] | ||
1828 | |||
1829 | {{code language="none"}} | ||
1830 | ></ | ||
1831 | {{/code}} | ||
1832 | |||
1833 | {{code language="none"}} | ||
1834 | A:href | ||
1835 | {{/code}} | ||
1836 | |||
1837 | {{code language="none"}} | ||
1838 | > | ||
1839 | {{/code}} | ||
1840 | ))) | ||
1841 | |||
1842 | (% class="line number10 index9 alt1" %) | ||
1843 | ((( | ||
1844 | {{code language="none"}} | ||
1845 | </ | ||
1846 | {{/code}} | ||
1847 | |||
1848 | {{code language="none"}} | ||
1849 | B:calendar-multiget | ||
1850 | {{/code}} | ||
1851 | |||
1852 | {{code language="none"}} | ||
1853 | > | ||
1854 | {{/code}} | ||
1855 | ))) | ||
1856 | ))) | ||
1857 | ))) | ||
1858 | |||
1859 | |||
1860 | ))) | ||
1861 | |||
1862 | ((( | ||
1863 | (% style="color: rgb(34,34,34);" %) | ||
1864 | |||
1865 | ))) | ||
1866 | |||
1867 | ((( | ||
1868 | (% style="color: rgb(34,34,34);" %)This is the response: | ||
1869 | |||
1870 | ))) | ||
1871 | |||
1872 | (% class="syntaxhighlighter nogutter html" %) | ||
1873 | ((( | ||
1874 | |||
1875 | |||
1876 | |((( | ||
1877 | (% class="container" title="Hint: double-click to select code" %) | ||
1878 | ((( | ||
1879 | (% class="line number1 index0 alt2" %) | ||
1880 | ((( | ||
1881 | {{code language="none"}} | ||
1882 | < | ||
1883 | {{/code}} | ||
1884 | |||
1885 | {{code language="none"}} | ||
1886 | D:multistatus | ||
1887 | {{/code}} | ||
1888 | |||
1889 | |||
1890 | |||
1891 | {{code language="none"}} | ||
1892 | xmlns:D | ||
1893 | {{/code}} | ||
1894 | |||
1895 | {{code language="none"}} | ||
1896 | = | ||
1897 | {{/code}} | ||
1898 | |||
1899 | {{code language="none"}} | ||
1900 | "DAV:" | ||
1901 | {{/code}} | ||
1902 | |||
1903 | {{code language="none"}} | ||
1904 | > | ||
1905 | {{/code}} | ||
1906 | ))) | ||
1907 | |||
1908 | (% class="line number2 index1 alt1" %) | ||
1909 | ((( | ||
1910 | {{code language="none"}} | ||
1911 | |||
1912 | {{/code}} | ||
1913 | |||
1914 | {{code language="none"}} | ||
1915 | < | ||
1916 | {{/code}} | ||
1917 | |||
1918 | {{code language="none"}} | ||
1919 | D:response | ||
1920 | {{/code}} | ||
1921 | |||
1922 | {{code language="none"}} | ||
1923 | > | ||
1924 | {{/code}} | ||
1925 | ))) | ||
1926 | |||
1927 | (% class="line number3 index2 alt2" %) | ||
1928 | ((( | ||
1929 | {{code language="none"}} | ||
1930 | |||
1931 | {{/code}} | ||
1932 | |||
1933 | {{code language="none"}} | ||
1934 | < | ||
1935 | {{/code}} | ||
1936 | |||
1937 | {{code language="none"}} | ||
1938 | D:href | ||
1939 | {{/code}} | ||
1940 | |||
1941 | {{code language="none"}} | ||
1942 | >/calendars/__uids__/C0F07FAF-A20A-4A88-A518-D27E5D3074CA/calendar/20111210T013923Z-uidGen%40mbp-pascal-robert-4.local.ics</ | ||
1943 | {{/code}} | ||
1944 | |||
1945 | {{code language="none"}} | ||
1946 | D:href | ||
1947 | {{/code}} | ||
1948 | |||
1949 | {{code language="none"}} | ||
1950 | > | ||
1951 | {{/code}} | ||
1952 | ))) | ||
1953 | |||
1954 | (% class="line number4 index3 alt1" %) | ||
1955 | ((( | ||
1956 | {{code language="none"}} | ||
1957 | |||
1958 | {{/code}} | ||
1959 | |||
1960 | {{code language="none"}} | ||
1961 | < | ||
1962 | {{/code}} | ||
1963 | |||
1964 | {{code language="none"}} | ||
1965 | D:propstat | ||
1966 | {{/code}} | ||
1967 | |||
1968 | {{code language="none"}} | ||
1969 | > | ||
1970 | {{/code}} | ||
1971 | ))) | ||
1972 | |||
1973 | (% class="line number5 index4 alt2" %) | ||
1974 | ((( | ||
1975 | {{code language="none"}} | ||
1976 | |||
1977 | {{/code}} | ||
1978 | |||
1979 | {{code language="none"}} | ||
1980 | < | ||
1981 | {{/code}} | ||
1982 | |||
1983 | {{code language="none"}} | ||
1984 | D:status | ||
1985 | {{/code}} | ||
1986 | |||
1987 | {{code language="none"}} | ||
1988 | >HTTP/1.1 200 OK</ | ||
1989 | {{/code}} | ||
1990 | |||
1991 | {{code language="none"}} | ||
1992 | D:status | ||
1993 | {{/code}} | ||
1994 | |||
1995 | {{code language="none"}} | ||
1996 | > | ||
1997 | {{/code}} | ||
1998 | ))) | ||
1999 | |||
2000 | (% class="line number6 index5 alt1" %) | ||
2001 | ((( | ||
2002 | {{code language="none"}} | ||
2003 | |||
2004 | {{/code}} | ||
2005 | |||
2006 | {{code language="none"}} | ||
2007 | < | ||
2008 | {{/code}} | ||
2009 | |||
2010 | {{code language="none"}} | ||
2011 | D:prop | ||
2012 | {{/code}} | ||
2013 | |||
2014 | {{code language="none"}} | ||
2015 | > | ||
2016 | {{/code}} | ||
2017 | ))) | ||
2018 | |||
2019 | (% class="line number7 index6 alt2" %) | ||
2020 | ((( | ||
2021 | {{code language="none"}} | ||
2022 | |||
2023 | {{/code}} | ||
2024 | |||
2025 | {{code language="none"}} | ||
2026 | < | ||
2027 | {{/code}} | ||
2028 | |||
2029 | {{code language="none"}} | ||
2030 | D:getetag | ||
2031 | {{/code}} | ||
2032 | |||
2033 | {{code language="none"}} | ||
2034 | >"63459166486"</ | ||
2035 | {{/code}} | ||
2036 | |||
2037 | {{code language="none"}} | ||
2038 | D:getetag | ||
2039 | {{/code}} | ||
2040 | |||
2041 | {{code language="none"}} | ||
2042 | > | ||
2043 | {{/code}} | ||
2044 | ))) | ||
2045 | |||
2046 | (% class="line number8 index7 alt1" %) | ||
2047 | ((( | ||
2048 | {{code language="none"}} | ||
2049 | |||
2050 | {{/code}} | ||
2051 | |||
2052 | {{code language="none"}} | ||
2053 | < | ||
2054 | {{/code}} | ||
2055 | |||
2056 | {{code language="none"}} | ||
2057 | C:calendar-data | ||
2058 | {{/code}} | ||
2059 | |||
2060 | |||
2061 | |||
2062 | {{code language="none"}} | ||
2063 | xmlns:C | ||
2064 | {{/code}} | ||
2065 | |||
2066 | {{code language="none"}} | ||
2067 | = | ||
2068 | {{/code}} | ||
2069 | |||
2070 | [[urn:ietf:params:xml:ns:caldav>>url:http://urnietfparamsxml:ns:caldav||shape="rect"]] | ||
2071 | |||
2072 | {{code language="none"}} | ||
2073 | "" | ||
2074 | {{/code}} | ||
2075 | |||
2076 | {{code language="none"}} | ||
2077 | > | ||
2078 | {{/code}} | ||
2079 | ))) | ||
2080 | |||
2081 | (% class="line number9 index8 alt2" %) | ||
2082 | ((( | ||
2083 | {{code language="none"}} | ||
2084 | BEGIN:VCALENDAR | ||
2085 | {{/code}} | ||
2086 | ))) | ||
2087 | |||
2088 | (% class="line number10 index9 alt1" %) | ||
2089 | ((( | ||
2090 | {{code language="none"}} | ||
2091 | PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 | ||
2092 | {{/code}} | ||
2093 | ))) | ||
2094 | |||
2095 | (% class="line number11 index10 alt2" %) | ||
2096 | ((( | ||
2097 | {{code language="none"}} | ||
2098 | CALSCALE:GREGORIAN | ||
2099 | {{/code}} | ||
2100 | ))) | ||
2101 | |||
2102 | (% class="line number12 index11 alt1" %) | ||
2103 | ((( | ||
2104 | {{code language="none"}} | ||
2105 | X-WR-CALNAME:Pascal Robert | ||
2106 | {{/code}} | ||
2107 | ))) | ||
2108 | |||
2109 | (% class="line number13 index12 alt2" %) | ||
2110 | ((( | ||
2111 | {{code language="none"}} | ||
2112 | X-WR-TIMEZONE:America/New_York | ||
2113 | {{/code}} | ||
2114 | ))) | ||
2115 | |||
2116 | (% class="line number14 index13 alt1" %) | ||
2117 | ((( | ||
2118 | {{code language="none"}} | ||
2119 | BEGIN:VEVENT | ||
2120 | {{/code}} | ||
2121 | ))) | ||
2122 | |||
2123 | (% class="line number15 index14 alt2" %) | ||
2124 | ((( | ||
2125 | {{code language="none"}} | ||
2126 | DTSTART:20111209T140000Z | ||
2127 | {{/code}} | ||
2128 | ))) | ||
2129 | |||
2130 | (% class="line number16 index15 alt1" %) | ||
2131 | ((( | ||
2132 | {{code language="none"}} | ||
2133 | DTEND:20111209T180000Z | ||
2134 | {{/code}} | ||
2135 | ))) | ||
2136 | |||
2137 | (% class="line number17 index16 alt2" %) | ||
2138 | ((( | ||
2139 | {{code language="none"}} | ||
2140 | DTSTAMP:20111210T021446Z | ||
2141 | {{/code}} | ||
2142 | ))) | ||
2143 | |||
2144 | (% class="line number18 index17 alt1" %) | ||
2145 | ((( | ||
2146 | [[lan:mailto~~:probert@macti.lan>>url:http://lanmailto:probert@macti.lan||shape="rect"]] | ||
2147 | |||
2148 | {{code language="none"}} | ||
2149 | ORGANIZER;CN=probert@macti. | ||
2150 | {{/code}} | ||
2151 | ))) | ||
2152 | |||
2153 | (% class="line number19 index18 alt2" %) | ||
2154 | ((( | ||
2155 | [[20111210T021447Z-uidGen@mbp-pascal-robert-4.local>>mailto:20111210T021447Z-uidGen@mbp-pascal-robert-4.local||shape="rect"]] | ||
2156 | |||
2157 | {{code language="none"}} | ||
2158 | UID: | ||
2159 | {{/code}} | ||
2160 | ))) | ||
2161 | |||
2162 | (% class="line number20 index19 alt1" %) | ||
2163 | ((( | ||
2164 | [[mailto~~:pascal.probert@gmail.com>>url:http://mailto:pascal.probert@gmail.com||shape="rect"]] | ||
2165 | |||
2166 | {{code language="none"}} | ||
2167 | ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=Pascal Robert;X-NUM-GUESTS=0: | ||
2168 | {{/code}} | ||
2169 | ))) | ||
2170 | |||
2171 | (% class="line number21 index20 alt2" %) | ||
2172 | ((( | ||
2173 | {{code language="none"}} | ||
2174 | CLASS:CONFIDENTIAL | ||
2175 | {{/code}} | ||
2176 | ))) | ||
2177 | |||
2178 | (% class="line number22 index21 alt1" %) | ||
2179 | ((( | ||
2180 | {{code language="none"}} | ||
2181 | CREATED:20111210T021446Z | ||
2182 | {{/code}} | ||
2183 | ))) | ||
2184 | |||
2185 | (% class="line number23 index22 alt2" %) | ||
2186 | ((( | ||
2187 | {{code language="none"}} | ||
2188 | DESCRIPTION:Un plus long texte | ||
2189 | {{/code}} | ||
2190 | ))) | ||
2191 | |||
2192 | (% class="line number24 index23 alt1" %) | ||
2193 | ((( | ||
2194 | {{code language="none"}} | ||
2195 | LAST-MODIFIED:20111210T021446Z | ||
2196 | {{/code}} | ||
2197 | ))) | ||
2198 | |||
2199 | (% class="line number25 index24 alt2" %) | ||
2200 | ((( | ||
2201 | {{code language="none"}} | ||
2202 | LOCATION:Un endroit | ||
2203 | {{/code}} | ||
2204 | ))) | ||
2205 | |||
2206 | (% class="line number26 index25 alt1" %) | ||
2207 | ((( | ||
2208 | {{code language="none"}} | ||
2209 | SEQUENCE:0 | ||
2210 | {{/code}} | ||
2211 | ))) | ||
2212 | |||
2213 | (% class="line number27 index26 alt2" %) | ||
2214 | ((( | ||
2215 | {{code language="none"}} | ||
2216 | STATUS:CONFIRMED | ||
2217 | {{/code}} | ||
2218 | ))) | ||
2219 | |||
2220 | (% class="line number28 index27 alt1" %) | ||
2221 | ((( | ||
2222 | {{code language="none"}} | ||
2223 | SUMMARY:Événement test | ||
2224 | {{/code}} | ||
2225 | ))) | ||
2226 | |||
2227 | (% class="line number29 index28 alt2" %) | ||
2228 | ((( | ||
2229 | {{code language="none"}} | ||
2230 | TRANSP:OPAQU | ||
2231 | {{/code}} | ||
2232 | ))) | ||
2233 | |||
2234 | (% class="line number30 index29 alt1" %) | ||
2235 | ((( | ||
2236 | {{code language="none"}} | ||
2237 | BEGIN:VALARM | ||
2238 | {{/code}} | ||
2239 | ))) | ||
2240 | |||
2241 | (% class="line number31 index30 alt2" %) | ||
2242 | ((( | ||
2243 | {{code language="none"}} | ||
2244 | ACTION:DISPLAY | ||
2245 | {{/code}} | ||
2246 | ))) | ||
2247 | |||
2248 | (% class="line number32 index31 alt1" %) | ||
2249 | ((( | ||
2250 | {{code language="none"}} | ||
2251 | DESCRIPTION:This is an event reminder | ||
2252 | {{/code}} | ||
2253 | ))) | ||
2254 | |||
2255 | (% class="line number33 index32 alt2" %) | ||
2256 | ((( | ||
2257 | {{code language="none"}} | ||
2258 | TRIGGER:-P0DT0H30M0S | ||
2259 | {{/code}} | ||
2260 | ))) | ||
2261 | |||
2262 | (% class="line number34 index33 alt1" %) | ||
2263 | ((( | ||
2264 | {{code language="none"}} | ||
2265 | END:VALARM BEGIN:VALARM | ||
2266 | {{/code}} | ||
2267 | ))) | ||
2268 | |||
2269 | (% class="line number35 index34 alt2" %) | ||
2270 | ((( | ||
2271 | {{code language="none"}} | ||
2272 | ACTION:AUDIO | ||
2273 | {{/code}} | ||
2274 | ))) | ||
2275 | |||
2276 | (% class="line number36 index35 alt1" %) | ||
2277 | ((( | ||
2278 | {{code language="none"}} | ||
2279 | TRIGGER;VALUE=DATE-TIME:20111209T134500Z | ||
2280 | {{/code}} | ||
2281 | ))) | ||
2282 | |||
2283 | (% class="line number37 index36 alt2" %) | ||
2284 | ((( | ||
2285 | {{code language="none"}} | ||
2286 | END:VALARM | ||
2287 | {{/code}} | ||
2288 | ))) | ||
2289 | |||
2290 | (% class="line number38 index37 alt1" %) | ||
2291 | ((( | ||
2292 | {{code language="none"}} | ||
2293 | END:VEVENT | ||
2294 | {{/code}} | ||
2295 | ))) | ||
2296 | |||
2297 | (% class="line number39 index38 alt2" %) | ||
2298 | ((( | ||
2299 | {{code language="none"}} | ||
2300 | END:VCALENDAR | ||
2301 | {{/code}} | ||
2302 | ))) | ||
2303 | |||
2304 | (% class="line number40 index39 alt1" %) | ||
2305 | ((( | ||
2306 | {{code language="none"}} | ||
2307 | |||
2308 | {{/code}} | ||
2309 | |||
2310 | {{code language="none"}} | ||
2311 | </ | ||
2312 | {{/code}} | ||
2313 | |||
2314 | {{code language="none"}} | ||
2315 | C:calendar-data | ||
2316 | {{/code}} | ||
2317 | |||
2318 | {{code language="none"}} | ||
2319 | > | ||
2320 | {{/code}} | ||
2321 | ))) | ||
2322 | |||
2323 | (% class="line number41 index40 alt2" %) | ||
2324 | ((( | ||
2325 | {{code language="none"}} | ||
2326 | |||
2327 | {{/code}} | ||
2328 | |||
2329 | {{code language="none"}} | ||
2330 | </ | ||
2331 | {{/code}} | ||
2332 | |||
2333 | {{code language="none"}} | ||
2334 | D:prop | ||
2335 | {{/code}} | ||
2336 | |||
2337 | {{code language="none"}} | ||
2338 | > | ||
2339 | {{/code}} | ||
2340 | ))) | ||
2341 | |||
2342 | (% class="line number42 index41 alt1" %) | ||
2343 | ((( | ||
2344 | {{code language="none"}} | ||
2345 | |||
2346 | {{/code}} | ||
2347 | |||
2348 | {{code language="none"}} | ||
2349 | </ | ||
2350 | {{/code}} | ||
2351 | |||
2352 | {{code language="none"}} | ||
2353 | D:propstat | ||
2354 | {{/code}} | ||
2355 | |||
2356 | {{code language="none"}} | ||
2357 | > | ||
2358 | {{/code}} | ||
2359 | ))) | ||
2360 | |||
2361 | (% class="line number43 index42 alt2" %) | ||
2362 | ((( | ||
2363 | {{code language="none"}} | ||
2364 | |||
2365 | {{/code}} | ||
2366 | |||
2367 | {{code language="none"}} | ||
2368 | < | ||
2369 | {{/code}} | ||
2370 | |||
2371 | {{code language="none"}} | ||
2372 | D:propstat | ||
2373 | {{/code}} | ||
2374 | |||
2375 | {{code language="none"}} | ||
2376 | > | ||
2377 | {{/code}} | ||
2378 | ))) | ||
2379 | |||
2380 | (% class="line number44 index43 alt1" %) | ||
2381 | ((( | ||
2382 | {{code language="none"}} | ||
2383 | |||
2384 | {{/code}} | ||
2385 | |||
2386 | {{code language="none"}} | ||
2387 | < | ||
2388 | {{/code}} | ||
2389 | |||
2390 | {{code language="none"}} | ||
2391 | D:status | ||
2392 | {{/code}} | ||
2393 | |||
2394 | {{code language="none"}} | ||
2395 | >HTTP/1.1 404 Not Found</ | ||
2396 | {{/code}} | ||
2397 | |||
2398 | {{code language="none"}} | ||
2399 | D:status | ||
2400 | {{/code}} | ||
2401 | |||
2402 | {{code language="none"}} | ||
2403 | > | ||
2404 | {{/code}} | ||
2405 | ))) | ||
2406 | |||
2407 | (% class="line number45 index44 alt2" %) | ||
2408 | ((( | ||
2409 | {{code language="none"}} | ||
2410 | |||
2411 | {{/code}} | ||
2412 | |||
2413 | {{code language="none"}} | ||
2414 | < | ||
2415 | {{/code}} | ||
2416 | |||
2417 | {{code language="none"}} | ||
2418 | D:prop | ||
2419 | {{/code}} | ||
2420 | |||
2421 | {{code language="none"}} | ||
2422 | > | ||
2423 | {{/code}} | ||
2424 | ))) | ||
2425 | |||
2426 | (% class="line number46 index45 alt1" %) | ||
2427 | ((( | ||
2428 | {{code language="none"}} | ||
2429 | |||
2430 | {{/code}} | ||
2431 | |||
2432 | {{code language="none"}} | ||
2433 | < | ||
2434 | {{/code}} | ||
2435 | |||
2436 | {{code language="none"}} | ||
2437 | C:updated-by | ||
2438 | {{/code}} | ||
2439 | |||
2440 | |||
2441 | |||
2442 | {{code language="none"}} | ||
2443 | xmlns:C | ||
2444 | {{/code}} | ||
2445 | |||
2446 | {{code language="none"}} | ||
2447 | = | ||
2448 | {{/code}} | ||
2449 | |||
2450 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
2451 | |||
2452 | {{code language="none"}} | ||
2453 | " | ||
2454 | {{/code}} | ||
2455 | |||
2456 | |||
2457 | |||
2458 | {{code language="none"}} | ||
2459 | /> | ||
2460 | {{/code}} | ||
2461 | ))) | ||
2462 | |||
2463 | (% class="line number47 index46 alt2" %) | ||
2464 | ((( | ||
2465 | {{code language="none"}} | ||
2466 | |||
2467 | {{/code}} | ||
2468 | |||
2469 | {{code language="none"}} | ||
2470 | < | ||
2471 | {{/code}} | ||
2472 | |||
2473 | {{code language="none"}} | ||
2474 | C:created-by | ||
2475 | {{/code}} | ||
2476 | |||
2477 | |||
2478 | |||
2479 | {{code language="none"}} | ||
2480 | xmlns:C | ||
2481 | {{/code}} | ||
2482 | |||
2483 | {{code language="none"}} | ||
2484 | = | ||
2485 | {{/code}} | ||
2486 | |||
2487 | [[http:~~/~~/calendarserver.org/ns/">>url:http://calendarserver.org/ns/||style="text-decoration: underline;" shape="rect"]] | ||
2488 | |||
2489 | {{code language="none"}} | ||
2490 | " | ||
2491 | {{/code}} | ||
2492 | |||
2493 | |||
2494 | |||
2495 | {{code language="none"}} | ||
2496 | /> | ||
2497 | {{/code}} | ||
2498 | ))) | ||
2499 | |||
2500 | (% class="line number48 index47 alt1" %) | ||
2501 | ((( | ||
2502 | {{code language="none"}} | ||
2503 | |||
2504 | {{/code}} | ||
2505 | |||
2506 | {{code language="none"}} | ||
2507 | </ | ||
2508 | {{/code}} | ||
2509 | |||
2510 | {{code language="none"}} | ||
2511 | D:prop | ||
2512 | {{/code}} | ||
2513 | |||
2514 | {{code language="none"}} | ||
2515 | > | ||
2516 | {{/code}} | ||
2517 | ))) | ||
2518 | |||
2519 | (% class="line number49 index48 alt2" %) | ||
2520 | ((( | ||
2521 | {{code language="none"}} | ||
2522 | |||
2523 | {{/code}} | ||
2524 | |||
2525 | {{code language="none"}} | ||
2526 | </ | ||
2527 | {{/code}} | ||
2528 | |||
2529 | {{code language="none"}} | ||
2530 | D:propstat | ||
2531 | {{/code}} | ||
2532 | |||
2533 | {{code language="none"}} | ||
2534 | > | ||
2535 | {{/code}} | ||
2536 | ))) | ||
2537 | |||
2538 | (% class="line number50 index49 alt1" %) | ||
2539 | ((( | ||
2540 | {{code language="none"}} | ||
2541 | |||
2542 | {{/code}} | ||
2543 | |||
2544 | {{code language="none"}} | ||
2545 | </ | ||
2546 | {{/code}} | ||
2547 | |||
2548 | {{code language="none"}} | ||
2549 | D:response | ||
2550 | {{/code}} | ||
2551 | |||
2552 | {{code language="none"}} | ||
2553 | > | ||
2554 | {{/code}} | ||
2555 | ))) | ||
2556 | |||
2557 | (% class="line number51 index50 alt2" %) | ||
2558 | ((( | ||
2559 | {{code language="none"}} | ||
2560 | </ | ||
2561 | {{/code}} | ||
2562 | |||
2563 | {{code language="none"}} | ||
2564 | D:multistatus | ||
2565 | {{/code}} | ||
2566 | |||
2567 | {{code language="none"}} | ||
2568 | > | ||
2569 | {{/code}} | ||
2570 | ))) | ||
2571 | |||
2572 | ((( | ||
2573 | \\ | ||
2574 | |||
2575 | {{code language="none"}}{{/code}} | ||
2576 | ))) | ||
2577 | ))) | ||
2578 | ))) | ||
2579 | ))) | ||
2580 | ))) | ||
2581 | ))) |