-
-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathrfc5545.html
9569 lines (6631 loc) · 408 KB
/
rfc5545.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="index,follow" />
<meta name="creator" content="rfchandler version 0.2" />
<meta name="citation_author" content="B. Desruisseaux"/>
<meta name="citation_publication_date" content="September, 2009"/>
<meta name="citation_title" content="Internet Calendaring and Scheduling Core Object Specification (iCalendar)"/>
<meta name="citation_doi" content="10.17487/RFC5545"/>
<meta name="citation_issn" content="2070-1721"/>
<meta name="citation_technical_report_number" content="rfc5545"/>
<meta name="citation_pdf_url" content="https://www.rfc-editor.org/rfc/pdfrfc/rfc5545.txt.pdf"/>
<title>RFC 5545: Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
<style type="text/css">
@media only screen
and (min-width: 992px)
and (max-width: 1199px) {
body { font-size: 14pt; }
div.content { width: 96ex; margin: 0 auto; }
}
@media only screen
and (min-width: 768px)
and (max-width: 991px) {
body { font-size: 14pt; }
div.content { width: 96ex; margin: 0 auto; }
}
@media only screen
and (min-width: 480px)
and (max-width: 767px) {
body { font-size: 11pt; }
div.content { width: 96ex; margin: 0 auto; }
}
@media only screen
and (max-width: 479px) {
body { font-size: 8pt; }
div.content { width: 96ex; margin: 0 auto; }
}
@media only screen
and (min-device-width : 375px)
and (max-device-width : 667px) {
body { font-size: 9.5pt; }
div.content { width: 96ex; margin: 0; }
}
@media only screen
and (min-device-width: 1200px) {
body { font-size: 10pt; margin: 0 4em; }
div.content { width: 96ex; margin: 0; }
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
font-weight: bold;
/* line-height: 0pt; */
display: inline;
white-space: pre;
font-family: monospace;
font-size: 1em;
font-weight: bold;
}
pre {
font-size: 1em;
margin-top: 0px;
margin-bottom: 0px;
}
.pre {
white-space: pre;
font-family: monospace;
}
.header{
font-weight: bold;
}
.newpage {
page-break-before: always;
}
.invisible {
text-decoration: none;
color: white;
}
a.selflink {
color: black;
text-decoration: none;
}
@media print {
body {
font-family: monospace;
font-size: 10.5pt;
}
h1, h2, h3, h4, h5, h6 {
font-size: 1em;
}
a:link, a:visited {
color: inherit;
text-decoration: none;
}
.noprint {
display: none;
}
}
@media screen {
.grey, .grey a:link, .grey a:visited {
color: #777;
}
.docinfo {
background-color: #EEE;
}
.top {
border-top: 7px solid #EEE;
}
.bgwhite { background-color: white; }
.bgred { background-color: #F44; }
.bggrey { background-color: #666; }
.bgbrown { background-color: #840; }
.bgorange { background-color: #FA0; }
.bgyellow { background-color: #EE0; }
.bgmagenta{ background-color: #F4F; }
.bgblue { background-color: #66F; }
.bgcyan { background-color: #4DD; }
.bggreen { background-color: #4F4; }
.legend { font-size: 90%; }
.cplate { font-size: 70%; border: solid grey 1px; }
}
</style>
<!--[if IE]>
<style>
body {
font-size: 13px;
margin: 10px 10px;
}
</style>
<![endif]--> <script type="text/javascript"><!--
function addHeaderTags() {
var spans = document.getElementsByTagName("span");
for (var i=0; i < spans.length; i++) {
var elem = spans[i];
if (elem) {
var level = elem.getAttribute("class");
if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";
}
}
}
}
var legend_html = "Colour legend:<br /> <table> <tr><td>Unknown:</td> <td><span class='cplate bgwhite'> </span></td></tr> <tr><td>Draft:</td> <td><span class='cplate bgred'> </span></td></tr> <tr><td>Informational:</td> <td><span class='cplate bgorange'> </span></td></tr> <tr><td>Experimental:</td> <td><span class='cplate bgyellow'> </span></td></tr> <tr><td>Best Common Practice:</td> <td><span class='cplate bgmagenta'> </span></td></tr> <tr><td>Proposed Standard:</td> <td><span class='cplate bgblue'> </span></td></tr> <tr><td>Draft Standard (old designation):</td> <td><span class='cplate bgcyan'> </span></td></tr> <tr><td>Internet Standard:</td> <td><span class='cplate bggreen'> </span></td></tr> <tr><td>Historic:</td> <td><span class='cplate bggrey'> </span></td></tr> <tr><td>Obsolete:</td> <td><span class='cplate bgbrown'> </span></td></tr> </table>";
function showElem(id) {
var elem = document.getElementById(id);
elem.innerHTML = eval(id+"_html");
elem.style.visibility='visible';
}
function hideElem(id) {
var elem = document.getElementById(id);
elem.style.visibility='hidden';
elem.innerHTML = "";
}
// -->
</script></head>
<body>
<span class="pre noprint docinfo">[<a href="https://www.rfc-editor.org" title="RFC Editor">RFC Home</a>] [<a href="/rfc/rfc5545.txt">TEXT</a>|<a href="/rfc/pdfrfc/rfc5545.txt.pdf">PDF</a>|<a href="/rfc/rfc5545.html">HTML</a>] [<a href='https://datatracker.ietf.org/doc/rfc5545' title='IETF Datatracker information for this document'>Tracker</a>] [<a href="https://datatracker.ietf.org/ipr/search/?rfc=5545&submit=rfc" title="IPR disclosures related to this document">IPR</a>] [<a class="boldtext" href="/errata/rfc5545" target="_blank">Errata</a>] [<a href='https://www.rfc-editor.org/info/rfc5545' title='Info page'>Info page</a>] </span><br/><span class="pre noprint docinfo"> </span><br /><span class="pre noprint docinfo">Updated by: <a href="/rfc/rfc5546" target="_blank">5546</a>, <a href="/rfc/rfc6868" target="_blank">6868</a>, <a href="/rfc/rfc7529" target="_blank">7529</a>, <a href="/rfc/rfc7953" target="_blank">7953</a>, <a href="/rfc/rfc7986" target="_blank">7986</a>, <a href="/rfc/rfc9073" target="_blank">9073</a>, <a href="/rfc/rfc9074" target="_blank">9074</a>, PROPOSED STANDARD<br> <a href="/rfc/rfc9253" target="_blank">9253</a> <span style='color: #C00;'>Errata Exist</span></span><br /><pre>Network Working Group B. Desruisseaux, Ed.
Request for Comments: 5545 Oracle
Obsoletes: <a href="./rfc2445">2445</a> September 2009
Category: Standards Track
<span class="h1">Internet Calendaring and Scheduling Core Object Specification</span>
<span class="h1">(iCalendar)</span>
Abstract
This document defines the iCalendar data format for representing and
exchanging calendaring and scheduling information such as events,
to-dos, journal entries, and free/busy information, independent of any
particular calendar service or protocol.
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright and License Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
<span class="grey">Desruisseaux Standards Track [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents
<a href="#section-1">1</a>. Introduction . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-2">2</a>. Basic Grammar and Conventions . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-2.1">2.1</a>. Formatting Conventions . . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-2.2">2.2</a>. Related Memos . . . . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a>
<a href="#section-3">3</a>. iCalendar Object Specification . . . . . . . . . . . . . . . <a href="#page-8">8</a>
<a href="#section-3.1">3.1</a>. Content Lines . . . . . . . . . . . . . . . . . . . . . . <a href="#page-8">8</a>
<a href="#section-3.1.1">3.1.1</a>. List and Field Separators . . . . . . . . . . . . . . <a href="#page-11">11</a>
<a href="#section-3.1.2">3.1.2</a>. Multiple Values . . . . . . . . . . . . . . . . . . . <a href="#page-11">11</a>
<a href="#section-3.1.3">3.1.3</a>. Binary Content . . . . . . . . . . . . . . . . . . . <a href="#page-11">11</a>
<a href="#section-3.1.4">3.1.4</a>. Character Set . . . . . . . . . . . . . . . . . . . . <a href="#page-12">12</a>
<a href="#section-3.2">3.2</a>. Property Parameters . . . . . . . . . . . . . . . . . . . <a href="#page-12">12</a>
<a href="#section-3.2.1">3.2.1</a>. Alternate Text Representation . . . . . . . . . . . . <a href="#page-13">13</a>
<a href="#section-3.2.2">3.2.2</a>. Common Name . . . . . . . . . . . . . . . . . . . . . <a href="#page-15">15</a>
<a href="#section-3.2.3">3.2.3</a>. Calendar User Type . . . . . . . . . . . . . . . . . <a href="#page-15">15</a>
<a href="#section-3.2.4">3.2.4</a>. Delegators . . . . . . . . . . . . . . . . . . . . . <a href="#page-16">16</a>
<a href="#section-3.2.5">3.2.5</a>. Delegatees . . . . . . . . . . . . . . . . . . . . . <a href="#page-16">16</a>
<a href="#section-3.2.6">3.2.6</a>. Directory Entry Reference . . . . . . . . . . . . . . <a href="#page-17">17</a>
<a href="#section-3.2.7">3.2.7</a>. Inline Encoding . . . . . . . . . . . . . . . . . . . <a href="#page-17">17</a>
<a href="#section-3.2.8">3.2.8</a>. Format Type . . . . . . . . . . . . . . . . . . . . . <a href="#page-18">18</a>
<a href="#section-3.2.9">3.2.9</a>. Free/Busy Time Type . . . . . . . . . . . . . . . . . <a href="#page-19">19</a>
<a href="#section-3.2.10">3.2.10</a>. Language . . . . . . . . . . . . . . . . . . . . . . <a href="#page-20">20</a>
<a href="#section-3.2.11">3.2.11</a>. Group or List Membership . . . . . . . . . . . . . . <a href="#page-20">20</a>
<a href="#section-3.2.12">3.2.12</a>. Participation Status . . . . . . . . . . . . . . . . <a href="#page-21">21</a>
<a href="#section-3.2.13">3.2.13</a>. Recurrence Identifier Range . . . . . . . . . . . . . <a href="#page-22">22</a>
<a href="#section-3.2.14">3.2.14</a>. Alarm Trigger Relationship . . . . . . . . . . . . . <a href="#page-23">23</a>
<a href="#section-3.2.15">3.2.15</a>. Relationship Type . . . . . . . . . . . . . . . . . . <a href="#page-24">24</a>
<a href="#section-3.2.16">3.2.16</a>. Participation Role . . . . . . . . . . . . . . . . . <a href="#page-25">25</a>
<a href="#section-3.2.17">3.2.17</a>. RSVP Expectation . . . . . . . . . . . . . . . . . . <a href="#page-25">25</a>
<a href="#section-3.2.18">3.2.18</a>. Sent By . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-26">26</a>
<a href="#section-3.2.19">3.2.19</a>. Time Zone Identifier . . . . . . . . . . . . . . . . <a href="#page-26">26</a>
<a href="#section-3.2.20">3.2.20</a>. Value Data Types . . . . . . . . . . . . . . . . . . <a href="#page-28">28</a>
<a href="#section-3.3">3.3</a>. Property Value Data Types . . . . . . . . . . . . . . . . <a href="#page-29">29</a>
<a href="#section-3.3.1">3.3.1</a>. Binary . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-29">29</a>
<a href="#section-3.3.2">3.3.2</a>. Boolean . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-30">30</a>
<a href="#section-3.3.3">3.3.3</a>. Calendar User Address . . . . . . . . . . . . . . . . <a href="#page-30">30</a>
<a href="#section-3.3.4">3.3.4</a>. Date . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-31">31</a>
<a href="#section-3.3.5">3.3.5</a>. Date-Time . . . . . . . . . . . . . . . . . . . . . . <a href="#page-31">31</a>
<a href="#section-3.3.6">3.3.6</a>. Duration . . . . . . . . . . . . . . . . . . . . . . <a href="#page-34">34</a>
<a href="#section-3.3.7">3.3.7</a>. Float . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-35">35</a>
<a href="#section-3.3.8">3.3.8</a>. Integer . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-35">35</a>
<a href="#section-3.3.9">3.3.9</a>. Period of Time . . . . . . . . . . . . . . . . . . . <a href="#page-36">36</a>
<a href="#section-3.3.10">3.3.10</a>. Recurrence Rule . . . . . . . . . . . . . . . . . . . <a href="#page-37">37</a>
<a href="#section-3.3.11">3.3.11</a>. Text . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-45">45</a>
<span class="grey">Desruisseaux Standards Track [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
<a href="#section-3.3.12">3.3.12</a>. Time . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-46">46</a>
<a href="#section-3.3.13">3.3.13</a>. URI . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-48">48</a>
<a href="#section-3.3.14">3.3.14</a>. UTC Offset . . . . . . . . . . . . . . . . . . . . . <a href="#page-49">49</a>
<a href="#section-3.4">3.4</a>. iCalendar Object . . . . . . . . . . . . . . . . . . . . <a href="#page-49">49</a>
<a href="#section-3.5">3.5</a>. Property . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-50">50</a>
<a href="#section-3.6">3.6</a>. Calendar Components . . . . . . . . . . . . . . . . . . . <a href="#page-50">50</a>
<a href="#section-3.6.1">3.6.1</a>. Event Component . . . . . . . . . . . . . . . . . . . <a href="#page-52">52</a>
<a href="#section-3.6.2">3.6.2</a>. To-Do Component . . . . . . . . . . . . . . . . . . . <a href="#page-56">56</a>
<a href="#section-3.6.3">3.6.3</a>. Journal Component . . . . . . . . . . . . . . . . . . <a href="#page-58">58</a>
<a href="#section-3.6.4">3.6.4</a>. Free/Busy Component . . . . . . . . . . . . . . . . . <a href="#page-60">60</a>
<a href="#section-3.6.5">3.6.5</a>. Time Zone Component . . . . . . . . . . . . . . . . . <a href="#page-63">63</a>
<a href="#section-3.6.6">3.6.6</a>. Alarm Component . . . . . . . . . . . . . . . . . . . <a href="#page-72">72</a>
<a href="#section-3.7">3.7</a>. Calendar Properties . . . . . . . . . . . . . . . . . . . <a href="#page-77">77</a>
<a href="#section-3.7.1">3.7.1</a>. Calendar Scale . . . . . . . . . . . . . . . . . . . <a href="#page-77">77</a>
<a href="#section-3.7.2">3.7.2</a>. Method . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-78">78</a>
<a href="#section-3.7.3">3.7.3</a>. Product Identifier . . . . . . . . . . . . . . . . . <a href="#page-79">79</a>
<a href="#section-3.7.4">3.7.4</a>. Version . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-80">80</a>
<a href="#section-3.8">3.8</a>. Component Properties . . . . . . . . . . . . . . . . . . <a href="#page-81">81</a>
<a href="#section-3.8.1">3.8.1</a>. Descriptive Component Properties . . . . . . . . . . <a href="#page-81">81</a>
<a href="#section-3.8.1.1">3.8.1.1</a>. Attachment . . . . . . . . . . . . . . . . . . . <a href="#page-81">81</a>
<a href="#section-3.8.1.2">3.8.1.2</a>. Categories . . . . . . . . . . . . . . . . . . . <a href="#page-82">82</a>
<a href="#section-3.8.1.3">3.8.1.3</a>. Classification . . . . . . . . . . . . . . . . . <a href="#page-83">83</a>
<a href="#section-3.8.1.4">3.8.1.4</a>. Comment . . . . . . . . . . . . . . . . . . . . . <a href="#page-84">84</a>
<a href="#section-3.8.1.5">3.8.1.5</a>. Description . . . . . . . . . . . . . . . . . . . <a href="#page-85">85</a>
<a href="#section-3.8.1.6">3.8.1.6</a>. Geographic Position . . . . . . . . . . . . . . . <a href="#page-87">87</a>
<a href="#section-3.8.1.7">3.8.1.7</a>. Location . . . . . . . . . . . . . . . . . . . . <a href="#page-88">88</a>
<a href="#section-3.8.1.8">3.8.1.8</a>. Percent Complete . . . . . . . . . . . . . . . . <a href="#page-89">89</a>
<a href="#section-3.8.1.9">3.8.1.9</a>. Priority . . . . . . . . . . . . . . . . . . . . <a href="#page-90">90</a>
<a href="#section-3.8.1.10">3.8.1.10</a>. Resources . . . . . . . . . . . . . . . . . . . . <a href="#page-92">92</a>
<a href="#section-3.8.1.11">3.8.1.11</a>. Status . . . . . . . . . . . . . . . . . . . . . <a href="#page-93">93</a>
<a href="#section-3.8.1.12">3.8.1.12</a>. Summary . . . . . . . . . . . . . . . . . . . . . <a href="#page-94">94</a>
<a href="#section-3.8.2">3.8.2</a>. Date and Time Component Properties . . . . . . . . . <a href="#page-95">95</a>
<a href="#section-3.8.2.1">3.8.2.1</a>. Date-Time Completed . . . . . . . . . . . . . . . <a href="#page-95">95</a>
<a href="#section-3.8.2.2">3.8.2.2</a>. Date-Time End . . . . . . . . . . . . . . . . . . <a href="#page-96">96</a>
<a href="#section-3.8.2.3">3.8.2.3</a>. Date-Time Due . . . . . . . . . . . . . . . . . . <a href="#page-97">97</a>
<a href="#section-3.8.2.4">3.8.2.4</a>. Date-Time Start . . . . . . . . . . . . . . . . . <a href="#page-99">99</a>
<a href="#section-3.8.2.5">3.8.2.5</a>. Duration . . . . . . . . . . . . . . . . . . . . <a href="#page-100">100</a>
<a href="#section-3.8.2.6">3.8.2.6</a>. Free/Busy Time . . . . . . . . . . . . . . . . . <a href="#page-101">101</a>
<a href="#section-3.8.2.7">3.8.2.7</a>. Time Transparency . . . . . . . . . . . . . . . . <a href="#page-102">102</a>
<a href="#section-3.8.3">3.8.3</a>. Time Zone Component Properties . . . . . . . . . . . <a href="#page-103">103</a>
<a href="#section-3.8.3.1">3.8.3.1</a>. Time Zone Identifier . . . . . . . . . . . . . . <a href="#page-103">103</a>
<a href="#section-3.8.3.2">3.8.3.2</a>. Time Zone Name . . . . . . . . . . . . . . . . . <a href="#page-105">105</a>
<a href="#section-3.8.3.3">3.8.3.3</a>. Time Zone Offset From . . . . . . . . . . . . . . <a href="#page-106">106</a>
<a href="#section-3.8.3.4">3.8.3.4</a>. Time Zone Offset To . . . . . . . . . . . . . . . <a href="#page-106">106</a>
<a href="#section-3.8.3.5">3.8.3.5</a>. Time Zone URL . . . . . . . . . . . . . . . . . . <a href="#page-107">107</a>
<a href="#section-3.8.4">3.8.4</a>. Relationship Component Properties . . . . . . . . . . <a href="#page-108">108</a>
<a href="#section-3.8.4.1">3.8.4.1</a>. Attendee . . . . . . . . . . . . . . . . . . . . <a href="#page-108">108</a>
<a href="#section-3.8.4.2">3.8.4.2</a>. Contact . . . . . . . . . . . . . . . . . . . . . <a href="#page-111">111</a>
<span class="grey">Desruisseaux Standards Track [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
<a href="#section-3.8.4.3">3.8.4.3</a>. Organizer . . . . . . . . . . . . . . . . . . . . <a href="#page-113">113</a>
<a href="#section-3.8.4.4">3.8.4.4</a>. Recurrence ID . . . . . . . . . . . . . . . . . . <a href="#page-114">114</a>
<a href="#section-3.8.4.5">3.8.4.5</a>. Related To . . . . . . . . . . . . . . . . . . . <a href="#page-117">117</a>
<a href="#section-3.8.4.6">3.8.4.6</a>. Uniform Resource Locator . . . . . . . . . . . . <a href="#page-118">118</a>
<a href="#section-3.8.4.7">3.8.4.7</a>. Unique Identifier . . . . . . . . . . . . . . . . <a href="#page-119">119</a>
<a href="#section-3.8.5">3.8.5</a>. Recurrence Component Properties . . . . . . . . . . . <a href="#page-120">120</a>
<a href="#section-3.8.5.1">3.8.5.1</a>. Exception Date-Times . . . . . . . . . . . . . . <a href="#page-120">120</a>
<a href="#section-3.8.5.2">3.8.5.2</a>. Recurrence Date-Times . . . . . . . . . . . . . . <a href="#page-122">122</a>
<a href="#section-3.8.5.3">3.8.5.3</a>. Recurrence Rule . . . . . . . . . . . . . . . . . <a href="#page-124">124</a>
<a href="#section-3.8.6">3.8.6</a>. Alarm Component Properties . . . . . . . . . . . . . <a href="#page-134">134</a>
<a href="#section-3.8.6.1">3.8.6.1</a>. Action . . . . . . . . . . . . . . . . . . . . . <a href="#page-134">134</a>
<a href="#section-3.8.6.2">3.8.6.2</a>. Repeat Count . . . . . . . . . . . . . . . . . . <a href="#page-135">135</a>
<a href="#section-3.8.6.3">3.8.6.3</a>. Trigger . . . . . . . . . . . . . . . . . . . . . <a href="#page-135">135</a>
<a href="#section-3.8.7">3.8.7</a>. Change Management Component Properties . . . . . . . <a href="#page-138">138</a>
<a href="#section-3.8.7.1">3.8.7.1</a>. Date-Time Created . . . . . . . . . . . . . . . . <a href="#page-138">138</a>
<a href="#section-3.8.7.2">3.8.7.2</a>. Date-Time Stamp . . . . . . . . . . . . . . . . . <a href="#page-139">139</a>
<a href="#section-3.8.7.3">3.8.7.3</a>. Last Modified . . . . . . . . . . . . . . . . . . <a href="#page-140">140</a>
<a href="#section-3.8.7.4">3.8.7.4</a>. Sequence Number . . . . . . . . . . . . . . . . . <a href="#page-141">141</a>
<a href="#section-3.8.8">3.8.8</a>. Miscellaneous Component Properties . . . . . . . . . <a href="#page-142">142</a>
<a href="#section-3.8.8.1">3.8.8.1</a>. IANA Properties . . . . . . . . . . . . . . . . . <a href="#page-142">142</a>
<a href="#section-3.8.8.2">3.8.8.2</a>. Non-Standard Properties . . . . . . . . . . . . . <a href="#page-142">142</a>
<a href="#section-3.8.8.3">3.8.8.3</a>. Request Status . . . . . . . . . . . . . . . . . <a href="#page-144">144</a>
<a href="#section-4">4</a>. iCalendar Object Examples . . . . . . . . . . . . . . . . . . <a href="#page-146">146</a>
<a href="#section-5">5</a>. Recommended Practices . . . . . . . . . . . . . . . . . . . . <a href="#page-150">150</a>
<a href="#section-6">6</a>. Internationalization Considerations . . . . . . . . . . . . . <a href="#page-151">151</a>
<a href="#section-7">7</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="#page-151">151</a>
<a href="#section-8">8</a>. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <a href="#page-151">151</a>
<a href="#section-8.1">8.1</a>. iCalendar Media Type Registration . . . . . . . . . . . . <a href="#page-151">151</a>
<a href="#section-8.2">8.2</a>. New iCalendar Elements Registration . . . . . . . . . . . <a href="#page-155">155</a>
<a href="#section-8.2.1">8.2.1</a>. iCalendar Elements Registration Procedure . . . . . . <a href="#page-155">155</a>
<a href="#section-8.2.2">8.2.2</a>. Registration Template for Components . . . . . . . . <a href="#page-155">155</a>
<a href="#section-8.2.3">8.2.3</a>. Registration Template for Properties . . . . . . . . <a href="#page-156">156</a>
<a href="#section-8.2.4">8.2.4</a>. Registration Template for Parameters . . . . . . . . <a href="#page-156">156</a>
<a href="#section-8.2.5">8.2.5</a>. Registration Template for Value Data Types . . . . . <a href="#page-157">157</a>
<a href="#section-8.2.6">8.2.6</a>. Registration Template for Values . . . . . . . . . . <a href="#page-157">157</a>
<a href="#section-8.3">8.3</a>. Initial iCalendar Elements Registries . . . . . . . . . . <a href="#page-158">158</a>
<a href="#section-8.3.1">8.3.1</a>. Components Registry . . . . . . . . . . . . . . . . . <a href="#page-158">158</a>
<a href="#section-8.3.2">8.3.2</a>. Properties Registry . . . . . . . . . . . . . . . . . <a href="#page-158">158</a>
<a href="#section-8.3.3">8.3.3</a>. Parameters Registry . . . . . . . . . . . . . . . . . <a href="#page-161">161</a>
<a href="#section-8.3.4">8.3.4</a>. Value Data Types Registry . . . . . . . . . . . . . . <a href="#page-162">162</a>
<a href="#section-8.3.5">8.3.5</a>. Calendar User Types Registry . . . . . . . . . . . . <a href="#page-162">162</a>
<a href="#section-8.3.6">8.3.6</a>. Free/Busy Time Types Registry . . . . . . . . . . . . <a href="#page-163">163</a>
<a href="#section-8.3.7">8.3.7</a>. Participation Statuses Registry . . . . . . . . . . . <a href="#page-163">163</a>
<a href="#section-8.3.8">8.3.8</a>. Relationship Types Registry . . . . . . . . . . . . . <a href="#page-164">164</a>
<a href="#section-8.3.9">8.3.9</a>. Participation Roles Registry . . . . . . . . . . . . <a href="#page-164">164</a>
<a href="#section-8.3.10">8.3.10</a>. Actions Registry . . . . . . . . . . . . . . . . . . <a href="#page-165">165</a>
<a href="#section-8.3.11">8.3.11</a>. Classifications Registry . . . . . . . . . . . . . . <a href="#page-165">165</a>
<a href="#section-8.3.12">8.3.12</a>. Methods Registry . . . . . . . . . . . . . . . . . . <a href="#page-165">165</a>
<span class="grey">Desruisseaux Standards Track [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
<a href="#section-9">9</a>. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-165">165</a>
<a href="#section-10">10</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-166">166</a>
<a href="#section-10.1">10.1</a>. Normative References . . . . . . . . . . . . . . . . . . <a href="#page-166">166</a>
<a href="#section-10.2">10.2</a>. Informative References . . . . . . . . . . . . . . . . . <a href="#page-167">167</a>
<a href="#appendix-A">Appendix A</a>. Differences from <a href="./rfc2445">RFC 2445</a> . . . . . . . . . . . . . <a href="#page-169">169</a>
<a href="#appendix-A.1">A.1</a>. New Restrictions . . . . . . . . . . . . . . . . . . . . <a href="#page-169">169</a>
<a href="#appendix-A.2">A.2</a>. Restrictions Removed . . . . . . . . . . . . . . . . . . <a href="#page-169">169</a>
<a href="#appendix-A.3">A.3</a>. Deprecated Features . . . . . . . . . . . . . . . . . . . <a href="#page-169">169</a>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
The use of calendaring and scheduling has grown considerably in the
last decade. Enterprise and inter-enterprise business has become
dependent on rapid scheduling of events and actions using this
information technology. This memo is intended to progress the level
of interoperability possible between dissimilar calendaring and
scheduling applications. This memo defines a MIME content type for
exchanging electronic calendaring and scheduling information. The
Internet Calendaring and Scheduling Core Object Specification, or
iCalendar, allows for the capture and exchange of information
normally stored within a calendaring and scheduling application; such
as a Personal Information Manager (PIM) or a Group-Scheduling
product.
The iCalendar format is suitable as an exchange format between
applications or systems. The format is defined in terms of a MIME
content type. This will enable the object to be exchanged using
several transports, including but not limited to SMTP, HTTP, a file
system, desktop interactive protocols such as the use of a memory-
based clipboard or drag/drop interactions, point-to-point
asynchronous communication, wired-network transport, or some form of
unwired transport such as infrared.
The memo also provides for the definition of iCalendar object methods
that will map this content type to a set of messages for supporting
calendaring and scheduling operations such as requesting, replying
to, modifying, and canceling meetings or appointments, to-dos, and
journal entries. The iCalendar object methods can be used to define
other calendaring and scheduling operations such as requesting for
and replying with free/busy time data. Such a scheduling protocol is
defined in the iCalendar Transport-independent Interoperability
Protocol (iTIP) defined in [<a href="#ref-2446bis" title=""iCalendar Transport-Independent Interoperability Protocol (iTIP)"">2446bis</a>].
The memo also includes a formal grammar for the content type based on
the Internet ABNF defined in [<a href="./rfc5234" title=""Augmented BNF for Syntax Specifications: ABNF"">RFC5234</a>]. This ABNF is required for
the implementation of parsers and to serve as the definitive
reference when ambiguities or questions arise in interpreting the
descriptive prose definition of the memo. Additional restrictions
<span class="grey">Desruisseaux Standards Track [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
that could not easily be expressed with the ABNF syntax are specified
as comments in the ABNF. Comments with normative statements should
be treated as such.
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Basic Grammar and Conventions</span>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].
This memo makes use of both a descriptive prose and a more formal
notation for defining the calendaring and scheduling format.
The notation used in this memo is the ABNF notation of [<a href="./rfc5234" title=""Augmented BNF for Syntax Specifications: ABNF"">RFC5234</a>].
Readers intending on implementing the format defined in this memo
should be familiar with this notation in order to properly interpret
the specifications of this memo.
All numeric values used in this memo are given in decimal notation.
All names of properties, property parameters, enumerated property
values, and property parameter values are case-insensitive. However,
all other property values are case-sensitive, unless otherwise
stated.
Note: All indented editorial notes, such as this one, are intended
to provide the reader with additional information. The
information is not essential to the building of an implementation
conformant with this memo. The information is provided to
highlight a particular feature or characteristic of the memo.
The format for the iCalendar object is based on the syntax of the
text/directory media type [<a href="./rfc2425" title=""A MIME Content-Type for Directory Information"">RFC2425</a>]. While the iCalendar object is
not a profile of the text/directory media type [<a href="./rfc2425" title=""A MIME Content-Type for Directory Information"">RFC2425</a>], it does
reuse a number of the elements from the [<a href="./rfc2425" title=""A MIME Content-Type for Directory Information"">RFC2425</a>] specification.
<span class="h3"><a class="selflink" id="section-2.1" href="#section-2.1">2.1</a>. Formatting Conventions</span>
The elements defined in this memo are defined in prose. Many of the
terms used to describe these have common usage that is different than
the standards usage of this memo. In order to reference, within this
memo, elements of the calendaring and scheduling model, core object
(this memo), or interoperability protocol [<a href="#ref-2446bis" title=""iCalendar Transport-Independent Interoperability Protocol (iTIP)"">2446bis</a>] some formatting
conventions have been used. Calendaring and scheduling roles are
referred to in quoted-strings of text with the first character of
each word in uppercase. For example, "Organizer" refers to a role of
a "Calendar User" within the scheduling protocol defined by
[<a href="#ref-2446bis" title=""iCalendar Transport-Independent Interoperability Protocol (iTIP)"">2446bis</a>]. Calendar components defined by this memo are referred to
<span class="grey">Desruisseaux Standards Track [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
with capitalized, quoted-strings of text. All calendar components
start with the letter "V". For example, "VEVENT" refers to the event
calendar component, "VTODO" refers to the to-do calendar component,
and "VJOURNAL" refers to the daily journal calendar component.
Scheduling methods defined by iTIP [<a href="#ref-2446bis" title=""iCalendar Transport-Independent Interoperability Protocol (iTIP)"">2446bis</a>] are referred to with
capitalized, quoted-strings of text. For example, "REQUEST" refers
to the method for requesting a scheduling calendar component be
created or modified, and "REPLY" refers to the method a recipient of
a request uses to update their status with the "Organizer" of the
calendar component.
The properties defined by this memo are referred to with capitalized,
quoted-strings of text, followed by the word "property". For
example, "ATTENDEE" property refers to the iCalendar property used to
convey the calendar address of a calendar user. Property parameters
defined by this memo are referred to with lowercase, quoted-strings
of text, followed by the word "parameter". For example, "value"
parameter refers to the iCalendar property parameter used to override
the default value type for a property value. Enumerated values
defined by this memo are referred to with capitalized text, either
alone or followed by the word "value". For example, the "MINUTELY"
value can be used with the "FREQ" component of the "RECUR" value type
to specify repeating components based on an interval of one minute or
more.
The following table lists the different characters from the
[<a href="#ref-US-ASCII" title=""Coded Character Set - 7-bit American Standard Code for Information Interchange"">US-ASCII</a>] character set that is referenced in this document. For
each character, the table specifies the character name used
throughout this document, along with its US-ASCII decimal codepoint.
<span class="grey">Desruisseaux Standards Track [Page 7]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
+------------------------+-------------------+
| Character name | Decimal codepoint |
+------------------------+-------------------+
| HTAB | 9 |
| LF | 10 |
| CR | 13 |
| DQUOTE | 22 |
| SPACE | 32 |
| PLUS SIGN | 43 |
| COMMA | 44 |
| HYPHEN-MINUS | 45 |
| PERIOD | 46 |
| SOLIDUS | 47 |
| COLON | 58 |
| SEMICOLON | 59 |
| LATIN CAPITAL LETTER N | 78 |
| LATIN CAPITAL LETTER T | 84 |
| LATIN CAPITAL LETTER X | 88 |
| LATIN CAPITAL LETTER Z | 90 |
| BACKSLASH | 92 |
| LATIN SMALL LETTER N | 110 |
+------------------------+-------------------+
<span class="h3"><a class="selflink" id="section-2.2" href="#section-2.2">2.2</a>. Related Memos</span>
Implementers will need to be familiar with several other memos that,
along with this memo, form a framework for Internet calendaring and
scheduling standards. This memo specifies a core specification of
objects, value types, properties, and property parameters.
o iTIP [<a href="#ref-2446bis" title=""iCalendar Transport-Independent Interoperability Protocol (iTIP)"">2446bis</a>] specifies an interoperability protocol for
scheduling between different implementations;
o iCalendar Message-Based Interoperability Protocol (iMIP) [<a href="#ref-2447bis" title=""iCalendar Message-Based Interoperability Protocol (iMIP)"">2447bis</a>]
specifies an Internet email binding for [<a href="#ref-2446bis" title=""iCalendar Transport-Independent Interoperability Protocol (iTIP)"">2446bis</a>].
This memo does not attempt to repeat the specification of concepts or
definitions from these other memos. Where possible, references are
made to the memo that provides for the specification of these
concepts or definitions.
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. iCalendar Object Specification</span>
The following sections define the details of a Calendaring and
Scheduling Core Object Specification. The Calendaring and Scheduling
Core Object is a collection of calendaring and scheduling
information. Typically, this information will consist of an
iCalendar stream with one or more iCalendar objects. The body of the
<span class="grey">Desruisseaux Standards Track [Page 8]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-9" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
iCalendar object consists of a sequence of calendar properties and
one or more calendar components.
<a href="#section-3.1">Section 3.1</a> defines the content line format; <a href="#section-3.2">Section 3.2</a> defines the
property parameter format; <a href="#section-3.3">Section 3.3</a> defines the data types for
property values; <a href="#section-3.4">Section 3.4</a> defines the iCalendar object format;
<a href="#section-3.5">Section 3.5</a> defines the iCalendar property format; <a href="#section-3.6">Section 3.6</a>
defines the calendar component format; <a href="#section-3.7">Section 3.7</a> defines calendar
properties; and <a href="#section-3.8">Section 3.8</a> defines calendar component properties.
This information is intended to be an integral part of the MIME
content type registration. In addition, this information can be used
independent of such content registration. In particular, this memo
has direct applicability for use as a calendaring and scheduling
exchange format in file-, memory-, or network-based transport
mechanisms.
<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>. Content Lines</span>
The iCalendar object is organized into individual lines of text,
called content lines. Content lines are delimited by a line break,
which is a CRLF sequence (CR character followed by LF character).
Lines of text SHOULD NOT be longer than 75 octets, excluding the line
break. Long content lines SHOULD be split into a multiple line
representations using a line "folding" technique. That is, a long
line can be split between any two characters by inserting a CRLF
immediately followed by a single linear white-space character (i.e.,
SPACE or HTAB). Any sequence of CRLF followed immediately by a
single linear white-space character is ignored (i.e., removed) when
processing the content type.
For example, the line:
DESCRIPTION:This is a long description that exists on a long line.
Can be represented as:
DESCRIPTION:This is a lo
ng description
that exists on a long line.
The process of moving from this folded multiple-line representation
to its single-line representation is called "unfolding". Unfolding
is accomplished by removing the CRLF and the linear white-space
character that immediately follows.
<span class="grey">Desruisseaux Standards Track [Page 9]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-10" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
When parsing a content line, folded lines MUST first be unfolded
according to the unfolding procedure described above.
Note: It is possible for very simple implementations to generate
improperly folded lines in the middle of a UTF-8 multi-octet
sequence. For this reason, implementations need to unfold lines
in such a way to properly restore the original sequence.
The content information associated with an iCalendar object is
formatted using a syntax similar to that defined by [<a href="./rfc2425" title=""A MIME Content-Type for Directory Information"">RFC2425</a>]. That
is, the content information consists of CRLF-separated content lines.
The following notation defines the lines of content in an iCalendar
object:
contentline = name *(";" param ) ":" value CRLF
; This ABNF is just a general definition for an initial parsing
; of the content line into its property name, parameter list,
; and value string
; When parsing a content line, folded lines MUST first
; be unfolded according to the unfolding procedure
; described above. When generating a content line, lines
; longer than 75 octets SHOULD be folded according to
; the folding procedure described above.
name = iana-token / x-name
iana-token = 1*(ALPHA / DIGIT / "-")
; iCalendar identifier registered with IANA
x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
; Reserved for experimental use.
vendorid = 3*(ALPHA / DIGIT)
; Vendor identification
param = param-name "=" param-value *("," param-value)
; Each property defines the specific ABNF for the parameters
; allowed on the property. Refer to specific properties for
; precise parameter ABNF.
param-name = iana-token / x-name
param-value = paramtext / quoted-string
paramtext = *SAFE-CHAR
<span class="grey">Desruisseaux Standards Track [Page 10]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-11" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
value = *VALUE-CHAR
quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
; Any character except CONTROL and DQUOTE
SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
/ NON-US-ASCII
; Any character except CONTROL, DQUOTE, ";", ":", ","
VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
; Any textual character
NON-US-ASCII = UTF8-2 / UTF8-3 / UTF8-4
; UTF8-2, UTF8-3, and UTF8-4 are defined in [<a href="./rfc3629" title=""UTF-8, a transformation format of ISO 10646"">RFC3629</a>]
CONTROL = %x00-08 / %x0A-1F / %x7F
; All the controls except HTAB
The property value component of a content line has a format that is
property specific. Refer to the section describing each property for
a definition of this format.
All names of properties, property parameters, enumerated property
values and property parameter values are case-insensitive. However,
all other property values are case-sensitive, unless otherwise
stated.
<span class="h4"><a class="selflink" id="section-3.1.1" href="#section-3.1.1">3.1.1</a>. List and Field Separators</span>
Some properties and parameters allow a list of values. Values in a
list of values MUST be separated by a COMMA character. There is no
significance to the order of values in a list. For those parameter
values (such as those that specify URI values) that are specified in
quoted-strings, the individual quoted-strings are separated by a
COMMA character.
Some property values are defined in terms of multiple parts. These
structured property values MUST have their value parts separated by a
SEMICOLON character.
Some properties allow a list of parameters. Each property parameter
in a list of property parameters MUST be separated by a SEMICOLON
character.
<span class="grey">Desruisseaux Standards Track [Page 11]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-12" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
Property parameters with values containing a COLON character, a
SEMICOLON character or a COMMA character MUST be placed in quoted
text.
For example, in the following properties, a SEMICOLON is used to
separate property parameters from each other and a COMMA character is
used to separate property values in a value list.
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:
RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
<span class="h4"><a class="selflink" id="section-3.1.2" href="#section-3.1.2">3.1.2</a>. Multiple Values</span>
Some properties defined in the iCalendar object can have multiple
values. The general rule for encoding multi-valued items is to
simply create a new content line for each value, including the
property name. However, it should be noted that some properties
support encoding multiple values in a single property by separating
the values with a COMMA character. Individual property definitions
should be consulted for determining whether a specific property
allows multiple values and in which of these two forms. Multi-valued
properties MUST NOT be used to specify multiple language variants of
the same value. Calendar applications SHOULD display all values.
<span class="h4"><a class="selflink" id="section-3.1.3" href="#section-3.1.3">3.1.3</a>. Binary Content</span>
Binary content information in an iCalendar object SHOULD be
referenced using a URI within a property value. That is, the binary
content information SHOULD be placed in an external MIME entity that
can be referenced by a URI from within the iCalendar object. In
applications where this is not feasible, binary content information
can be included within an iCalendar object, but only after first
encoding it into text using the "BASE64" encoding method defined in
[<a href="./rfc4648" title=""The Base16, Base32, and Base64 Data Encodings"">RFC4648</a>]. Inline binary content SHOULD only be used in applications
whose special circumstances demand that an iCalendar object be
expressed as a single entity. A property containing inline binary
content information MUST specify the "ENCODING" property parameter.
Binary content information placed external to the iCalendar object
MUST be referenced by a uniform resource identifier (URI).
The following example specifies an "ATTACH" property that references
an attachment external to the iCalendar object with a URI reference:
ATTACH:http://example.com/public/quarterly-report.doc
<span class="grey">Desruisseaux Standards Track [Page 12]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-13" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
The following example specifies an "ATTACH" property with inline
binary encoded content information:
ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH
F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4
<span class="h4"><a class="selflink" id="section-3.1.4" href="#section-3.1.4">3.1.4</a>. Character Set</span>
There is not a property parameter to declare the charset used in a
property value. The default charset for an iCalendar stream is UTF-8
as defined in [<a href="./rfc3629" title=""UTF-8, a transformation format of ISO 10646"">RFC3629</a>].
The "charset" Content-Type parameter MUST be used in MIME transports
to specify the charset being used.
<span class="h3"><a class="selflink" id="section-3.2" href="#section-3.2">3.2</a>. Property Parameters</span>
A property can have attributes with which it is associated. These
"property parameters" contain meta-information about the property or
the property value. Property parameters are provided to specify such
information as the location of an alternate text representation for a
property value, the language of a text property value, the value type
of the property value, and other attributes.
Property parameter values that contain the COLON, SEMICOLON, or COMMA
character separators MUST be specified as quoted-string text values.
Property parameter values MUST NOT contain the DQUOTE character. The
DQUOTE character is used as a delimiter for parameter values that
contain restricted characters or URI text. For example:
DESCRIPTION;ALTREP="cid:[email protected]":The Fall'98 Wild
Wizards Conference - - Las Vegas\, NV\, USA
Property parameter values that are not in quoted-strings are case-
insensitive.
The general property parameters defined by this memo are defined by
the following notation:
<span class="grey">Desruisseaux Standards Track [Page 13]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-14" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
icalparameter = altrepparam ; Alternate text representation
/ cnparam ; Common name
/ cutypeparam ; Calendar user type
/ delfromparam ; Delegator
/ deltoparam ; Delegatee
/ dirparam ; Directory entry
/ encodingparam ; Inline encoding
/ fmttypeparam ; Format type
/ fbtypeparam ; Free/busy time type
/ languageparam ; Language for text
/ memberparam ; Group or list membership
/ partstatparam ; Participation status
/ rangeparam ; Recurrence identifier range
/ trigrelparam ; Alarm trigger relationship
/ reltypeparam ; Relationship type
/ roleparam ; Participation role
/ rsvpparam ; RSVP expectation
/ sentbyparam ; Sent by
/ tzidparam ; Reference to time zone object
/ valuetypeparam ; Property value data type
/ other-param
other-param = (iana-param / x-param)
iana-param = iana-token "=" param-value *("," param-value)
; Some other IANA-registered iCalendar parameter.
x-param = x-name "=" param-value *("," param-value)
; A non-standard, experimental parameter.
Applications MUST ignore x-param and iana-param values they don't
recognize.
<span class="h4"><a class="selflink" id="section-3.2.1" href="#section-3.2.1">3.2.1</a>. Alternate Text Representation</span>
Parameter Name: ALTREP
Purpose: To specify an alternate text representation for the
property value.
Format Definition: This property parameter is defined by the
following notation:
altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
Description: This parameter specifies a URI that points to an
alternate representation for a textual property value. A property
specifying this parameter MUST also include a value that reflects
<span class="grey">Desruisseaux Standards Track [Page 14]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-15" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>
the default representation of the text value. The URI parameter
value MUST be specified in a quoted-string.
Note: While there is no restriction imposed on the URI schemes
allowed for this parameter, Content Identifier (CID) [<a href="./rfc2392" title=""Content-ID and Message-ID Uniform Resource Locators"">RFC2392</a>],
HTTP [<a href="./rfc2616" title=""Hypertext Transfer Protocol -- HTTP/1.1"">RFC2616</a>], and HTTPS [<a href="./rfc2818" title=""HTTP Over TLS"">RFC2818</a>] are the URI schemes most
commonly used by current implementations.
Example:
DESCRIPTION;ALTREP="CID:[email protected]":
Project XYZ Review Meeting will include the following agenda
items: (a) Market Overview\, (b) Finances\, (c) Project Man
agement
The "ALTREP" property parameter value might point to a "text/html"
content portion.
Content-Type:text/html
Content-Id:<[email protected]>
<html>
<head>
<title></title>
</head>
<body>
<p>
<b>Project XYZ Review Meeting</b> will include
the following agenda items:
<ol>
<li>Market Overview</li>
<li>Finances</li>
<li>Project Management</li>
</ol>
</p>
</body>
</html>
<span class="h4"><a class="selflink" id="section-3.2.2" href="#section-3.2.2">3.2.2</a>. Common Name</span>
Parameter Name: CN
Purpose: To specify the common name to be associated with the
calendar user specified by the property.
Format Definition: This property parameter is defined by the
following notation:
<span class="grey">Desruisseaux Standards Track [Page 15]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-16" ></span>
<span class="grey"><a href="./rfc5545">RFC 5545</a> iCalendar September 2009</span>