simplify the output so its readable, parseable, easy to write - ics2txt - conve… | |
git clone git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit 7ef52e239bfc8757d45f3d868920dba32dcb5b61 | |
parent 31dd5e1db68625ddd31ab25ce43877ca77df927f | |
Author: Josuah Demangeon <[email protected]> | |
Date: Sun, 7 Jul 2019 21:50:43 +0200 | |
simplify the output so its readable, parseable, easy to write | |
Diffstat: | |
M Makefile | 4 ++-- | |
M README | 109 ++++++++++++++++++++---------… | |
D doc/rfc5545.txt | 9411 -----------------------------… | |
M ics2txt | 183 ++++++++++++++---------------… | |
M ics2txt.1 | 44 +++--------------------------… | |
D txt2ics | 93 -----------------------------… | |
D txt2ics.1 | 51 -----------------------------… | |
7 files changed, 156 insertions(+), 9739 deletions(-) | |
--- | |
diff --git a/Makefile b/Makefile | |
@@ -1,5 +1,5 @@ | |
-BIN = ics2txt txt2ics | |
-MAN1 = ics2txt.1 txt2ics.1 | |
+BIN = ics2txt | |
+MAN1 = ics2txt.1 | |
all: | |
diff --git a/README b/README | |
@@ -1,52 +1,83 @@ | |
-agenda | |
-==============================================================================… | |
+ics2txt | |
+======= | |
-*agenda* is an awk scripts to deal with iCal [1] format to publish, | |
+*ics2txt* is an awk scripts to deal with iCal [1] format to publish, | |
display and convert *.ics files. | |
-It is still a work in progress and should be released soon. In the meantime, | |
-example output from l'agenda du libre [2]: | |
+[1]: https://tools.ietf.org/rfc/rfc5545.txt | |
- [2017/04] | |
+Sample output: | |
- 19 16:00 Linux et les Logiciels Libres | |
- 19:00 château Goerg, Callian, Provence-Alpes-Côte d'Azur, F… | |
- Venez découvrir Linux et les logiciels libres, mais aussi … | |
- faire aider avec votre matériel informatique quel qu’il … | |
- imprimante, box, tablette, smartphone y compris. | |
+2019-02-02 | |
- 16:30 Permanence GNU/Linux - Les Quatre Libertés | |
- 18:30 10 rue François Henry d’Harcourt, Montpellier, Occitanie… | |
+07:30 Welcome to FOSDEM 2019 | |
+07:55 Janson | |
+ FOSDEM welcome and opening talk. | |
- 17:00 Atelier artiste - hacker | |
- 19:00 62 rue Fiéffé, Bordeaux, Nouvelle-Aquitaine, France | |
- Ateliers-cours à la fabrique-pola - L@bx | |
+08:30 The State of Go | |
+09:00 UD2.120 (Chavanne) | |
+ Go 1.12 is planned to be released in February 2019 and this talk | |
+ covers what's coming up with it.We'll talk about Go Modules, the | |
+ proposals for Go 2, and all of the new things you might have missed. | |
- 17:00 Introduction à la programmation de jeux | |
- 19:00 55 rue de Vincennes, Montreuil, Île-de-France, France | |
+09:30 HTTP/3 | |
+10:30 UD2.208 (Decroly) | |
+ HTTP/3 is the next coming HTTP version. This time TCP is replaced by | |
+ the new transport protocol QUIC and things are different yet again! | |
- 17:30 SGEG | |
- 20:00 8 rue Colary, Carnac, Bretagne, France | |
- Le SGEG (Sansten GNU Easy Group) vous invite tous les | |
- 3e mercredi de chaque mois au SGEG Meeting pour discuter de | |
- Logiciel Libre, boire un verre, manger un morceau et surtou… | |
- rencontrer ! | |
+10:05 Minimalism matters | |
+10:25 K.4.201 | |
+ Minimalism matters in computing. To trust systems we need to be able | |
+ to understand them completely. Openssl heartbleed disaster was caused | |
+ by code no longer being minimalistic, even if it is free and open | |
+ source software. Hardware manfucturers and proprietary closed source | |
+ solutions make things even worse with expectations of intrusion to | |
+ privacy and backdoors if we don't aim for free hardware, software and | |
+ minimalism. In this talk I will discuss minimalism in a broad context | |
+ and narrow down on what the free software community can aim for. | |
- 17:30 Rencontre Logiciels Libres | |
- 20:30 17 rue Bellegarde, Toulouse, Occitanie, France | |
- L’association Toulibre organise une rencontre autour des | |
- Logiciels Libres le mercredi 19 avril 2017, de 19h30 à 22h… | |
- Centre Culturel Bellegarde, 17 rue Bellegarde à Toulouse. | |
+2019-02-03 | |
- 19:00 Rencontre Tetalab | |
- 21:00 12 rue Ferdinand Lassalle, Toulouse, Occitanie, France | |
- Rencontre hebdomadaire des hackers et artistes libristes | |
- Toulousains. | |
+07:55 Microkernel virtualization under one roof | |
+08:30 AW1.121 | |
+ Today's off-the-shell virtualization solution is ridden with | |
+ complexity. Application of virtualization call for trustworthy | |
+ solutions. Complexity defeats trust.Microkernels with virtualization | |
+ extensions and user-level VMMs on top are a approach to mitigate | |
+ complexity. Modern microkernels like seL4, the NOVA microhypervisor, | |
+ Genode's -hw- kernel or Fiasco.OC are such promising candidates. | |
+ Fortunately and unfortunately, the diversity come with fragmentation | |
+ of the small microkernel community. There are several VMMs for each | |
+ platform tight to a specific microkernel, rendering it unusable | |
+ across various kernels.Genode supports several kernels already, so | |
+ that unification of virtualization interfaces for VMMs across kernels | |
+ seem to come into reach. Does it ? The talk will cover the venture | |
+ and current state of harmonization hardware-assisted virtualization | |
+ interfaces to fit into the Genode OS framework. | |
- 20 16:00 Soirée Cozy Cloud | |
- 18:00 123 boulevard Louis Blanc, La Roche-sur-Yon, Pays de la Loi… | |
- Le 20 Avril 2017, K’ Rément Libre et LabOuest vous propo… | |
- de venir découvrir Cozy. | |
+14:40 FOSDEM infrastructure review | |
+14:55 H.2215 (Ferrer) | |
+ Informational and fun. | |
+ | |
+15:00 2019 - Fifty years of Unix and Linux advances | |
+15:50 Janson | |
+ 2019 marks the fiftieth anniversary of Unix, but it is also the | |
+ fiftieth anniversary of the ArpaNet/Internet, and people walking on | |
+ the moon. It marks the 50th anniversary of Woodstock, the beginning | |
+ of America's LGBTQ movement at the Stonewall Inn in New York City, | |
+ and maddog wrote his first program fifty years ago. It was also in | |
+ 1969 that he shaved for the last time.2019 marks the 30th year of the | |
+ World Wide Web, the 25th anniversary of V1.0 of the Linux kernel, and | |
+ of many GNU/Linux distributions starting. 2019 also marks the | |
+ twentieth anniversary of the Linux Professional Institute.All of | |
+ these years, and anniversaries.....but why has Unix (and its younger | |
+ offspring Linux) lasted so long? What was different about Unix that | |
+ caused it to survive and flourish? Why is it important today, and | |
+ how can we take it further? How should we celebrate 2019? While | |
+ maddog does not have all the answers, he tries to make the answers he | |
+ does have interesting and fun to know. | |
+ | |
+15:55 Closing FOSDEM 2019 | |
+16:00 Janson | |
+ Some closing words. Don't miss it! | |
-[1]: https://tools.ietf.org/rfc/rfc5545.txt | |
-[2]: https://www.agendadulibre.org | |
diff --git a/doc/rfc5545.txt b/doc/rfc5545.txt | |
@@ -1,9411 +0,0 @@ | |
- | |
- | |
- | |
- | |
- | |
- | |
-Network Working Group B. Desruisseaux, Ed. | |
-Request for Comments: 5545 Oracle | |
-Obsoletes: 2445 September 2009 | |
-Category: Standards Track | |
- | |
- | |
- Internet Calendaring and Scheduling Core Object Specification | |
- (iCalendar) | |
- | |
-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 BCP 78 and the IETF Trust's Legal | |
- Provisions Relating to IETF Documents | |
- (http://trustee.ietf.org/license-info) 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 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 1] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- it for publication as an RFC or to translate it into languages other | |
- than English. | |
- | |
-Table of Contents | |
- | |
- 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |
- 2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 6 | |
- 2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 6 | |
- 2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 7 | |
- 3. iCalendar Object Specification . . . . . . . . . . . . . . . 8 | |
- 3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 8 | |
- 3.1.1. List and Field Separators . . . . . . . . . . . . . . 11 | |
- 3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 11 | |
- 3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 11 | |
- 3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 12 | |
- 3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 12 | |
- 3.2.1. Alternate Text Representation . . . . . . . . . . . . 13 | |
- 3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15 | |
- 3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 15 | |
- 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 16 | |
- 3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 16 | |
- 3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 17 | |
- 3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 17 | |
- 3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 18 | |
- 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 19 | |
- 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20 | |
- 3.2.11. Group or List Membership . . . . . . . . . . . . . . 20 | |
- 3.2.12. Participation Status . . . . . . . . . . . . . . . . 21 | |
- 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 22 | |
- 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 23 | |
- 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 24 | |
- 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 25 | |
- 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 25 | |
- 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 26 | |
- 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 26 | |
- 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 28 | |
- 3.3. Property Value Data Types . . . . . . . . . . . . . . . . 29 | |
- 3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 29 | |
- 3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 30 | |
- 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 30 | |
- 3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 31 | |
- 3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 31 | |
- 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 34 | |
- 3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 35 | |
- 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 35 | |
- 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 36 | |
- 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 37 | |
- 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 45 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 2] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 46 | |
- 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 48 | |
- 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 49 | |
- 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 49 | |
- 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 50 | |
- 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 50 | |
- 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 52 | |
- 3.6.2. To-Do Component . . . . . . . . . . . . . . . . . . . 56 | |
- 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 58 | |
- 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 60 | |
- 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 63 | |
- 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 72 | |
- 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 77 | |
- 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 77 | |
- 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 78 | |
- 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 79 | |
- 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 80 | |
- 3.8. Component Properties . . . . . . . . . . . . . . . . . . 81 | |
- 3.8.1. Descriptive Component Properties . . . . . . . . . . 81 | |
- 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 81 | |
- 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 82 | |
- 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 83 | |
- 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 84 | |
- 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 85 | |
- 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 87 | |
- 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 88 | |
- 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 89 | |
- 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 90 | |
- 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 92 | |
- 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 93 | |
- 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 94 | |
- 3.8.2. Date and Time Component Properties . . . . . . . . . 95 | |
- 3.8.2.1. Date-Time Completed . . . . . . . . . . . . . . . 95 | |
- 3.8.2.2. Date-Time End . . . . . . . . . . . . . . . . . . 96 | |
- 3.8.2.3. Date-Time Due . . . . . . . . . . . . . . . . . . 97 | |
- 3.8.2.4. Date-Time Start . . . . . . . . . . . . . . . . . 99 | |
- 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 100 | |
- 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 101 | |
- 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 102 | |
- 3.8.3. Time Zone Component Properties . . . . . . . . . . . 103 | |
- 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 103 | |
- 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 105 | |
- 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 106 | |
- 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 106 | |
- 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 107 | |
- 3.8.4. Relationship Component Properties . . . . . . . . . . 108 | |
- 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 108 | |
- 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 111 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 3] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 113 | |
- 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 114 | |
- 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 117 | |
- 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 118 | |
- 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 119 | |
- 3.8.5. Recurrence Component Properties . . . . . . . . . . . 120 | |
- 3.8.5.1. Exception Date-Times . . . . . . . . . . . . . . 120 | |
- 3.8.5.2. Recurrence Date-Times . . . . . . . . . . . . . . 122 | |
- 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 124 | |
- 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 134 | |
- 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 134 | |
- 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 135 | |
- 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 135 | |
- 3.8.7. Change Management Component Properties . . . . . . . 138 | |
- 3.8.7.1. Date-Time Created . . . . . . . . . . . . . . . . 138 | |
- 3.8.7.2. Date-Time Stamp . . . . . . . . . . . . . . . . . 139 | |
- 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 140 | |
- 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 141 | |
- 3.8.8. Miscellaneous Component Properties . . . . . . . . . 142 | |
- 3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 142 | |
- 3.8.8.2. Non-Standard Properties . . . . . . . . . . . . . 142 | |
- 3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 144 | |
- 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 146 | |
- 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 150 | |
- 6. Internationalization Considerations . . . . . . . . . . . . . 151 | |
- 7. Security Considerations . . . . . . . . . . . . . . . . . . . 151 | |
- 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 151 | |
- 8.1. iCalendar Media Type Registration . . . . . . . . . . . . 151 | |
- 8.2. New iCalendar Elements Registration . . . . . . . . . . . 155 | |
- 8.2.1. iCalendar Elements Registration Procedure . . . . . . 155 | |
- 8.2.2. Registration Template for Components . . . . . . . . 155 | |
- 8.2.3. Registration Template for Properties . . . . . . . . 156 | |
- 8.2.4. Registration Template for Parameters . . . . . . . . 156 | |
- 8.2.5. Registration Template for Value Data Types . . . . . 157 | |
- 8.2.6. Registration Template for Values . . . . . . . . . . 157 | |
- 8.3. Initial iCalendar Elements Registries . . . . . . . . . . 158 | |
- 8.3.1. Components Registry . . . . . . . . . . . . . . . . . 158 | |
- 8.3.2. Properties Registry . . . . . . . . . . . . . . . . . 158 | |
- 8.3.3. Parameters Registry . . . . . . . . . . . . . . . . . 161 | |
- 8.3.4. Value Data Types Registry . . . . . . . . . . . . . . 162 | |
- 8.3.5. Calendar User Types Registry . . . . . . . . . . . . 162 | |
- 8.3.6. Free/Busy Time Types Registry . . . . . . . . . . . . 163 | |
- 8.3.7. Participation Statuses Registry . . . . . . . . . . . 163 | |
- 8.3.8. Relationship Types Registry . . . . . . . . . . . . . 164 | |
- 8.3.9. Participation Roles Registry . . . . . . . . . . . . 164 | |
- 8.3.10. Actions Registry . . . . . . . . . . . . . . . . . . 165 | |
- 8.3.11. Classifications Registry . . . . . . . . . . . . . . 165 | |
- 8.3.12. Methods Registry . . . . . . . . . . . . . . . . . . 165 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 4] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 165 | |
- 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 166 | |
- 10.1. Normative References . . . . . . . . . . . . . . . . . . 166 | |
- 10.2. Informative References . . . . . . . . . . . . . . . . . 167 | |
- Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 169 | |
- A.1. New Restrictions . . . . . . . . . . . . . . . . . . . . 169 | |
- A.2. Restrictions Removed . . . . . . . . . . . . . . . . . . 169 | |
- A.3. Deprecated Features . . . . . . . . . . . . . . . . . . . 169 | |
- | |
-1. Introduction | |
- | |
- 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 [2446bis]. | |
- | |
- The memo also includes a formal grammar for the content type based on | |
- the Internet ABNF defined in [RFC5234]. 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 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 5] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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. | |
- | |
-2. Basic Grammar and Conventions | |
- | |
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |
- document are to be interpreted as described in [RFC2119]. | |
- | |
- 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 [RFC5234]. | |
- 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 [RFC2425]. While the iCalendar object is | |
- not a profile of the text/directory media type [RFC2425], it does | |
- reuse a number of the elements from the [RFC2425] specification. | |
- | |
-2.1. Formatting Conventions | |
- | |
- 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 [2446bis] 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 | |
- [2446bis]. Calendar components defined by this memo are referred to | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 6] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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 [2446bis] 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 | |
- [US-ASCII] 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. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 7] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- +------------------------+-------------------+ | |
- | 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 | | |
- +------------------------+-------------------+ | |
- | |
-2.2. Related Memos | |
- | |
- 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 [2446bis] specifies an interoperability protocol for | |
- scheduling between different implementations; | |
- | |
- o iCalendar Message-Based Interoperability Protocol (iMIP) [2447bis] | |
- specifies an Internet email binding for [2446bis]. | |
- | |
- 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. | |
- | |
-3. iCalendar Object Specification | |
- | |
- 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 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 8] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- iCalendar object consists of a sequence of calendar properties and | |
- one or more calendar components. | |
- | |
- Section 3.1 defines the content line format; Section 3.2 defines the | |
- property parameter format; Section 3.3 defines the data types for | |
- property values; Section 3.4 defines the iCalendar object format; | |
- Section 3.5 defines the iCalendar property format; Section 3.6 | |
- defines the calendar component format; Section 3.7 defines calendar | |
- properties; and Section 3.8 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. | |
- | |
-3.1. Content Lines | |
- | |
- 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. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 9] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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 [RFC2425]. 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 | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 10] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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 [RFC3629] | |
- | |
- 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. | |
- | |
-3.1.1. List and Field Separators | |
- | |
- 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. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 11] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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: | |
- [email protected] | |
- | |
- RDATE;VALUE=DATE:19970304,19970504,19970704,19970904 | |
- | |
-3.1.2. Multiple Values | |
- | |
- 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. | |
- | |
-3.1.3. Binary Content | |
- | |
- 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 | |
- [RFC4648]. 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 | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 12] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The following example specifies an "ATTACH" property with inline | |
- binary encoded content information: | |
- | |
- ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH | |
- F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4 | |
- | |
-3.1.4. Character Set | |
- | |
- 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 [RFC3629]. | |
- | |
- The "charset" Content-Type parameter MUST be used in MIME transports | |
- to specify the charset being used. | |
- | |
-3.2. Property Parameters | |
- | |
- 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: | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 13] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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. | |
- | |
-3.2.1. Alternate Text Representation | |
- | |
- 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 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 14] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- 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) [RFC2392], | |
- HTTP [RFC2616], and HTTPS [RFC2818] 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> | |
- | |
-3.2.2. Common Name | |
- | |
- 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: | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 15] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- cnparam = "CN" "=" param-value | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter specifies the common name | |
- to be associated with the calendar user specified by the property. | |
- The parameter value is text. The parameter value can be used for | |
- display text to be associated with the calendar address specified | |
- by the property. | |
- | |
- Example: | |
- | |
- ORGANIZER;CN="John Smith":mailto:[email protected] | |
- | |
-3.2.3. Calendar User Type | |
- | |
- Parameter Name: CUTYPE | |
- | |
- Purpose: To identify the type of calendar user specified by the | |
- property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- cutypeparam = "CUTYPE" "=" | |
- ("INDIVIDUAL" ; An individual | |
- / "GROUP" ; A group of individuals | |
- / "RESOURCE" ; A physical resource | |
- / "ROOM" ; A room resource | |
- / "UNKNOWN" ; Otherwise not known | |
- / x-name ; Experimental type | |
- / iana-token) ; Other IANA-registered | |
- ; type | |
- ; Default is INDIVIDUAL | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter identifies the type of | |
- calendar user specified by the property. If not specified on a | |
- property that allows this parameter, the default is INDIVIDUAL. | |
- Applications MUST treat x-name and iana-token values they don't | |
- recognize the same way as they would the UNKNOWN value. | |
- | |
- Example: | |
- | |
- ATTENDEE;CUTYPE=GROUP:mailto:[email protected] | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 16] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.2.4. Delegators | |
- | |
- Parameter Name: DELEGATED-FROM | |
- | |
- Purpose: To specify the calendar users that have delegated their | |
- participation to the calendar user specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address | |
- DQUOTE *("," DQUOTE cal-address DQUOTE) | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. This parameter specifies those calendar | |
- users that have delegated their participation in a group-scheduled | |
- event or to-do to the calendar user specified by the property. | |
- The individual calendar address parameter values MUST each be | |
- specified in a quoted-string. | |
- | |
- Example: | |
- | |
- ATTENDEE;DELEGATED-FROM="mailto:[email protected]":mailto: | |
- [email protected] | |
- | |
-3.2.5. Delegatees | |
- | |
- Parameter Name: DELEGATED-TO | |
- | |
- Purpose: To specify the calendar users to whom the calendar user | |
- specified by the property has delegated participation. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE | |
- *("," DQUOTE cal-address DQUOTE) | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. This parameter specifies those calendar | |
- users whom have been delegated participation in a group-scheduled | |
- event or to-do by the calendar user specified by the property. | |
- The individual calendar address parameter values MUST each be | |
- specified in a quoted-string. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 17] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: | |
- | |
- ATTENDEE;DELEGATED-TO="mailto:[email protected]","mailto:jqpublic | |
- @example.com":mailto:[email protected] | |
- | |
-3.2.6. Directory Entry Reference | |
- | |
- Parameter Name: DIR | |
- | |
- Purpose: To specify reference to a directory entry associated with | |
- the calendar user specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- dirparam = "DIR" "=" DQUOTE uri DQUOTE | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter specifies a reference to | |
- the directory entry associated with the calendar user specified by | |
- the property. The parameter value is a URI. 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, CID [RFC2392], DATA [RFC2397], FILE | |
- [RFC1738], FTP [RFC1738], HTTP [RFC2616], HTTPS [RFC2818], LDAP | |
- [RFC4516], and MID [RFC2392] are the URI schemes most commonly | |
- used by current implementations. | |
- | |
- Example: | |
- | |
- ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries, | |
- c=US???(cn=Jim%20Dolittle)":mailto:[email protected] | |
- | |
-3.2.7. Inline Encoding | |
- | |
- Parameter Name: ENCODING | |
- | |
- Purpose: To specify an alternate inline encoding for the property | |
- value. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 18] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- encodingparam = "ENCODING" "=" | |
- ( "8BIT" | |
- ; "8bit" text encoding is defined in [RFC2045] | |
- / "BASE64" | |
- ; "BASE64" binary encoding format is defined in [RFC4648] | |
- ) | |
- | |
- Description: This property parameter identifies the inline encoding | |
- used in a property value. The default encoding is "8BIT", | |
- corresponding to a property value consisting of text. The | |
- "BASE64" encoding type corresponds to a property value encoded | |
- using the "BASE64" encoding defined in [RFC2045]. | |
- | |
- If the value type parameter is ";VALUE=BINARY", then the inline | |
- encoding parameter MUST be specified with the value | |
- ";ENCODING=BASE64". | |
- | |
- Example: | |
- | |
- ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:TG9yZW | |
- 0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW | |
- 5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IG | |
- xhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbm | |
- ltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIG | |
- xhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdW | |
- F0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbi | |
- B2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdC | |
- BudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaW | |
- RhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYS | |
- BkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4= | |
- | |
-3.2.8. Format Type | |
- | |
- Parameter Name: FMTTYPE | |
- | |
- Purpose: To specify the content type of a referenced object. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- fmttypeparam = "FMTTYPE" "=" type-name "/" subtype-name | |
- ; Where "type-name" and "subtype-name" are | |
- ; defined in Section 4.2 of [RFC4288]. | |
- | |
- Description: This parameter can be specified on properties that are | |
- used to reference an object. The parameter specifies the media | |
- type [RFC4288] of the referenced object. For example, on the | |
- "ATTACH" property, an FTP type URI value does not, by itself, | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 19] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- necessarily convey the type of content associated with the | |
- resource. The parameter value MUST be the text for either an | |
- IANA-registered media type or a non-standard media type. | |
- | |
- Example: | |
- | |
- ATTACH;FMTTYPE=application/msword:ftp://example.com/pub/docs/ | |
- agenda.doc | |
- | |
-3.2.9. Free/Busy Time Type | |
- | |
- Parameter Name: FBTYPE | |
- | |
- Purpose: To specify the free or busy time type. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY" | |
- / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE" | |
- / x-name | |
- ; Some experimental iCalendar free/busy type. | |
- / iana-token) | |
- ; Some other IANA-registered iCalendar free/busy type. | |
- | |
- Description: This parameter specifies the free or busy time type. | |
- The value FREE indicates that the time interval is free for | |
- scheduling. The value BUSY indicates that the time interval is | |
- busy because one or more events have been scheduled for that | |
- interval. The value BUSY-UNAVAILABLE indicates that the time | |
- interval is busy and that the interval can not be scheduled. The | |
- value BUSY-TENTATIVE indicates that the time interval is busy | |
- because one or more events have been tentatively scheduled for | |
- that interval. If not specified on a property that allows this | |
- parameter, the default is BUSY. Applications MUST treat x-name | |
- and iana-token values they don't recognize the same way as they | |
- would the BUSY value. | |
- | |
- Example: The following is an example of this parameter on a | |
- "FREEBUSY" property. | |
- | |
- FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 20] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.2.10. Language | |
- | |
- Parameter Name: LANGUAGE | |
- | |
- Purpose: To specify the language for text values in a property or | |
- property parameter. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- languageparam = "LANGUAGE" "=" language | |
- | |
- language = Language-Tag | |
- ; As defined in [RFC5646]. | |
- | |
- Description: This parameter identifies the language of the text in | |
- the property value and of all property parameter values of the | |
- property. The value of the "LANGUAGE" property parameter is that | |
- defined in [RFC5646]. | |
- | |
- For transport in a MIME entity, the Content-Language header field | |
- can be used to set the default language for the entire body part. | |
- Otherwise, no default language is assumed. | |
- | |
- Example: The following are examples of this parameter on the | |
- "SUMMARY" and "LOCATION" properties: | |
- | |
- SUMMARY;LANGUAGE=en-US:Company Holiday Party | |
- | |
- LOCATION;LANGUAGE=en:Germany | |
- | |
- LOCATION;LANGUAGE=no:Tyskland | |
- | |
-3.2.11. Group or List Membership | |
- | |
- Parameter Name: MEMBER | |
- | |
- Purpose: To specify the group or list membership of the calendar | |
- user specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE | |
- *("," DQUOTE cal-address DQUOTE) | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 21] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter identifies the groups or | |
- list membership for the calendar user specified by the property. | |
- The parameter value is either a single calendar address in a | |
- quoted-string or a COMMA-separated list of calendar addresses, | |
- each in a quoted-string. The individual calendar address | |
- parameter values MUST each be specified in a quoted-string. | |
- | |
- Example: | |
- | |
- ATTENDEE;MEMBER="mailto:[email protected]":mailto: | |
- [email protected] | |
- | |
- ATTENDEE;MEMBER="mailto:[email protected]","mailto:pr | |
- [email protected]":mailto:[email protected] | |
- | |
-3.2.12. Participation Status | |
- | |
- Parameter Name: PARTSTAT | |
- | |
- Purpose: To specify the participation status for the calendar user | |
- specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- partstatparam = "PARTSTAT" "=" | |
- (partstat-event | |
- / partstat-todo | |
- / partstat-jour) | |
- | |
- partstat-event = ("NEEDS-ACTION" ; Event needs action | |
- / "ACCEPTED" ; Event accepted | |
- / "DECLINED" ; Event declined | |
- / "TENTATIVE" ; Event tentatively | |
- ; accepted | |
- / "DELEGATED" ; Event delegated | |
- / x-name ; Experimental status | |
- / iana-token) ; Other IANA-registered | |
- ; status | |
- ; These are the participation statuses for a "VEVENT". | |
- ; Default is NEEDS-ACTION. | |
- | |
- partstat-todo = ("NEEDS-ACTION" ; To-do needs action | |
- / "ACCEPTED" ; To-do accepted | |
- / "DECLINED" ; To-do declined | |
- / "TENTATIVE" ; To-do tentatively | |
- ; accepted | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 22] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- / "DELEGATED" ; To-do delegated | |
- / "COMPLETED" ; To-do completed | |
- ; COMPLETED property has | |
- ; DATE-TIME completed | |
- / "IN-PROCESS" ; To-do in process of | |
- ; being completed | |
- / x-name ; Experimental status | |
- / iana-token) ; Other IANA-registered | |
- ; status | |
- ; These are the participation statuses for a "VTODO". | |
- ; Default is NEEDS-ACTION. | |
- | |
- | |
- | |
- partstat-jour = ("NEEDS-ACTION" ; Journal needs action | |
- / "ACCEPTED" ; Journal accepted | |
- / "DECLINED" ; Journal declined | |
- / x-name ; Experimental status | |
- / iana-token) ; Other IANA-registered | |
- ; status | |
- ; These are the participation statuses for a "VJOURNAL". | |
- ; Default is NEEDS-ACTION. | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter identifies the | |
- participation status for the calendar user specified by the | |
- property value. The parameter values differ depending on whether | |
- they are associated with a group-scheduled "VEVENT", "VTODO", or | |
- "VJOURNAL". The values MUST match one of the values allowed for | |
- the given calendar component. If not specified on a property that | |
- allows this parameter, the default value is NEEDS-ACTION. | |
- Applications MUST treat x-name and iana-token values they don't | |
- recognize the same way as they would the NEEDS-ACTION value. | |
- | |
- Example: | |
- | |
- ATTENDEE;PARTSTAT=DECLINED:mailto:[email protected] | |
- | |
-3.2.13. Recurrence Identifier Range | |
- | |
- Parameter Name: RANGE | |
- | |
- Purpose: To specify the effective range of recurrence instances from | |
- the instance specified by the recurrence identifier specified by | |
- the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 23] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- rangeparam = "RANGE" "=" "THISANDFUTURE" | |
- ; To specify the instance specified by the recurrence identifier | |
- ; and all subsequent recurrence instances. | |
- | |
- Description: This parameter can be specified on a property that | |
- specifies a recurrence identifier. The parameter specifies the | |
- effective range of recurrence instances that is specified by the | |
- property. The effective range is from the recurrence identifier | |
- specified by the property. If this parameter is not specified on | |
- an allowed property, then the default range is the single instance | |
- specified by the recurrence identifier value of the property. The | |
- parameter value can only be "THISANDFUTURE" to indicate a range | |
- defined by the recurrence identifier and all subsequent instances. | |
- The value "THISANDPRIOR" is deprecated by this revision of | |
- iCalendar and MUST NOT be generated by applications. | |
- | |
- Example: | |
- | |
- RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z | |
- | |
-3.2.14. Alarm Trigger Relationship | |
- | |
- Parameter Name: RELATED | |
- | |
- Purpose: To specify the relationship of the alarm trigger with | |
- respect to the start or end of the calendar component. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- trigrelparam = "RELATED" "=" | |
- ("START" ; Trigger off of start | |
- / "END") ; Trigger off of end | |
- | |
- Description: This parameter can be specified on properties that | |
- specify an alarm trigger with a "DURATION" value type. The | |
- parameter specifies whether the alarm will trigger relative to the | |
- start or end of the calendar component. The parameter value START | |
- will set the alarm to trigger off the start of the calendar | |
- component; the parameter value END will set the alarm to trigger | |
- off the end of the calendar component. If the parameter is not | |
- specified on an allowable property, then the default is START. | |
- | |
- Example: | |
- | |
- TRIGGER;RELATED=END:PT5M | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 24] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.2.15. Relationship Type | |
- | |
- Parameter Name: RELTYPE | |
- | |
- Purpose: To specify the type of hierarchical relationship associated | |
- with the calendar component specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- reltypeparam = "RELTYPE" "=" | |
- ("PARENT" ; Parent relationship - Default | |
- / "CHILD" ; Child relationship | |
- / "SIBLING" ; Sibling relationship | |
- / iana-token ; Some other IANA-registered | |
- ; iCalendar relationship type | |
- / x-name) ; A non-standard, experimental | |
- ; relationship type | |
- | |
- Description: This parameter can be specified on a property that | |
- references another related calendar. The parameter specifies the | |
- hierarchical relationship type of the calendar component | |
- referenced by the property. The parameter value can be PARENT, to | |
- indicate that the referenced calendar component is a superior of | |
- calendar component; CHILD to indicate that the referenced calendar | |
- component is a subordinate of the calendar component; or SIBLING | |
- to indicate that the referenced calendar component is a peer of | |
- the calendar component. If this parameter is not specified on an | |
- allowable property, the default relationship type is PARENT. | |
- Applications MUST treat x-name and iana-token values they don't | |
- recognize the same way as they would the PARENT value. | |
- | |
- Example: | |
- | |
- RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@ | |
- example.com | |
- | |
-3.2.16. Participation Role | |
- | |
- Parameter Name: ROLE | |
- | |
- Purpose: To specify the participation role for the calendar user | |
- specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 25] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- roleparam = "ROLE" "=" | |
- ("CHAIR" ; Indicates chair of the | |
- ; calendar entity | |
- / "REQ-PARTICIPANT" ; Indicates a participant whose | |
- ; participation is required | |
- / "OPT-PARTICIPANT" ; Indicates a participant whose | |
- ; participation is optional | |
- / "NON-PARTICIPANT" ; Indicates a participant who | |
- ; is copied for information | |
- ; purposes only | |
- / x-name ; Experimental role | |
- / iana-token) ; Other IANA role | |
- ; Default is REQ-PARTICIPANT | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter specifies the participation | |
- role for the calendar user specified by the property in the group | |
- schedule calendar component. If not specified on a property that | |
- allows this parameter, the default value is REQ-PARTICIPANT. | |
- Applications MUST treat x-name and iana-token values they don't | |
- recognize the same way as they would the REQ-PARTICIPANT value. | |
- | |
- Example: | |
- | |
- ATTENDEE;ROLE=CHAIR:mailto:[email protected] | |
- | |
-3.2.17. RSVP Expectation | |
- | |
- Parameter Name: RSVP | |
- | |
- Purpose: To specify whether there is an expectation of a favor of a | |
- reply from the calendar user specified by the property value. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- rsvpparam = "RSVP" "=" ("TRUE" / "FALSE") | |
- ; Default is FALSE | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter identifies the expectation | |
- of a reply from the calendar user specified by the property value. | |
- This parameter is used by the "Organizer" to request a | |
- participation status reply from an "Attendee" of a group-scheduled | |
- event or to-do. If not specified on a property that allows this | |
- parameter, the default value is FALSE. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 26] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: | |
- | |
- ATTENDEE;RSVP=TRUE:mailto:[email protected] | |
- | |
-3.2.18. Sent By | |
- | |
- Parameter Name: SENT-BY | |
- | |
- Purpose: To specify the calendar user that is acting on behalf of | |
- the calendar user specified by the property. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE | |
- | |
- Description: This parameter can be specified on properties with a | |
- CAL-ADDRESS value type. The parameter specifies the calendar user | |
- that is acting on behalf of the calendar user specified by the | |
- property. The parameter value MUST be a mailto URI as defined in | |
- [RFC2368]. The individual calendar address parameter values MUST | |
- each be specified in a quoted-string. | |
- | |
- Example: | |
- | |
- ORGANIZER;SENT-BY="mailto:[email protected]":mailto: | |
- [email protected] | |
- | |
-3.2.19. Time Zone Identifier | |
- | |
- Parameter Name: TZID | |
- | |
- Purpose: To specify the identifier for the time zone definition for | |
- a time component in the property value. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- tzidparam = "TZID" "=" [tzidprefix] paramtext | |
- | |
- tzidprefix = "/" | |
- | |
- Description: This parameter MUST be specified on the "DTSTART", | |
- "DTEND", "DUE", "EXDATE", and "RDATE" properties when either a | |
- DATE-TIME or TIME value type is specified and when the value is | |
- neither a UTC or a "floating" time. Refer to the DATE-TIME or | |
- TIME value type definition for a description of UTC and "floating | |
- time" formats. This property parameter specifies a text value | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 27] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- that uniquely identifies the "VTIMEZONE" calendar component to be | |
- used when evaluating the time portion of the property. The value | |
- of the "TZID" property parameter will be equal to the value of the | |
- "TZID" property for the matching time zone definition. An | |
- individual "VTIMEZONE" calendar component MUST be specified for | |
- each unique "TZID" parameter value specified in the iCalendar | |
- object. | |
- | |
- The parameter MUST be specified on properties with a DATE-TIME | |
- value if the DATE-TIME is not either a UTC or a "floating" time. | |
- Failure to include and follow VTIMEZONE definitions in iCalendar | |
- objects may lead to inconsistent understanding of the local time | |
- at any given location. | |
- | |
- The presence of the SOLIDUS character as a prefix, indicates that | |
- this "TZID" represents a unique ID in a globally defined time zone | |
- registry (when such registry is defined). | |
- | |
- Note: This document does not define a naming convention for | |
- time zone identifiers. Implementers may want to use the naming | |
- conventions defined in existing time zone specifications such | |
- as the public-domain TZ database [TZDB]. The specification of | |
- globally unique time zone identifiers is not addressed by this | |
- document and is left for future study. | |
- | |
- The following are examples of this property parameter: | |
- | |
- DTSTART;TZID=America/New_York:19980119T020000 | |
- | |
- DTEND;TZID=America/New_York:19980119T030000 | |
- | |
- The "TZID" property parameter MUST NOT be applied to DATE | |
- properties and DATE-TIME or TIME properties whose time values are | |
- specified in UTC. | |
- | |
- The use of local time in a DATE-TIME or TIME value without the | |
- "TZID" property parameter is to be interpreted as floating time, | |
- regardless of the existence of "VTIMEZONE" calendar components in | |
- the iCalendar object. | |
- | |
- For more information, see the sections on the value types DATE- | |
- TIME and TIME. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 28] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.2.20. Value Data Types | |
- | |
- Parameter Name: VALUE | |
- | |
- Purpose: To explicitly specify the value type format for a property | |
- value. | |
- | |
- Format Definition: This property parameter is defined by the | |
- following notation: | |
- | |
- valuetypeparam = "VALUE" "=" valuetype | |
- | |
- valuetype = ("BINARY" | |
- / "BOOLEAN" | |
- / "CAL-ADDRESS" | |
- / "DATE" | |
- / "DATE-TIME" | |
- / "DURATION" | |
- / "FLOAT" | |
- / "INTEGER" | |
- / "PERIOD" | |
- / "RECUR" | |
- / "TEXT" | |
- / "TIME" | |
- / "URI" | |
- / "UTC-OFFSET" | |
- / x-name | |
- ; Some experimental iCalendar value type. | |
- / iana-token) | |
- ; Some other IANA-registered iCalendar value type. | |
- | |
- Description: This parameter specifies the value type and format of | |
- the property value. The property values MUST be of a single value | |
- type. For example, a "RDATE" property cannot have a combination | |
- of DATE-TIME and TIME value types. | |
- | |
- If the property's value is the default value type, then this | |
- parameter need not be specified. However, if the property's | |
- default value type is overridden by some other allowable value | |
- type, then this parameter MUST be specified. | |
- | |
- Applications MUST preserve the value data for x-name and iana- | |
- token values that they don't recognize without attempting to | |
- interpret or parse the value data. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 29] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.3. Property Value Data Types | |
- | |
- The properties in an iCalendar object are strongly typed. The | |
- definition of each property restricts the value to be one of the | |
- value data types, or simply value types, defined in this section. | |
- The value type for a property will either be specified implicitly as | |
- the default value type or will be explicitly specified with the | |
- "VALUE" parameter. If the value type of a property is one of the | |
- alternate valid types, then it MUST be explicitly specified with the | |
- "VALUE" parameter. | |
- | |
-3.3.1. Binary | |
- | |
- Value Name: BINARY | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- a character encoding of inline binary data. For example, an | |
- inline attachment of a document might be included in an iCalendar | |
- object. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- binary = *(4b-char) [b-end] | |
- ; A "BASE64" encoded character string, as defined by [RFC4648]. | |
- | |
- b-end = (2b-char "==") / (3b-char "=") | |
- | |
- b-char = ALPHA / DIGIT / "+" / "/" | |
- | |
- Description: Property values with this value type MUST also include | |
- the inline encoding parameter sequence of ";ENCODING=BASE64". | |
- That is, all inline binary data MUST first be character encoded | |
- using the "BASE64" encoding method defined in [RFC2045]. No | |
- additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 30] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: The following is an example of a "BASE64" encoded binary | |
- value data: | |
- | |
- ATTACH;FMTTYPE=image/vnd.microsoft.icon;ENCODING=BASE64;VALUE | |
- =BINARY:AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAA | |
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAAICAgADAwMAA////AAAA | |
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
- AAAAAAAAAAAAAAAAAAAAAAMwAAAAAAABNEMQAAAAAAAkQgAAAAAAJEREQgAA | |
- ACECQ0QgEgAAQxQzM0E0AABERCRCREQAADRDJEJEQwAAAhA0QwEQAAAAAERE | |
- AAAAAAAAREQAAAAAAAAkQgAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
- AAAAAAAAAAAA | |
- | |
-3.3.2. Boolean | |
- | |
- Value Name: BOOLEAN | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- either a "TRUE" or "FALSE" Boolean value. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- boolean = "TRUE" / "FALSE" | |
- | |
- Description: These values are case-insensitive text. No additional | |
- content value encoding (i.e., BACKSLASH character encoding, see | |
- Section 3.3.11) is defined for this value type. | |
- | |
- Example: The following is an example of a hypothetical property that | |
- has a BOOLEAN value type: | |
- | |
- TRUE | |
- | |
-3.3.3. Calendar User Address | |
- | |
- Value Name: CAL-ADDRESS | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- a calendar user address. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- cal-address = uri | |
- | |
- Description: The value is a URI as defined by [RFC3986] or any other | |
- IANA-registered form for a URI. When used to address an Internet | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 31] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- email transport address for a calendar user, the value MUST be a | |
- mailto URI, as defined by [RFC2368]. No additional content value | |
- encoding (i.e., BACKSLASH character encoding, see Section 3.3.11) | |
- is defined for this value type. | |
- | |
- Example: | |
- | |
- mailto:[email protected] | |
- | |
-3.3.4. Date | |
- | |
- Value Name: DATE | |
- | |
- Purpose: This value type is used to identify values that contain a | |
- calendar date. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- date = date-value | |
- | |
- date-value = date-fullyear date-month date-mday | |
- date-fullyear = 4DIGIT | |
- date-month = 2DIGIT ;01-12 | |
- date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31 | |
- ;based on month/year | |
- | |
- Description: If the property permits, multiple "date" values are | |
- specified as a COMMA-separated list of values. The format for the | |
- value type is based on the [ISO.8601.2004] complete | |
- representation, basic format for a calendar date. The textual | |
- format specifies a four-digit year, two-digit month, and two-digit | |
- day of the month. There are no separator characters between the | |
- year, month, and day component text. | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- Example: The following represents July 14, 1997: | |
- | |
- 19970714 | |
- | |
-3.3.5. Date-Time | |
- | |
- Value Name: DATE-TIME | |
- | |
- Purpose: This value type is used to identify values that specify a | |
- precise calendar date and time of day. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 32] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- date-time = date "T" time ;As specified in the DATE and TIME | |
- ;value definitions | |
- | |
- Description: If the property permits, multiple "DATE-TIME" values | |
- are specified as a COMMA-separated list of values. No additional | |
- content value encoding (i.e., BACKSLASH character encoding, see | |
- Section 3.3.11) is defined for this value type. | |
- | |
- The "DATE-TIME" value type is used to identify values that contain | |
- a precise calendar date and time of day. The format is based on | |
- the [ISO.8601.2004] complete representation, basic format for a | |
- calendar date and time of day. The text format is a concatenation | |
- of the "date", followed by the LATIN CAPITAL LETTER T character, | |
- the time designator, followed by the "time" format. | |
- | |
- The "DATE-TIME" value type expresses time values in three forms: | |
- | |
- The form of date and time with UTC offset MUST NOT be used. For | |
- example, the following is not valid for a DATE-TIME value: | |
- | |
- 19980119T230000-0800 ;Invalid time format | |
- | |
- FORM #1: DATE WITH LOCAL TIME | |
- | |
- The date with local time form is simply a DATE-TIME value that | |
- does not contain the UTC designator nor does it reference a time | |
- zone. For example, the following represents January 18, 1998, at | |
- 11 PM: | |
- | |
- 19980118T230000 | |
- | |
- DATE-TIME values of this type are said to be "floating" and are | |
- not bound to any time zone in particular. They are used to | |
- represent the same hour, minute, and second value regardless of | |
- which time zone is currently being observed. For example, an | |
- event can be defined that indicates that an individual will be | |
- busy from 11:00 AM to 1:00 PM every day, no matter which time zone | |
- the person is in. In these cases, a local time can be specified. | |
- The recipient of an iCalendar object with a property value | |
- consisting of a local time, without any relative time zone | |
- information, SHOULD interpret the value as being fixed to whatever | |
- time zone the "ATTENDEE" is in at any given moment. This means | |
- that two "Attendees", in different time zones, receiving the same | |
- event definition as a floating time, may be participating in the | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 33] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- event at different actual times. Floating time SHOULD only be | |
- used where that is the reasonable behavior. | |
- | |
- In most cases, a fixed time is desired. To properly communicate a | |
- fixed time in a property value, either UTC time or local time with | |
- time zone reference MUST be specified. | |
- | |
- The use of local time in a DATE-TIME value without the "TZID" | |
- property parameter is to be interpreted as floating time, | |
- regardless of the existence of "VTIMEZONE" calendar components in | |
- the iCalendar object. | |
- | |
- FORM #2: DATE WITH UTC TIME | |
- | |
- The date with UTC time, or absolute time, is identified by a LATIN | |
- CAPITAL LETTER Z suffix character, the UTC designator, appended to | |
- the time value. For example, the following represents January 19, | |
- 1998, at 0700 UTC: | |
- | |
- 19980119T070000Z | |
- | |
- The "TZID" property parameter MUST NOT be applied to DATE-TIME | |
- properties whose time values are specified in UTC. | |
- | |
- FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE | |
- | |
- The date and local time with reference to time zone information is | |
- identified by the use the "TZID" property parameter to reference | |
- the appropriate time zone definition. "TZID" is discussed in | |
- detail in Section 3.2.19. For example, the following represents | |
- 2:00 A.M. in New York on January 19, 1998: | |
- | |
- TZID=America/New_York:19980119T020000 | |
- | |
- If, based on the definition of the referenced time zone, the local | |
- time described occurs more than once (when changing from daylight | |
- to standard time), the DATE-TIME value refers to the first | |
- occurrence of the referenced time. Thus, TZID=America/ | |
- New_York:20071104T013000 indicates November 4, 2007 at 1:30 A.M. | |
- EDT (UTC-04:00). If the local time described does not occur (when | |
- changing from standard to daylight time), the DATE-TIME value is | |
- interpreted using the UTC offset before the gap in local times. | |
- Thus, TZID=America/New_York:20070311T023000 indicates March 11, | |
- 2007 at 3:30 A.M. EDT (UTC-04:00), one hour after 1:30 A.M. EST | |
- (UTC-05:00). | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 34] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- A time value MUST only specify the second 60 when specifying a | |
- positive leap second. For example: | |
- | |
- 19970630T235960Z | |
- | |
- Implementations that do not support leap seconds SHOULD interpret | |
- the second 60 as equivalent to the second 59. | |
- | |
- Example: The following represents July 14, 1997, at 1:30 PM in New | |
- York City in each of the three time formats, using the "DTSTART" | |
- property. | |
- | |
- DTSTART:19970714T133000 ; Local time | |
- DTSTART:19970714T173000Z ; UTC time | |
- DTSTART;TZID=America/New_York:19970714T133000 | |
- ; Local time and time | |
- ; zone reference | |
- | |
-3.3.6. Duration | |
- | |
- Value Name: DURATION | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- a duration of time. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week) | |
- | |
- dur-date = dur-day [dur-time] | |
- dur-time = "T" (dur-hour / dur-minute / dur-second) | |
- dur-week = 1*DIGIT "W" | |
- dur-hour = 1*DIGIT "H" [dur-minute] | |
- dur-minute = 1*DIGIT "M" [dur-second] | |
- dur-second = 1*DIGIT "S" | |
- dur-day = 1*DIGIT "D" | |
- | |
- Description: If the property permits, multiple "duration" values are | |
- specified by a COMMA-separated list of values. The format is | |
- based on the [ISO.8601.2004] complete representation basic format | |
- with designators for the duration of time. The format can | |
- represent nominal durations (weeks and days) and accurate | |
- durations (hours, minutes, and seconds). Note that unlike | |
- [ISO.8601.2004], this value type doesn't support the "Y" and "M" | |
- designators to specify durations in terms of years and months. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 35] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The duration of a week or a day depends on its position in the | |
- calendar. In the case of discontinuities in the time scale, such | |
- as the change from standard time to daylight time and back, the | |
- computation of the exact duration requires the subtraction or | |
- addition of the change of duration of the discontinuity. Leap | |
- seconds MUST NOT be considered when computing an exact duration. | |
- When computing an exact duration, the greatest order time | |
- components MUST be added first, that is, the number of days MUST | |
- be added first, followed by the number of hours, number of | |
- minutes, and number of seconds. | |
- | |
- Negative durations are typically used to schedule an alarm to | |
- trigger before an associated time (see Section 3.8.6.3). | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) are defined for this value type. | |
- | |
- Example: A duration of 15 days, 5 hours, and 20 seconds would be: | |
- | |
- P15DT5H0M20S | |
- | |
- A duration of 7 weeks would be: | |
- | |
- P7W | |
- | |
-3.3.7. Float | |
- | |
- Value Name: FLOAT | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- a real-number value. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT] | |
- | |
- Description: If the property permits, multiple "float" values are | |
- specified by a COMMA-separated list of values. | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- Example: | |
- | |
- 1000000.0000001 | |
- 1.333 | |
- -3.14 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 36] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.3.8. Integer | |
- | |
- Value Name: INTEGER | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- a signed integer value. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- integer = (["+"] / "-") 1*DIGIT | |
- | |
- Description: If the property permits, multiple "integer" values are | |
- specified by a COMMA-separated list of values. The valid range | |
- for "integer" is -2147483648 to 2147483647. If the sign is not | |
- specified, then the value is assumed to be positive. | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- Example: | |
- | |
- 1234567890 | |
- -1234567890 | |
- +1234567890 | |
- 432109876 | |
- | |
-3.3.9. Period of Time | |
- | |
- Value Name: PERIOD | |
- | |
- Purpose: This value type is used to identify values that contain a | |
- precise period of time. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- period = period-explicit / period-start | |
- | |
- period-explicit = date-time "/" date-time | |
- ; [ISO.8601.2004] complete representation basic format for a | |
- ; period of time consisting of a start and end. The start MUST | |
- ; be before the end. | |
- | |
- period-start = date-time "/" dur-value | |
- ; [ISO.8601.2004] complete representation basic format for a | |
- ; period of time consisting of a start and positive duration | |
- ; of time. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 37] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Description: If the property permits, multiple "period" values are | |
- specified by a COMMA-separated list of values. There are two | |
- forms of a period of time. First, a period of time is identified | |
- by its start and its end. This format is based on the | |
- [ISO.8601.2004] complete representation, basic format for "DATE- | |
- TIME" start of the period, followed by a SOLIDUS character | |
- followed by the "DATE-TIME" of the end of the period. The start | |
- of the period MUST be before the end of the period. Second, a | |
- period of time can also be defined by a start and a positive | |
- duration of time. The format is based on the [ISO.8601.2004] | |
- complete representation, basic format for the "DATE-TIME" start of | |
- the period, followed by a SOLIDUS character, followed by the | |
- [ISO.8601.2004] basic format for "DURATION" of the period. | |
- | |
- Example: The period starting at 18:00:00 UTC, on January 1, 1997 and | |
- ending at 07:00:00 UTC on January 2, 1997 would be: | |
- | |
- 19970101T180000Z/19970102T070000Z | |
- | |
- The period start at 18:00:00 on January 1, 1997 and lasting 5 | |
- hours and 30 minutes would be: | |
- | |
- 19970101T180000Z/PT5H30M | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
-3.3.10. Recurrence Rule | |
- | |
- Value Name: RECUR | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- a recurrence rule specification. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- recur = recur-rule-part *( ";" recur-rule-part ) | |
- ; | |
- ; The rule parts are not ordered in any | |
- ; particular sequence. | |
- ; | |
- ; The FREQ rule part is REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- ; The UNTIL or COUNT rule parts are OPTIONAL, | |
- ; but they MUST NOT occur in the same 'recur'. | |
- ; | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 38] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ; The other rule parts are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- | |
- recur-rule-part = ( "FREQ" "=" freq ) | |
- / ( "UNTIL" "=" enddate ) | |
- / ( "COUNT" "=" 1*DIGIT ) | |
- / ( "INTERVAL" "=" 1*DIGIT ) | |
- / ( "BYSECOND" "=" byseclist ) | |
- / ( "BYMINUTE" "=" byminlist ) | |
- / ( "BYHOUR" "=" byhrlist ) | |
- / ( "BYDAY" "=" bywdaylist ) | |
- / ( "BYMONTHDAY" "=" bymodaylist ) | |
- / ( "BYYEARDAY" "=" byyrdaylist ) | |
- / ( "BYWEEKNO" "=" bywknolist ) | |
- / ( "BYMONTH" "=" bymolist ) | |
- / ( "BYSETPOS" "=" bysplist ) | |
- / ( "WKST" "=" weekday ) | |
- | |
- freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" | |
- / "WEEKLY" / "MONTHLY" / "YEARLY" | |
- | |
- enddate = date / date-time | |
- | |
- byseclist = ( seconds *("," seconds) ) | |
- | |
- seconds = 1*2DIGIT ;0 to 60 | |
- | |
- byminlist = ( minutes *("," minutes) ) | |
- | |
- minutes = 1*2DIGIT ;0 to 59 | |
- | |
- byhrlist = ( hour *("," hour) ) | |
- | |
- hour = 1*2DIGIT ;0 to 23 | |
- | |
- bywdaylist = ( weekdaynum *("," weekdaynum) ) | |
- | |
- weekdaynum = [[plus / minus] ordwk] weekday | |
- | |
- plus = "+" | |
- | |
- minus = "-" | |
- | |
- ordwk = 1*2DIGIT ;1 to 53 | |
- | |
- weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" | |
- ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, | |
- ;FRIDAY, and SATURDAY days of the week. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 39] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- bymodaylist = ( monthdaynum *("," monthdaynum) ) | |
- | |
- monthdaynum = [plus / minus] ordmoday | |
- | |
- ordmoday = 1*2DIGIT ;1 to 31 | |
- | |
- byyrdaylist = ( yeardaynum *("," yeardaynum) ) | |
- | |
- yeardaynum = [plus / minus] ordyrday | |
- | |
- ordyrday = 1*3DIGIT ;1 to 366 | |
- | |
- bywknolist = ( weeknum *("," weeknum) ) | |
- | |
- weeknum = [plus / minus] ordwk | |
- | |
- bymolist = ( monthnum *("," monthnum) ) | |
- | |
- monthnum = 1*2DIGIT ;1 to 12 | |
- | |
- bysplist = ( setposday *("," setposday) ) | |
- | |
- setposday = yeardaynum | |
- | |
- Description: This value type is a structured value consisting of a | |
- list of one or more recurrence grammar parts. Each rule part is | |
- defined by a NAME=VALUE pair. The rule parts are separated from | |
- each other by the SEMICOLON character. The rule parts are not | |
- ordered in any particular sequence. Individual rule parts MUST | |
- only be specified once. Compliant applications MUST accept rule | |
- parts ordered in any sequence, but to ensure backward | |
- compatibility with applications that pre-date this revision of | |
- iCalendar the FREQ rule part MUST be the first rule part specified | |
- in a RECUR value. | |
- | |
- The FREQ rule part identifies the type of recurrence rule. This | |
- rule part MUST be specified in the recurrence rule. Valid values | |
- include SECONDLY, to specify repeating events based on an interval | |
- of a second or more; MINUTELY, to specify repeating events based | |
- on an interval of a minute or more; HOURLY, to specify repeating | |
- events based on an interval of an hour or more; DAILY, to specify | |
- repeating events based on an interval of a day or more; WEEKLY, to | |
- specify repeating events based on an interval of a week or more; | |
- MONTHLY, to specify repeating events based on an interval of a | |
- month or more; and YEARLY, to specify repeating events based on an | |
- interval of a year or more. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 40] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The INTERVAL rule part contains a positive integer representing at | |
- which intervals the recurrence rule repeats. The default value is | |
- "1", meaning every second for a SECONDLY rule, every minute for a | |
- MINUTELY rule, every hour for an HOURLY rule, every day for a | |
- DAILY rule, every week for a WEEKLY rule, every month for a | |
- MONTHLY rule, and every year for a YEARLY rule. For example, | |
- within a DAILY rule, a value of "8" means every eight days. | |
- | |
- The UNTIL rule part defines a DATE or DATE-TIME value that bounds | |
- the recurrence rule in an inclusive manner. If the value | |
- specified by UNTIL is synchronized with the specified recurrence, | |
- this DATE or DATE-TIME becomes the last instance of the | |
- recurrence. The value of the UNTIL rule part MUST have the same | |
- value type as the "DTSTART" property. Furthermore, if the | |
- "DTSTART" property is specified as a date with local time, then | |
- the UNTIL rule part MUST also be specified as a date with local | |
- time. If the "DTSTART" property is specified as a date with UTC | |
- time or a date with local time and time zone reference, then the | |
- UNTIL rule part MUST be specified as a date with UTC time. In the | |
- case of the "STANDARD" and "DAYLIGHT" sub-components the UNTIL | |
- rule part MUST always be specified as a date with UTC time. If | |
- specified as a DATE-TIME value, then it MUST be specified in a UTC | |
- time format. If not present, and the COUNT rule part is also not | |
- present, the "RRULE" is considered to repeat forever. | |
- | |
- The COUNT rule part defines the number of occurrences at which to | |
- range-bound the recurrence. The "DTSTART" property value always | |
- counts as the first occurrence. | |
- | |
- The BYSECOND rule part specifies a COMMA-separated list of seconds | |
- within a minute. Valid values are 0 to 60. The BYMINUTE rule | |
- part specifies a COMMA-separated list of minutes within an hour. | |
- Valid values are 0 to 59. The BYHOUR rule part specifies a COMMA- | |
- separated list of hours of the day. Valid values are 0 to 23. | |
- The BYSECOND, BYMINUTE and BYHOUR rule parts MUST NOT be specified | |
- when the associated "DTSTART" property has a DATE value type. | |
- These rule parts MUST be ignored in RECUR value that violate the | |
- above requirement (e.g., generated by applications that pre-date | |
- this revision of iCalendar). | |
- | |
- The BYDAY rule part specifies a COMMA-separated list of days of | |
- the week; SU indicates Sunday; MO indicates Monday; TU indicates | |
- Tuesday; WE indicates Wednesday; TH indicates Thursday; FR | |
- indicates Friday; and SA indicates Saturday. | |
- | |
- Each BYDAY value can also be preceded by a positive (+n) or | |
- negative (-n) integer. If present, this indicates the nth | |
- occurrence of a specific day within the MONTHLY or YEARLY "RRULE". | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 41] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- For example, within a MONTHLY rule, +1MO (or simply 1MO) | |
- represents the first Monday within the month, whereas -1MO | |
- represents the last Monday of the month. The numeric value in a | |
- BYDAY rule part with the FREQ rule part set to YEARLY corresponds | |
- to an offset within the month when the BYMONTH rule part is | |
- present, and corresponds to an offset within the year when the | |
- BYWEEKNO or BYMONTH rule parts are present. If an integer | |
- modifier is not present, it means all days of this type within the | |
- specified frequency. For example, within a MONTHLY rule, MO | |
- represents all Mondays within the month. The BYDAY rule part MUST | |
- NOT be specified with a numeric value when the FREQ rule part is | |
- not set to MONTHLY or YEARLY. Furthermore, the BYDAY rule part | |
- MUST NOT be specified with a numeric value with the FREQ rule part | |
- set to YEARLY when the BYWEEKNO rule part is specified. | |
- | |
- The BYMONTHDAY rule part specifies a COMMA-separated list of days | |
- of the month. Valid values are 1 to 31 or -31 to -1. For | |
- example, -10 represents the tenth to the last day of the month. | |
- The BYMONTHDAY rule part MUST NOT be specified when the FREQ rule | |
- part is set to WEEKLY. | |
- | |
- The BYYEARDAY rule part specifies a COMMA-separated list of days | |
- of the year. Valid values are 1 to 366 or -366 to -1. For | |
- example, -1 represents the last day of the year (December 31st) | |
- and -306 represents the 306th to the last day of the year (March | |
- 1st). The BYYEARDAY rule part MUST NOT be specified when the FREQ | |
- rule part is set to DAILY, WEEKLY, or MONTHLY. | |
- | |
- The BYWEEKNO rule part specifies a COMMA-separated list of | |
- ordinals specifying weeks of the year. Valid values are 1 to 53 | |
- or -53 to -1. This corresponds to weeks according to week | |
- numbering as defined in [ISO.8601.2004]. A week is defined as a | |
- seven day period, starting on the day of the week defined to be | |
- the week start (see WKST). Week number one of the calendar year | |
- is the first week that contains at least four (4) days in that | |
- calendar year. This rule part MUST NOT be used when the FREQ rule | |
- part is set to anything other than YEARLY. For example, 3 | |
- represents the third week of the year. | |
- | |
- Note: Assuming a Monday week start, week 53 can only occur when | |
- Thursday is January 1 or if it is a leap year and Wednesday is | |
- January 1. | |
- | |
- The BYMONTH rule part specifies a COMMA-separated list of months | |
- of the year. Valid values are 1 to 12. | |
- | |
- The WKST rule part specifies the day on which the workweek starts. | |
- Valid values are MO, TU, WE, TH, FR, SA, and SU. This is | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 42] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- significant when a WEEKLY "RRULE" has an interval greater than 1, | |
- and a BYDAY rule part is specified. This is also significant when | |
- in a YEARLY "RRULE" when a BYWEEKNO rule part is specified. The | |
- default value is MO. | |
- | |
- The BYSETPOS rule part specifies a COMMA-separated list of values | |
- that corresponds to the nth occurrence within the set of | |
- recurrence instances specified by the rule. BYSETPOS operates on | |
- a set of recurrence instances in one interval of the recurrence | |
- rule. For example, in a WEEKLY rule, the interval would be one | |
- week A set of recurrence instances starts at the beginning of the | |
- interval defined by the FREQ rule part. Valid values are 1 to 366 | |
- or -366 to -1. It MUST only be used in conjunction with another | |
- BYxxx rule part. For example "the last work day of the month" | |
- could be represented as: | |
- | |
- FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 | |
- | |
- Each BYSETPOS value can include a positive (+n) or negative (-n) | |
- integer. If present, this indicates the nth occurrence of the | |
- specific occurrence within the set of occurrences specified by the | |
- rule. | |
- | |
- Recurrence rules may generate recurrence instances with an invalid | |
- date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM | |
- on a day where the local time is moved forward by an hour at 1:00 | |
- AM). Such recurrence instances MUST be ignored and MUST NOT be | |
- counted as part of the recurrence set. | |
- | |
- Information, not contained in the rule, necessary to determine the | |
- various recurrence instance start time and dates are derived from | |
- the Start Time ("DTSTART") component attribute. For example, | |
- "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the | |
- month or a time. This information would be the same as what is | |
- specified for "DTSTART". | |
- | |
- BYxxx rule parts modify the recurrence in some manner. BYxxx rule | |
- parts for a period of time that is the same or greater than the | |
- frequency generally reduce or limit the number of occurrences of | |
- the recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" | |
- reduces the number of recurrence instances from all days (if | |
- BYMONTH rule part is not present) to all days in January. BYxxx | |
- rule parts for a period of time less than the frequency generally | |
- increase or expand the number of occurrences of the recurrence. | |
- For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of | |
- days within the yearly recurrence set from 1 (if BYMONTH rule part | |
- is not present) to 2. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 43] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- If multiple BYxxx rule parts are specified, then after evaluating | |
- the specified FREQ and INTERVAL rule parts, the BYxxx rule parts | |
- are applied to the current set of evaluated occurrences in the | |
- following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, | |
- BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are | |
- evaluated. | |
- | |
- The table below summarizes the dependency of BYxxx rule part | |
- expand or limit behavior on the FREQ rule part value. | |
- | |
- The term "N/A" means that the corresponding BYxxx rule part MUST | |
- NOT be used with the corresponding FREQ value. | |
- | |
- BYDAY has some special behavior depending on the FREQ value and | |
- this is described in separate notes below the table. | |
- | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- | |SECONDLY|MINUTELY|HOURLY |DAILY |WEEKLY|MONTHLY|YEARLY| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYMONTH |Limit |Limit |Limit |Limit |Limit |Limit |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYWEEKNO |N/A |N/A |N/A |N/A |N/A |N/A |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYYEARDAY |Limit |Limit |Limit |N/A |N/A |N/A |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYMONTHDAY|Limit |Limit |Limit |Limit |N/A |Expand |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYDAY |Limit |Limit |Limit |Limit |Expand|Note 1 |Note 2| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYHOUR |Limit |Limit |Limit |Expand |Expand|Expand |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYMINUTE |Limit |Limit |Expand |Expand |Expand|Expand |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYSECOND |Limit |Expand |Expand |Expand |Expand|Expand |Expand| | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- |BYSETPOS |Limit |Limit |Limit |Limit |Limit |Limit |Limit | | |
- +----------+--------+--------+-------+-------+------+-------+------+ | |
- | |
- Note 1: Limit if BYMONTHDAY is present; otherwise, special expand | |
- for MONTHLY. | |
- | |
- Note 2: Limit if BYYEARDAY or BYMONTHDAY is present; otherwise, | |
- special expand for WEEKLY if BYWEEKNO present; otherwise, | |
- special expand for MONTHLY if BYMONTH present; otherwise, | |
- special expand for YEARLY. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 44] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Here is an example of evaluating multiple BYxxx rule parts. | |
- | |
- DTSTART;TZID=America/New_York:19970105T083000 | |
- RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9; | |
- BYMINUTE=30 | |
- | |
- First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to | |
- arrive at "every other year". Then, "BYMONTH=1" would be applied | |
- to arrive at "every January, every other year". Then, "BYDAY=SU" | |
- would be applied to arrive at "every Sunday in January, every | |
- other year". Then, "BYHOUR=8,9" would be applied to arrive at | |
- "every Sunday in January at 8 AM and 9 AM, every other year". | |
- Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in | |
- January at 8:30 AM and 9:30 AM, every other year". Then, lacking | |
- information from "RRULE", the second is derived from "DTSTART", to | |
- end up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM, | |
- every other year". Similarly, if the BYMINUTE, BYHOUR, BYDAY, | |
- BYMONTHDAY, or BYMONTH rule part were missing, the appropriate | |
- minute, hour, day, or month would have been retrieved from the | |
- "DTSTART" property. | |
- | |
- If the computed local start time of a recurrence instance does not | |
- exist, or occurs more than once, for the specified time zone, the | |
- time of the recurrence instance is interpreted in the same manner | |
- as an explicit DATE-TIME value describing that date and time, as | |
- specified in Section 3.3.5. | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- Example: The following is a rule that specifies 10 occurrences that | |
- occur every other day: | |
- | |
- FREQ=DAILY;COUNT=10;INTERVAL=2 | |
- | |
- There are other examples specified in Section 3.8.5.3. | |
- | |
-3.3.11. Text | |
- | |
- Value Name: TEXT | |
- | |
- Purpose: This value type is used to identify values that contain | |
- human-readable text. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 45] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR) | |
- ; Folded according to description above | |
- | |
- ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n") | |
- ; \\ encodes \, \N or \n encodes newline | |
- ; \; encodes ;, \, encodes , | |
- | |
- TSAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-5B / | |
- %x5D-7E / NON-US-ASCII | |
- ; Any character except CONTROLs not needed by the current | |
- ; character set, DQUOTE, ";", ":", "\", "," | |
- | |
- Description: If the property permits, multiple TEXT values are | |
- specified by a COMMA-separated list of values. | |
- | |
- The language in which the text is represented can be controlled by | |
- the "LANGUAGE" property parameter. | |
- | |
- An intentional formatted text line break MUST only be included in | |
- a "TEXT" property value by representing the line break with the | |
- character sequence of BACKSLASH, followed by a LATIN SMALL LETTER | |
- N or a LATIN CAPITAL LETTER N, that is "\n" or "\N". | |
- | |
- The "TEXT" property values may also contain special characters | |
- that are used to signify delimiters, such as a COMMA character for | |
- lists of values or a SEMICOLON character for structured values. | |
- In order to support the inclusion of these special characters in | |
- "TEXT" property values, they MUST be escaped with a BACKSLASH | |
- character. A BACKSLASH character in a "TEXT" property value MUST | |
- be escaped with another BACKSLASH character. A COMMA character in | |
- a "TEXT" property value MUST be escaped with a BACKSLASH | |
- character. A SEMICOLON character in a "TEXT" property value MUST | |
- be escaped with a BACKSLASH character. However, a COLON character | |
- in a "TEXT" property value SHALL NOT be escaped with a BACKSLASH | |
- character. | |
- | |
- Example: A multiple line value of: | |
- | |
- Project XYZ Final Review | |
- Conference Room - 3B | |
- Come Prepared. | |
- | |
- would be represented as: | |
- | |
- Project XYZ Final Review\nConference Room - 3B\nCome Prepared. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 46] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.3.12. Time | |
- | |
- Value Name: TIME | |
- | |
- Purpose: This value type is used to identify values that contain a | |
- time of day. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- time = time-hour time-minute time-second [time-utc] | |
- | |
- time-hour = 2DIGIT ;00-23 | |
- time-minute = 2DIGIT ;00-59 | |
- time-second = 2DIGIT ;00-60 | |
- ;The "60" value is used to account for positive "leap" seconds. | |
- | |
- time-utc = "Z" | |
- | |
- Description: If the property permits, multiple "time" values are | |
- specified by a COMMA-separated list of values. No additional | |
- content value encoding (i.e., BACKSLASH character encoding, see | |
- Section 3.3.11) is defined for this value type. | |
- | |
- The "TIME" value type is used to identify values that contain a | |
- time of day. The format is based on the [ISO.8601.2004] complete | |
- representation, basic format for a time of day. The text format | |
- consists of a two-digit, 24-hour of the day (i.e., values 00-23), | |
- two-digit minute in the hour (i.e., values 00-59), and two-digit | |
- seconds in the minute (i.e., values 00-60). The seconds value of | |
- 60 MUST only be used to account for positive "leap" seconds. | |
- Fractions of a second are not supported by this format. | |
- | |
- In parallel to the "DATE-TIME" definition above, the "TIME" value | |
- type expresses time values in three forms: | |
- | |
- The form of time with UTC offset MUST NOT be used. For example, | |
- the following is not valid for a time value: | |
- | |
- 230000-0800 ;Invalid time format | |
- | |
- FORM #1 LOCAL TIME | |
- | |
- The local time form is simply a time value that does not contain | |
- the UTC designator nor does it reference a time zone. For | |
- example, 11:00 PM: | |
- | |
- 230000 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 47] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Time values of this type are said to be "floating" and are not | |
- bound to any time zone in particular. They are used to represent | |
- the same hour, minute, and second value regardless of which time | |
- zone is currently being observed. For example, an event can be | |
- defined that indicates that an individual will be busy from 11:00 | |
- AM to 1:00 PM every day, no matter which time zone the person is | |
- in. In these cases, a local time can be specified. The recipient | |
- of an iCalendar object with a property value consisting of a local | |
- time, without any relative time zone information, SHOULD interpret | |
- the value as being fixed to whatever time zone the "ATTENDEE" is | |
- in at any given moment. This means that two "Attendees", may | |
- participate in the same event at different UTC times; floating | |
- time SHOULD only be used where that is reasonable behavior. | |
- | |
- In most cases, a fixed time is desired. To properly communicate a | |
- fixed time in a property value, either UTC time or local time with | |
- time zone reference MUST be specified. | |
- | |
- The use of local time in a TIME value without the "TZID" property | |
- parameter is to be interpreted as floating time, regardless of the | |
- existence of "VTIMEZONE" calendar components in the iCalendar | |
- object. | |
- | |
- FORM #2: UTC TIME | |
- | |
- UTC time, or absolute time, is identified by a LATIN CAPITAL | |
- LETTER Z suffix character, the UTC designator, appended to the | |
- time value. For example, the following represents 07:00 AM UTC: | |
- | |
- 070000Z | |
- | |
- The "TZID" property parameter MUST NOT be applied to TIME | |
- properties whose time values are specified in UTC. | |
- | |
- FORM #3: LOCAL TIME AND TIME ZONE REFERENCE | |
- | |
- The local time with reference to time zone information form is | |
- identified by the use the "TZID" property parameter to reference | |
- the appropriate time zone definition. "TZID" is discussed in | |
- detail in Section 3.2.19. | |
- | |
- Example: The following represents 8:30 AM in New York in winter, | |
- five hours behind UTC, in each of the three formats: | |
- | |
- 083000 | |
- 133000Z | |
- TZID=America/New_York:083000 | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 48] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.3.13. URI | |
- | |
- Value Name: URI | |
- | |
- Purpose: This value type is used to identify values that contain a | |
- uniform resource identifier (URI) type of reference to the | |
- property value. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- uri = <As defined in Section 3 of [RFC3986]> | |
- | |
- Description: This value type might be used to reference binary | |
- information, for values that are large, or otherwise undesirable | |
- to include directly in the iCalendar object. | |
- | |
- Property values with this value type MUST follow the generic URI | |
- syntax defined in [RFC3986]. | |
- | |
- When a property parameter value is a URI value type, the URI MUST | |
- be specified as a quoted-string value. | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- Example: The following is a URI for a network file: | |
- | |
- http://example.com/my-report.txt | |
- | |
-3.3.14. UTC Offset | |
- | |
- Value Name: UTC-OFFSET | |
- | |
- Purpose: This value type is used to identify properties that contain | |
- an offset from UTC to local time. | |
- | |
- Format Definition: This value type is defined by the following | |
- notation: | |
- | |
- utc-offset = time-numzone | |
- | |
- time-numzone = ("+" / "-") time-hour time-minute [time-second] | |
- | |
- Description: The PLUS SIGN character MUST be specified for positive | |
- UTC offsets (i.e., ahead of UTC). The HYPHEN-MINUS character MUST | |
- be specified for negative UTC offsets (i.e., behind of UTC). The | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 49] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- value of "-0000" and "-000000" are not allowed. The time-second, | |
- if present, MUST NOT be 60; if absent, it defaults to zero. | |
- | |
- No additional content value encoding (i.e., BACKSLASH character | |
- encoding, see Section 3.3.11) is defined for this value type. | |
- | |
- Example: The following UTC offsets are given for standard time for | |
- New York (five hours behind UTC) and Geneva (one hour ahead of | |
- UTC): | |
- | |
- -0500 | |
- | |
- +0100 | |
- | |
-3.4. iCalendar Object | |
- | |
- The Calendaring and Scheduling Core Object is a collection of | |
- calendaring and scheduling information. Typically, this information | |
- will consist of an iCalendar stream with a single iCalendar object. | |
- However, multiple iCalendar objects can be sequentially grouped | |
- together in an iCalendar stream. The first line and last line of the | |
- iCalendar object MUST contain a pair of iCalendar object delimiter | |
- strings. The syntax for an iCalendar stream is as follows: | |
- | |
- icalstream = 1*icalobject | |
- | |
- icalobject = "BEGIN" ":" "VCALENDAR" CRLF | |
- icalbody | |
- "END" ":" "VCALENDAR" CRLF | |
- | |
- The following is a simple example of an iCalendar object: | |
- | |
- BEGIN:VCALENDAR | |
- VERSION:2.0 | |
- PRODID:-//hacksw/handcal//NONSGML v1.0//EN | |
- BEGIN:VEVENT | |
- UID:[email protected] | |
- DTSTAMP:19970610T172345Z | |
- DTSTART:19970714T170000Z | |
- DTEND:19970715T040000Z | |
- SUMMARY:Bastille Day Party | |
- END:VEVENT | |
- END:VCALENDAR | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 50] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.5. Property | |
- | |
- A property is the definition of an individual attribute describing a | |
- calendar object or a calendar component. A property takes the form | |
- defined by the "contentline" notation defined in Section 3.1. | |
- | |
- The following is an example of a property: | |
- | |
- DTSTART:19960415T133000Z | |
- | |
- This memo imposes no ordering of properties within an iCalendar | |
- object. | |
- | |
- Property names, parameter names, and enumerated parameter values are | |
- case-insensitive. For example, the property name "DUE" is the same | |
- as "due" and "Due", DTSTART;TZID=America/New_York:19980714T120000 is | |
- the same as DtStart;TzID=America/New_York:19980714T120000. | |
- | |
-3.6. Calendar Components | |
- | |
- The body of the iCalendar object consists of a sequence of calendar | |
- properties and one or more calendar components. The calendar | |
- properties are attributes that apply to the calendar object as a | |
- whole. The calendar components are collections of properties that | |
- express a particular calendar semantic. For example, the calendar | |
- component can specify an event, a to-do, a journal entry, time zone | |
- information, free/busy time information, or an alarm. | |
- | |
- The body of the iCalendar object is defined by the following | |
- notation: | |
- | |
- icalbody = calprops component | |
- | |
- calprops = *( | |
- ; | |
- ; The following are REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- prodid / version / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- calscale / method / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 51] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- component = 1*(eventc / todoc / journalc / freebusyc / | |
- timezonec / iana-comp / x-comp) | |
- | |
- iana-comp = "BEGIN" ":" iana-token CRLF | |
- 1*contentline | |
- "END" ":" iana-token CRLF | |
- | |
- x-comp = "BEGIN" ":" x-name CRLF | |
- 1*contentline | |
- "END" ":" x-name CRLF | |
- | |
- An iCalendar object MUST include the "PRODID" and "VERSION" calendar | |
- properties. In addition, it MUST include at least one calendar | |
- component. Special forms of iCalendar objects are possible to | |
- publish just busy time (i.e., only a "VFREEBUSY" calendar component) | |
- or time zone (i.e., only a "VTIMEZONE" calendar component) | |
- information. In addition, a complex iCalendar object that is used to | |
- capture a complete snapshot of the contents of a calendar is possible | |
- (e.g., composite of many different calendar components). More | |
- commonly, an iCalendar object will consist of just a single "VEVENT", | |
- "VTODO", or "VJOURNAL" calendar component. Applications MUST ignore | |
- x-comp and iana-comp values they don't recognize. Applications that | |
- support importing iCalendar objects SHOULD support all of the | |
- component types defined in this document, and SHOULD NOT silently | |
- drop any components as that can lead to user data loss. | |
- | |
-3.6.1. Event Component | |
- | |
- Component Name: VEVENT | |
- | |
- Purpose: Provide a grouping of component properties that describe an | |
- event. | |
- | |
- Format Definition: A "VEVENT" calendar component is defined by the | |
- following notation: | |
- | |
- eventc = "BEGIN" ":" "VEVENT" CRLF | |
- eventprop *alarmc | |
- "END" ":" "VEVENT" CRLF | |
- | |
- eventprop = *( | |
- ; | |
- ; The following are REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 52] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ; | |
- dtstamp / uid / | |
- ; | |
- ; The following is REQUIRED if the component | |
- ; appears in an iCalendar object that doesn't | |
- ; specify the "METHOD" property; otherwise, it | |
- ; is OPTIONAL; in any case, it MUST NOT occur | |
- ; more than once. | |
- ; | |
- dtstart / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- class / created / description / geo / | |
- last-mod / location / organizer / priority / | |
- seq / status / summary / transp / | |
- url / recurid / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but SHOULD NOT occur more than once. | |
- ; | |
- rrule / | |
- ; | |
- ; Either 'dtend' or 'duration' MAY appear in | |
- ; a 'eventprop', but 'dtend' and 'duration' | |
- ; MUST NOT occur in the same 'eventprop'. | |
- ; | |
- dtend / duration / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- attach / attendee / categories / comment / | |
- contact / exdate / rstatus / related / | |
- resources / rdate / x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- Description: A "VEVENT" calendar component is a grouping of | |
- component properties, possibly including "VALARM" calendar | |
- components, that represents a scheduled amount of time on a | |
- calendar. For example, it can be an activity; such as a one-hour | |
- long, department meeting from 8:00 AM to 9:00 AM, tomorrow. | |
- Generally, an event will take up time on an individual calendar. | |
- Hence, the event will appear as an opaque interval in a search for | |
- busy time. Alternately, the event can have its Time Transparency | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 53] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- set to "TRANSPARENT" in order to prevent blocking of the event in | |
- searches for busy time. | |
- | |
- The "VEVENT" is also the calendar component used to specify an | |
- anniversary or daily reminder within a calendar. These events | |
- have a DATE value type for the "DTSTART" property instead of the | |
- default value type of DATE-TIME. If such a "VEVENT" has a "DTEND" | |
- property, it MUST be specified as a DATE value also. The | |
- anniversary type of "VEVENT" can span more than one date (i.e., | |
- "DTEND" property value is set to a calendar date after the | |
- "DTSTART" property value). If such a "VEVENT" has a "DURATION" | |
- property, it MUST be specified as a "dur-day" or "dur-week" value. | |
- | |
- The "DTSTART" property for a "VEVENT" specifies the inclusive | |
- start of the event. For recurring events, it also specifies the | |
- very first instance in the recurrence set. The "DTEND" property | |
- for a "VEVENT" calendar component specifies the non-inclusive end | |
- of the event. For cases where a "VEVENT" calendar component | |
- specifies a "DTSTART" property with a DATE value type but no | |
- "DTEND" nor "DURATION" property, the event's duration is taken to | |
- be one day. For cases where a "VEVENT" calendar component | |
- specifies a "DTSTART" property with a DATE-TIME value type but no | |
- "DTEND" property, the event ends on the same calendar date and | |
- time of day specified by the "DTSTART" property. | |
- | |
- The "VEVENT" calendar component cannot be nested within another | |
- calendar component. However, "VEVENT" calendar components can be | |
- related to each other or to a "VTODO" or to a "VJOURNAL" calendar | |
- component with the "RELATED-TO" property. | |
- | |
- Example: The following is an example of the "VEVENT" calendar | |
- component used to represent a meeting that will also be opaque to | |
- searches for busy time: | |
- | |
- BEGIN:VEVENT | |
- UID:[email protected] | |
- DTSTAMP:19970901T130000Z | |
- DTSTART:19970903T163000Z | |
- DTEND:19970903T190000Z | |
- SUMMARY:Annual Employee Review | |
- CLASS:PRIVATE | |
- CATEGORIES:BUSINESS,HUMAN RESOURCES | |
- END:VEVENT | |
- | |
- The following is an example of the "VEVENT" calendar component | |
- used to represent a reminder that will not be opaque, but rather | |
- transparent, to searches for busy time: | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 54] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- BEGIN:VEVENT | |
- UID:[email protected] | |
- DTSTAMP:19970901T130000Z | |
- DTSTART:19970401T163000Z | |
- DTEND:19970402T010000Z | |
- SUMMARY:Laurel is in sensitivity awareness class. | |
- CLASS:PUBLIC | |
- CATEGORIES:BUSINESS,HUMAN RESOURCES | |
- TRANSP:TRANSPARENT | |
- END:VEVENT | |
- | |
- The following is an example of the "VEVENT" calendar component | |
- used to represent an anniversary that will occur annually: | |
- | |
- BEGIN:VEVENT | |
- UID:[email protected] | |
- DTSTAMP:19970901T130000Z | |
- DTSTART;VALUE=DATE:19971102 | |
- SUMMARY:Our Blissful Anniversary | |
- TRANSP:TRANSPARENT | |
- CLASS:CONFIDENTIAL | |
- CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION | |
- RRULE:FREQ=YEARLY | |
- END:VEVENT | |
- | |
- The following is an example of the "VEVENT" calendar component | |
- used to represent a multi-day event scheduled from June 28th, 2007 | |
- to July 8th, 2007 inclusively. Note that the "DTEND" property is | |
- set to July 9th, 2007, since the "DTEND" property specifies the | |
- non-inclusive end of the event. | |
- | |
- BEGIN:VEVENT | |
- UID:[email protected] | |
- DTSTAMP:20070423T123432Z | |
- DTSTART;VALUE=DATE:20070628 | |
- DTEND;VALUE=DATE:20070709 | |
- SUMMARY:Festival International de Jazz de Montreal | |
- TRANSP:TRANSPARENT | |
- END:VEVENT | |
- | |
-3.6.2. To-Do Component | |
- | |
- Component Name: VTODO | |
- | |
- Purpose: Provide a grouping of calendar properties that describe a | |
- to-do. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 55] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: A "VTODO" calendar component is defined by the | |
- following notation: | |
- | |
- todoc = "BEGIN" ":" "VTODO" CRLF | |
- todoprop *alarmc | |
- "END" ":" "VTODO" CRLF | |
- | |
- todoprop = *( | |
- ; | |
- ; The following are REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- dtstamp / uid / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- class / completed / created / description / | |
- dtstart / geo / last-mod / location / organizer / | |
- percent / priority / recurid / seq / status / | |
- summary / url / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but SHOULD NOT occur more than once. | |
- ; | |
- rrule / | |
- ; | |
- ; Either 'due' or 'duration' MAY appear in | |
- ; a 'todoprop', but 'due' and 'duration' | |
- ; MUST NOT occur in the same 'todoprop'. | |
- ; If 'duration' appear in a 'todoprop', | |
- ; then 'dtstart' MUST also appear in | |
- ; the same 'todoprop'. | |
- ; | |
- due / duration / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- attach / attendee / categories / comment / contact / | |
- exdate / rstatus / related / resources / | |
- rdate / x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- Description: A "VTODO" calendar component is a grouping of component | |
- properties and possibly "VALARM" calendar components that | |
- represent an action-item or assignment. For example, it can be | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 56] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- used to represent an item of work assigned to an individual; such | |
- as "turn in travel expense today". | |
- | |
- The "VTODO" calendar component cannot be nested within another | |
- calendar component. However, "VTODO" calendar components can be | |
- related to each other or to a "VEVENT" or to a "VJOURNAL" calendar | |
- component with the "RELATED-TO" property. | |
- | |
- A "VTODO" calendar component without the "DTSTART" and "DUE" (or | |
- "DURATION") properties specifies a to-do that will be associated | |
- with each successive calendar date, until it is completed. | |
- | |
- Examples: The following is an example of a "VTODO" calendar | |
- component that needs to be completed before May 1st, 2007. On | |
- midnight May 1st, 2007 this to-do would be considered overdue. | |
- | |
- BEGIN:VTODO | |
- UID:[email protected] | |
- DTSTAMP:20070313T123432Z | |
- DUE;VALUE=DATE:20070501 | |
- SUMMARY:Submit Quebec Income Tax Return for 2006 | |
- CLASS:CONFIDENTIAL | |
- CATEGORIES:FAMILY,FINANCE | |
- STATUS:NEEDS-ACTION | |
- END:VTODO | |
- | |
- The following is an example of a "VTODO" calendar component that | |
- was due before 1:00 P.M. UTC on July 9th, 2007 and was completed | |
- on July 7th, 2007 at 10:00 A.M. UTC. | |
- | |
- BEGIN:VTODO | |
- UID:[email protected] | |
- DTSTAMP:20070514T103211Z | |
- DTSTART:20070514T110000Z | |
- DUE:20070709T130000Z | |
- COMPLETED:20070707T100000Z | |
- SUMMARY:Submit Revised Internet-Draft | |
- PRIORITY:1 | |
- STATUS:NEEDS-ACTION | |
- END:VTODO | |
- | |
-3.6.3. Journal Component | |
- | |
- Component Name: VJOURNAL | |
- | |
- Purpose: Provide a grouping of component properties that describe a | |
- journal entry. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 57] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: A "VJOURNAL" calendar component is defined by the | |
- following notation: | |
- | |
- journalc = "BEGIN" ":" "VJOURNAL" CRLF | |
- jourprop | |
- "END" ":" "VJOURNAL" CRLF | |
- | |
- jourprop = *( | |
- ; | |
- ; The following are REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- dtstamp / uid / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- class / created / dtstart / | |
- last-mod / organizer / recurid / seq / | |
- status / summary / url / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but SHOULD NOT occur more than once. | |
- ; | |
- rrule / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- attach / attendee / categories / comment / | |
- contact / description / exdate / related / rdate / | |
- rstatus / x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- Description: A "VJOURNAL" calendar component is a grouping of | |
- component properties that represent one or more descriptive text | |
- notes associated with a particular calendar date. The "DTSTART" | |
- property is used to specify the calendar date with which the | |
- journal entry is associated. Generally, it will have a DATE value | |
- data type, but it can also be used to specify a DATE-TIME value | |
- data type. Examples of a journal entry include a daily record of | |
- a legislative body or a journal entry of individual telephone | |
- contacts for the day or an ordered list of accomplishments for the | |
- day. The "VJOURNAL" calendar component can also be used to | |
- associate a document with a calendar date. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 58] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The "VJOURNAL" calendar component does not take up time on a | |
- calendar. Hence, it does not play a role in free or busy time | |
- searches -- it is as though it has a time transparency value of | |
- TRANSPARENT. It is transparent to any such searches. | |
- | |
- The "VJOURNAL" calendar component cannot be nested within another | |
- calendar component. However, "VJOURNAL" calendar components can | |
- be related to each other or to a "VEVENT" or to a "VTODO" calendar | |
- component, with the "RELATED-TO" property. | |
- | |
- Example: The following is an example of the "VJOURNAL" calendar | |
- component: | |
- | |
- BEGIN:VJOURNAL | |
- UID:[email protected] | |
- DTSTAMP:19970901T130000Z | |
- DTSTART;VALUE=DATE:19970317 | |
- SUMMARY:Staff meeting minutes | |
- DESCRIPTION:1. Staff meeting: Participants include Joe\, | |
- Lisa\, and Bob. Aurora project plans were reviewed. | |
- There is currently no budget reserves for this project. | |
- Lisa will escalate to management. Next meeting on Tuesday.\n | |
- 2. Telephone Conference: ABC Corp. sales representative | |
- called to discuss new printer. Promised to get us a demo by | |
- Friday.\n3. Henry Miller (Handsoff Insurance): Car was | |
- totaled by tree. Is looking into a loaner car. 555-2323 | |
- (tel). | |
- END:VJOURNAL | |
- | |
-3.6.4. Free/Busy Component | |
- | |
- Component Name: VFREEBUSY | |
- | |
- Purpose: Provide a grouping of component properties that describe | |
- either a request for free/busy time, describe a response to a | |
- request for free/busy time, or describe a published set of busy | |
- time. | |
- | |
- Format Definition: A "VFREEBUSY" calendar component is defined by | |
- the following notation: | |
- | |
- freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF | |
- fbprop | |
- "END" ":" "VFREEBUSY" CRLF | |
- | |
- fbprop = *( | |
- ; | |
- ; The following are REQUIRED, | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 59] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ; but MUST NOT occur more than once. | |
- ; | |
- dtstamp / uid / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- contact / dtstart / dtend / | |
- organizer / url / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- attendee / comment / freebusy / rstatus / x-prop / | |
- iana-prop | |
- ; | |
- ) | |
- | |
- Description: A "VFREEBUSY" calendar component is a grouping of | |
- component properties that represents either a request for free or | |
- busy time information, a reply to a request for free or busy time | |
- information, or a published set of busy time information. | |
- | |
- When used to request free/busy time information, the "ATTENDEE" | |
- property specifies the calendar users whose free/busy time is | |
- being requested; the "ORGANIZER" property specifies the calendar | |
- user who is requesting the free/busy time; the "DTSTART" and | |
- "DTEND" properties specify the window of time for which the free/ | |
- busy time is being requested; the "UID" and "DTSTAMP" properties | |
- are specified to assist in proper sequencing of multiple free/busy | |
- time requests. | |
- | |
- When used to reply to a request for free/busy time, the "ATTENDEE" | |
- property specifies the calendar user responding to the free/busy | |
- time request; the "ORGANIZER" property specifies the calendar user | |
- that originally requested the free/busy time; the "FREEBUSY" | |
- property specifies the free/busy time information (if it exists); | |
- and the "UID" and "DTSTAMP" properties are specified to assist in | |
- proper sequencing of multiple free/busy time replies. | |
- | |
- When used to publish busy time, the "ORGANIZER" property specifies | |
- the calendar user associated with the published busy time; the | |
- "DTSTART" and "DTEND" properties specify an inclusive time window | |
- that surrounds the busy time information; the "FREEBUSY" property | |
- specifies the published busy time information; and the "DTSTAMP" | |
- property specifies the DATE-TIME that iCalendar object was | |
- created. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 60] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The "VFREEBUSY" calendar component cannot be nested within another | |
- calendar component. Multiple "VFREEBUSY" calendar components can | |
- be specified within an iCalendar object. This permits the | |
- grouping of free/busy information into logical collections, such | |
- as monthly groups of busy time information. | |
- | |
- The "VFREEBUSY" calendar component is intended for use in | |
- iCalendar object methods involving requests for free time, | |
- requests for busy time, requests for both free and busy, and the | |
- associated replies. | |
- | |
- Free/Busy information is represented with the "FREEBUSY" property. | |
- This property provides a terse representation of time periods. | |
- One or more "FREEBUSY" properties can be specified in the | |
- "VFREEBUSY" calendar component. | |
- | |
- When present in a "VFREEBUSY" calendar component, the "DTSTART" | |
- and "DTEND" properties SHOULD be specified prior to any "FREEBUSY" | |
- properties. | |
- | |
- The recurrence properties ("RRULE", "RDATE", "EXDATE") are not | |
- permitted within a "VFREEBUSY" calendar component. Any recurring | |
- events are resolved into their individual busy time periods using | |
- the "FREEBUSY" property. | |
- | |
- Example: The following is an example of a "VFREEBUSY" calendar | |
- component used to request free or busy time information: | |
- | |
- BEGIN:VFREEBUSY | |
- UID:[email protected] | |
- ORGANIZER:mailto:[email protected] | |
- ATTENDEE:mailto:[email protected] | |
- DTSTART:19971015T050000Z | |
- DTEND:19971016T050000Z | |
- DTSTAMP:19970901T083000Z | |
- END:VFREEBUSY | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 61] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The following is an example of a "VFREEBUSY" calendar component | |
- used to reply to the request with busy time information: | |
- | |
- BEGIN:VFREEBUSY | |
- UID:[email protected] | |
- ORGANIZER:mailto:[email protected] | |
- ATTENDEE:mailto:[email protected] | |
- DTSTAMP:19970901T100000Z | |
- FREEBUSY:19971015T050000Z/PT8H30M, | |
- 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M | |
- URL:http://example.com/pub/busy/jpublic-01.ifb | |
- COMMENT:This iCalendar file contains busy time information for | |
- the next three months. | |
- END:VFREEBUSY | |
- | |
- The following is an example of a "VFREEBUSY" calendar component | |
- used to publish busy time information: | |
- | |
- BEGIN:VFREEBUSY | |
- UID:[email protected] | |
- DTSTAMP:19970901T120000Z | |
- ORGANIZER:[email protected] | |
- DTSTART:19980313T141711Z | |
- DTEND:19980410T141711Z | |
- FREEBUSY:19980314T233000Z/19980315T003000Z | |
- FREEBUSY:19980316T153000Z/19980316T163000Z | |
- FREEBUSY:19980318T030000Z/19980318T040000Z | |
- URL:http://www.example.com/calendar/busytime/jsmith.ifb | |
- END:VFREEBUSY | |
- | |
-3.6.5. Time Zone Component | |
- | |
- Component Name: VTIMEZONE | |
- | |
- Purpose: Provide a grouping of component properties that defines a | |
- time zone. | |
- | |
- Format Definition: A "VTIMEZONE" calendar component is defined by | |
- the following notation: | |
- | |
- timezonec = "BEGIN" ":" "VTIMEZONE" CRLF | |
- *( | |
- ; | |
- ; 'tzid' is REQUIRED, but MUST NOT occur more | |
- ; than once. | |
- ; | |
- tzid / | |
- ; | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 62] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ; 'last-mod' and 'tzurl' are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- last-mod / tzurl / | |
- ; | |
- ; One of 'standardc' or 'daylightc' MUST occur | |
- ; and each MAY occur more than once. | |
- ; | |
- standardc / daylightc / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- x-prop / iana-prop | |
- ; | |
- ) | |
- "END" ":" "VTIMEZONE" CRLF | |
- | |
- standardc = "BEGIN" ":" "STANDARD" CRLF | |
- tzprop | |
- "END" ":" "STANDARD" CRLF | |
- | |
- daylightc = "BEGIN" ":" "DAYLIGHT" CRLF | |
- tzprop | |
- "END" ":" "DAYLIGHT" CRLF | |
- | |
- tzprop = *( | |
- ; | |
- ; The following are REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- dtstart / tzoffsetto / tzoffsetfrom / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but SHOULD NOT occur more than once. | |
- ; | |
- rrule / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- comment / rdate / tzname / x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- Description: A time zone is unambiguously defined by the set of time | |
- measurement rules determined by the governing body for a given | |
- geographic area. These rules describe, at a minimum, the base | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 63] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- offset from UTC for the time zone, often referred to as the | |
- Standard Time offset. Many locations adjust their Standard Time | |
- forward or backward by one hour, in order to accommodate seasonal | |
- changes in number of daylight hours, often referred to as Daylight | |
- Saving Time. Some locations adjust their time by a fraction of an | |
- hour. Standard Time is also known as Winter Time. Daylight | |
- Saving Time is also known as Advanced Time, Summer Time, or Legal | |
- Time in certain countries. The following table shows the changes | |
- in time zone rules in effect for New York City starting from 1967. | |
- Each line represents a description or rule for a particular | |
- observance. | |
- | |
- Effective Observance Rule | |
- | |
- +-----------+--------------------------+--------+--------------+ | |
- | Date | (Date-Time) | Offset | Abbreviation | | |
- +-----------+--------------------------+--------+--------------+ | |
- | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT | | |
- | | | | | | |
- | 1967-2006 | last Sun in Oct, 02:00 | -0500 | EST | | |
- | | | | | | |
- | 1974-1974 | Jan 6, 02:00 | -0400 | EDT | | |
- | | | | | | |
- | 1975-1975 | Feb 23, 02:00 | -0400 | EDT | | |
- | | | | | | |
- | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT | | |
- | | | | | | |
- | 1987-2006 | first Sun in Apr, 02:00 | -0400 | EDT | | |
- | | | | | | |
- | 2007-* | second Sun in Mar, 02:00 | -0400 | EDT | | |
- | | | | | | |
- | 2007-* | first Sun in Nov, 02:00 | -0500 | EST | | |
- +-----------+--------------------------+--------+--------------+ | |
- | |
- Note: The specification of a global time zone registry is not | |
- addressed by this document and is left for future study. | |
- However, implementers may find the TZ database [TZDB] a useful | |
- reference. It is an informal, public-domain collection of time | |
- zone information, which is currently being maintained by | |
- volunteer Internet participants, and is used in several | |
- operating systems. This database contains current and | |
- historical time zone information for a wide variety of | |
- locations around the globe; it provides a time zone identifier | |
- for every unique time zone rule set in actual use since 1970, | |
- with historical data going back to the introduction of standard | |
- time. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 64] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Interoperability between two calendaring and scheduling | |
- applications, especially for recurring events, to-dos or journal | |
- entries, is dependent on the ability to capture and convey date | |
- and time information in an unambiguous format. The specification | |
- of current time zone information is integral to this behavior. | |
- | |
- If present, the "VTIMEZONE" calendar component defines the set of | |
- Standard Time and Daylight Saving Time observances (or rules) for | |
- a particular time zone for a given interval of time. The | |
- "VTIMEZONE" calendar component cannot be nested within other | |
- calendar components. Multiple "VTIMEZONE" calendar components can | |
- exist in an iCalendar object. In this situation, each "VTIMEZONE" | |
- MUST represent a unique time zone definition. This is necessary | |
- for some classes of events, such as airline flights, that start in | |
- one time zone and end in another. | |
- | |
- The "VTIMEZONE" calendar component MUST include the "TZID" | |
- property and at least one definition of a "STANDARD" or "DAYLIGHT" | |
- sub-component. The "STANDARD" or "DAYLIGHT" sub-component MUST | |
- include the "DTSTART", "TZOFFSETFROM", and "TZOFFSETTO" | |
- properties. | |
- | |
- An individual "VTIMEZONE" calendar component MUST be specified for | |
- each unique "TZID" parameter value specified in the iCalendar | |
- object. In addition, a "VTIMEZONE" calendar component, referred | |
- to by a recurring calendar component, MUST provide valid time zone | |
- information for all recurrence instances. | |
- | |
- Each "VTIMEZONE" calendar component consists of a collection of | |
- one or more sub-components that describe the rule for a particular | |
- observance (either a Standard Time or a Daylight Saving Time | |
- observance). The "STANDARD" sub-component consists of a | |
- collection of properties that describe Standard Time. The | |
- "DAYLIGHT" sub-component consists of a collection of properties | |
- that describe Daylight Saving Time. In general, this collection | |
- of properties consists of: | |
- | |
- * the first onset DATE-TIME for the observance; | |
- | |
- * the last onset DATE-TIME for the observance, if a last onset is | |
- known; | |
- | |
- * the offset to be applied for the observance; | |
- | |
- * a rule that describes the day and time when the observance | |
- takes effect; | |
- | |
- * an optional name for the observance. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 65] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- For a given time zone, there may be multiple unique definitions of | |
- the observances over a period of time. Each observance is | |
- described using either a "STANDARD" or "DAYLIGHT" sub-component. | |
- The collection of these sub-components is used to describe the | |
- time zone for a given period of time. The offset to apply at any | |
- given time is found by locating the observance that has the last | |
- onset date and time before the time in question, and using the | |
- offset value from that observance. | |
- | |
- The top-level properties in a "VTIMEZONE" calendar component are: | |
- | |
- The mandatory "TZID" property is a text value that uniquely | |
- identifies the "VTIMEZONE" calendar component within the scope of | |
- an iCalendar object. | |
- | |
- The optional "LAST-MODIFIED" property is a UTC value that | |
- specifies the date and time that this time zone definition was | |
- last updated. | |
- | |
- The optional "TZURL" property is a url value that points to a | |
- published "VTIMEZONE" definition. "TZURL" SHOULD refer to a | |
- resource that is accessible by anyone who might need to interpret | |
- the object. This SHOULD NOT normally be a "file" URL or other URL | |
- that is not widely accessible. | |
- | |
- The collection of properties that are used to define the | |
- "STANDARD" and "DAYLIGHT" sub-components include: | |
- | |
- The mandatory "DTSTART" property gives the effective onset date | |
- and local time for the time zone sub-component definition. | |
- "DTSTART" in this usage MUST be specified as a date with a local | |
- time value. | |
- | |
- The mandatory "TZOFFSETFROM" property gives the UTC offset that is | |
- in use when the onset of this time zone observance begins. | |
- "TZOFFSETFROM" is combined with "DTSTART" to define the effective | |
- onset for the time zone sub-component definition. For example, | |
- the following represents the time at which the observance of | |
- Standard Time took effect in Fall 1967 for New York City: | |
- | |
- DTSTART:19671029T020000 | |
- | |
- TZOFFSETFROM:-0400 | |
- | |
- The mandatory "TZOFFSETTO" property gives the UTC offset for the | |
- time zone sub-component (Standard Time or Daylight Saving Time) | |
- when this observance is in use. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 66] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The optional "TZNAME" property is the customary name for the time | |
- zone. This could be used for displaying dates. | |
- | |
- The onset DATE-TIME values for the observance defined by the time | |
- zone sub-component is defined by the "DTSTART", "RRULE", and | |
- "RDATE" properties. | |
- | |
- The "RRULE" property defines the recurrence rule for the onset of | |
- the observance defined by this time zone sub-component. Some | |
- specific requirements for the usage of "RRULE" for this purpose | |
- include: | |
- | |
- * If observance is known to have an effective end date, the | |
- "UNTIL" recurrence rule parameter MUST be used to specify the | |
- last valid onset of this observance (i.e., the UNTIL DATE-TIME | |
- will be equal to the last instance generated by the recurrence | |
- pattern). It MUST be specified in UTC time. | |
- | |
- * The "DTSTART" and the "TZOFFSETFROM" properties MUST be used | |
- when generating the onset DATE-TIME values (instances) from the | |
- "RRULE". | |
- | |
- The "RDATE" property can also be used to define the onset of the | |
- observance by giving the individual onset date and times. "RDATE" | |
- in this usage MUST be specified as a date with local time value, | |
- relative to the UTC offset specified in the "TZOFFSETFROM" | |
- property. | |
- | |
- The optional "COMMENT" property is also allowed for descriptive | |
- explanatory text. | |
- | |
- Example: The following are examples of the "VTIMEZONE" calendar | |
- component: | |
- | |
- This is an example showing all the time zone rules for New York | |
- City since April 30, 1967 at 03:00:00 EDT. | |
- | |
- BEGIN:VTIMEZONE | |
- TZID:America/New_York | |
- LAST-MODIFIED:20050809T050000Z | |
- BEGIN:DAYLIGHT | |
- DTSTART:19670430T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- BEGIN:STANDARD | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 67] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- DTSTART:19671029T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T060000Z | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- BEGIN:DAYLIGHT | |
- DTSTART:19740106T020000 | |
- RDATE:19750223T020000 | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- BEGIN:DAYLIGHT | |
- DTSTART:19760425T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T070000Z | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- BEGIN:DAYLIGHT | |
- DTSTART:19870405T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T070000Z | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- BEGIN:DAYLIGHT | |
- DTSTART:20070311T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- BEGIN:STANDARD | |
- DTSTART:20071104T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- END:VTIMEZONE | |
- | |
- This is an example showing time zone information for New York City | |
- using only the "DTSTART" property. Note that this is only | |
- suitable for a recurring event that starts on or later than March | |
- 11, 2007 at 03:00:00 EDT (i.e., the earliest effective transition | |
- date and time) and ends no later than March 9, 2008 at 01:59:59 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 68] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- EST (i.e., latest valid date and time for EST in this scenario). | |
- For example, this can be used for a recurring event that occurs | |
- every Friday, 8:00 A.M.-9:00 A.M., starting June 1, 2007, ending | |
- December 31, 2007, | |
- | |
- BEGIN:VTIMEZONE | |
- TZID:America/New_York | |
- LAST-MODIFIED:20050809T050000Z | |
- BEGIN:STANDARD | |
- DTSTART:20071104T020000 | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- BEGIN:DAYLIGHT | |
- DTSTART:20070311T020000 | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- END:VTIMEZONE | |
- | |
- This is a simple example showing the current time zone rules for | |
- New York City using a "RRULE" recurrence pattern. Note that there | |
- is no effective end date to either of the Standard Time or | |
- Daylight Time rules. This information would be valid for a | |
- recurring event starting today and continuing indefinitely. | |
- | |
- BEGIN:VTIMEZONE | |
- TZID:America/New_York | |
- LAST-MODIFIED:20050809T050000Z | |
- TZURL:http://zones.example.com/tz/America-New_York.ics | |
- BEGIN:STANDARD | |
- DTSTART:20071104T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- BEGIN:DAYLIGHT | |
- DTSTART:20070311T020000 | |
- RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- END:VTIMEZONE | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 69] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- This is an example showing a set of rules for a fictitious time | |
- zone where the Daylight Time rule has an effective end date (i.e., | |
- after that date, Daylight Time is no longer observed). | |
- | |
- BEGIN:VTIMEZONE | |
- TZID:Fictitious | |
- LAST-MODIFIED:19870101T000000Z | |
- BEGIN:STANDARD | |
- DTSTART:19671029T020000 | |
- RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- BEGIN:DAYLIGHT | |
- DTSTART:19870405T020000 | |
- RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- END:VTIMEZONE | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 70] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- This is an example showing a set of rules for a fictitious time | |
- zone where the first Daylight Time rule has an effective end date. | |
- There is a second Daylight Time rule that picks up where the other | |
- left off. | |
- | |
- BEGIN:VTIMEZONE | |
- TZID:Fictitious | |
- LAST-MODIFIED:19870101T000000Z | |
- BEGIN:STANDARD | |
- DTSTART:19671029T020000 | |
- RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- BEGIN:DAYLIGHT | |
- DTSTART:19870405T020000 | |
- RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- BEGIN:DAYLIGHT | |
- DTSTART:19990424T020000 | |
- RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4 | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- END:VTIMEZONE | |
- | |
-3.6.6. Alarm Component | |
- | |
- Component Name: VALARM | |
- | |
- Purpose: Provide a grouping of component properties that define an | |
- alarm. | |
- | |
- Format Definition: A "VALARM" calendar component is defined by the | |
- following notation: | |
- | |
- alarmc = "BEGIN" ":" "VALARM" CRLF | |
- (audioprop / dispprop / emailprop) | |
- "END" ":" "VALARM" CRLF | |
- | |
- audioprop = *( | |
- ; | |
- ; 'action' and 'trigger' are both REQUIRED, | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 71] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ; but MUST NOT occur more than once. | |
- ; | |
- action / trigger / | |
- ; | |
- ; 'duration' and 'repeat' are both OPTIONAL, | |
- ; and MUST NOT occur more than once each; | |
- ; but if one occurs, so MUST the other. | |
- ; | |
- duration / repeat / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- attach / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- dispprop = *( | |
- ; | |
- ; The following are REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- action / description / trigger / | |
- ; | |
- ; 'duration' and 'repeat' are both OPTIONAL, | |
- ; and MUST NOT occur more than once each; | |
- ; but if one occurs, so MUST the other. | |
- ; | |
- duration / repeat / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- emailprop = *( | |
- ; | |
- ; The following are all REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- action / description / trigger / summary / | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 72] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ; | |
- ; The following is REQUIRED, | |
- ; and MAY occur more than once. | |
- ; | |
- attendee / | |
- ; | |
- ; 'duration' and 'repeat' are both OPTIONAL, | |
- ; and MUST NOT occur more than once each; | |
- ; but if one occurs, so MUST the other. | |
- ; | |
- duration / repeat / | |
- ; | |
- ; The following are OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- attach / x-prop / iana-prop | |
- ; | |
- ) | |
- | |
- Description: A "VALARM" calendar component is a grouping of | |
- component properties that is a reminder or alarm for an event or a | |
- to-do. For example, it may be used to define a reminder for a | |
- pending event or an overdue to-do. | |
- | |
- The "VALARM" calendar component MUST include the "ACTION" and | |
- "TRIGGER" properties. The "ACTION" property further constrains | |
- the "VALARM" calendar component in the following ways: | |
- | |
- When the action is "AUDIO", the alarm can also include one and | |
- only one "ATTACH" property, which MUST point to a sound resource, | |
- which is rendered when the alarm is triggered. | |
- | |
- When the action is "DISPLAY", the alarm MUST also include a | |
- "DESCRIPTION" property, which contains the text to be displayed | |
- when the alarm is triggered. | |
- | |
- When the action is "EMAIL", the alarm MUST include a "DESCRIPTION" | |
- property, which contains the text to be used as the message body, | |
- a "SUMMARY" property, which contains the text to be used as the | |
- message subject, and one or more "ATTENDEE" properties, which | |
- contain the email address of attendees to receive the message. It | |
- can also include one or more "ATTACH" properties, which are | |
- intended to be sent as message attachments. When the alarm is | |
- triggered, the email message is sent. | |
- | |
- The "VALARM" calendar component MUST only appear within either a | |
- "VEVENT" or "VTODO" calendar component. "VALARM" calendar | |
- components cannot be nested. Multiple mutually independent | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 73] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- "VALARM" calendar components can be specified for a single | |
- "VEVENT" or "VTODO" calendar component. | |
- | |
- The "TRIGGER" property specifies when the alarm will be triggered. | |
- The "TRIGGER" property specifies a duration prior to the start of | |
- an event or a to-do. The "TRIGGER" edge may be explicitly set to | |
- be relative to the "START" or "END" of the event or to-do with the | |
- "RELATED" parameter of the "TRIGGER" property. The "TRIGGER" | |
- property value type can alternatively be set to an absolute | |
- calendar date with UTC time. | |
- | |
- In an alarm set to trigger on the "START" of an event or to-do, | |
- the "DTSTART" property MUST be present in the associated event or | |
- to-do. In an alarm in a "VEVENT" calendar component set to | |
- trigger on the "END" of the event, either the "DTEND" property | |
- MUST be present, or the "DTSTART" and "DURATION" properties MUST | |
- both be present. In an alarm in a "VTODO" calendar component set | |
- to trigger on the "END" of the to-do, either the "DUE" property | |
- MUST be present, or the "DTSTART" and "DURATION" properties MUST | |
- both be present. | |
- | |
- The alarm can be defined such that it triggers repeatedly. A | |
- definition of an alarm with a repeating trigger MUST include both | |
- the "DURATION" and "REPEAT" properties. The "DURATION" property | |
- specifies the delay period, after which the alarm will repeat. | |
- The "REPEAT" property specifies the number of additional | |
- repetitions that the alarm will be triggered. This repetition | |
- count is in addition to the initial triggering of the alarm. Both | |
- of these properties MUST be present in order to specify a | |
- repeating alarm. If one of these two properties is absent, then | |
- the alarm will not repeat beyond the initial trigger. | |
- | |
- The "ACTION" property is used within the "VALARM" calendar | |
- component to specify the type of action invoked when the alarm is | |
- triggered. The "VALARM" properties provide enough information for | |
- a specific action to be invoked. It is typically the | |
- responsibility of a "Calendar User Agent" (CUA) to deliver the | |
- alarm in the specified fashion. An "ACTION" property value of | |
- AUDIO specifies an alarm that causes a sound to be played to alert | |
- the user; DISPLAY specifies an alarm that causes a text message to | |
- be displayed to the user; and EMAIL specifies an alarm that causes | |
- an electronic email message to be delivered to one or more email | |
- addresses. | |
- | |
- In an AUDIO alarm, if the optional "ATTACH" property is included, | |
- it MUST specify an audio sound resource. The intention is that | |
- the sound will be played as the alarm effect. If an "ATTACH" | |
- property is specified that does not refer to a sound resource, or | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 74] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- if the specified sound resource cannot be rendered (because its | |
- format is unsupported, or because it cannot be retrieved), then | |
- the CUA or other entity responsible for playing the sound may | |
- choose a fallback action, such as playing a built-in default | |
- sound, or playing no sound at all. | |
- | |
- In a DISPLAY alarm, the intended alarm effect is for the text | |
- value of the "DESCRIPTION" property to be displayed to the user. | |
- | |
- In an EMAIL alarm, the intended alarm effect is for an email | |
- message to be composed and delivered to all the addresses | |
- specified by the "ATTENDEE" properties in the "VALARM" calendar | |
- component. The "DESCRIPTION" property of the "VALARM" calendar | |
- component MUST be used as the body text of the message, and the | |
- "SUMMARY" property MUST be used as the subject text. Any "ATTACH" | |
- properties in the "VALARM" calendar component SHOULD be sent as | |
- attachments to the message. | |
- | |
- Note: Implementations should carefully consider whether they | |
- accept alarm components from untrusted sources, e.g., when | |
- importing calendar objects from external sources. One | |
- reasonable policy is to always ignore alarm components that the | |
- calendar user has not set herself, or at least ask for | |
- confirmation in such a case. | |
- | |
- Example: The following example is for a "VALARM" calendar component | |
- that specifies an audio alarm that will sound at a precise time | |
- and repeat 4 more times at 15-minute intervals: | |
- | |
- BEGIN:VALARM | |
- TRIGGER;VALUE=DATE-TIME:19970317T133000Z | |
- REPEAT:4 | |
- DURATION:PT15M | |
- ACTION:AUDIO | |
- ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/ | |
- sounds/bell-01.aud | |
- END:VALARM | |
- | |
- The following example is for a "VALARM" calendar component that | |
- specifies a display alarm that will trigger 30 minutes before the | |
- scheduled start of the event or of the to-do it is associated with | |
- and will repeat 2 more times at 15-minute intervals: | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 75] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- BEGIN:VALARM | |
- TRIGGER:-PT30M | |
- REPEAT:2 | |
- DURATION:PT15M | |
- ACTION:DISPLAY | |
- DESCRIPTION:Breakfast meeting with executive\n | |
- team at 8:30 AM EST. | |
- END:VALARM | |
- | |
- The following example is for a "VALARM" calendar component that | |
- specifies an email alarm that will trigger 2 days before the | |
- scheduled due DATE-TIME of a to-do with which it is associated. | |
- It does not repeat. The email has a subject, body, and attachment | |
- link. | |
- | |
- BEGIN:VALARM | |
- TRIGGER;RELATED=END:-P2D | |
- ACTION:EMAIL | |
- ATTENDEE:mailto:[email protected] | |
- SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING *** | |
- DESCRIPTION:A draft agenda needs to be sent out to the attendees | |
- to the weekly managers meeting (MGR-LIST). Attached is a | |
- pointer the document template for the agenda file. | |
- ATTACH;FMTTYPE=application/msword:http://example.com/ | |
- templates/agenda.doc | |
- END:VALARM | |
- | |
-3.7. Calendar Properties | |
- | |
- The Calendar Properties are attributes that apply to the iCalendar | |
- object, as a whole. These properties do not appear within a calendar | |
- component. They SHOULD be specified after the "BEGIN:VCALENDAR" | |
- delimiter string and prior to any calendar component. | |
- | |
-3.7.1. Calendar Scale | |
- | |
- Property Name: CALSCALE | |
- | |
- Purpose: This property defines the calendar scale used for the | |
- calendar information specified in the iCalendar object. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified once in an iCalendar | |
- object. The default value is "GREGORIAN". | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 76] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Description: This memo is based on the Gregorian calendar scale. | |
- The Gregorian calendar scale is assumed if this property is not | |
- specified in the iCalendar object. It is expected that other | |
- calendar scales will be defined in other specifications or by | |
- future versions of this memo. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- calscale = "CALSCALE" calparam ":" calvalue CRLF | |
- | |
- calparam = *(";" other-param) | |
- | |
- calvalue = "GREGORIAN" | |
- | |
- Example: The following is an example of this property: | |
- | |
- CALSCALE:GREGORIAN | |
- | |
-3.7.2. Method | |
- | |
- Property Name: METHOD | |
- | |
- Purpose: This property defines the iCalendar object method | |
- associated with the calendar object. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified once in an iCalendar | |
- object. | |
- | |
- Description: When used in a MIME message entity, the value of this | |
- property MUST be the same as the Content-Type "method" parameter | |
- value. If either the "METHOD" property or the Content-Type | |
- "method" parameter is specified, then the other MUST also be | |
- specified. | |
- | |
- No methods are defined by this specification. This is the subject | |
- of other specifications, such as the iCalendar Transport- | |
- independent Interoperability Protocol (iTIP) defined by [2446bis]. | |
- | |
- If this property is not present in the iCalendar object, then a | |
- scheduling transaction MUST NOT be assumed. In such cases, the | |
- iCalendar object is merely being used to transport a snapshot of | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 77] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- some calendar information; without the intention of conveying a | |
- scheduling semantic. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- method = "METHOD" metparam ":" metvalue CRLF | |
- | |
- metparam = *(";" other-param) | |
- | |
- metvalue = iana-token | |
- | |
- Example: The following is a hypothetical example of this property to | |
- convey that the iCalendar object is a scheduling request: | |
- | |
- METHOD:REQUEST | |
- | |
-3.7.3. Product Identifier | |
- | |
- Property Name: PRODID | |
- | |
- Purpose: This property specifies the identifier for the product that | |
- created the iCalendar object. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: The property MUST be specified once in an iCalendar | |
- object. | |
- | |
- Description: The vendor of the implementation SHOULD assure that | |
- this is a globally unique identifier; using some technique such as | |
- an FPI value, as defined in [ISO.9070.1991]. | |
- | |
- This property SHOULD NOT be used to alter the interpretation of an | |
- iCalendar object beyond the semantics specified in this memo. For | |
- example, it is not to be used to further the understanding of non- | |
- standard properties. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- prodid = "PRODID" pidparam ":" pidvalue CRLF | |
- | |
- pidparam = *(";" other-param) | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 78] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- pidvalue = text | |
- ;Any text that describes the product and version | |
- ;and that is generally assured of being unique. | |
- | |
- Example: The following is an example of this property. It does not | |
- imply that English is the default language. | |
- | |
- PRODID:-//ABC Corporation//NONSGML My Product//EN | |
- | |
-3.7.4. Version | |
- | |
- Property Name: VERSION | |
- | |
- Purpose: This property specifies the identifier corresponding to the | |
- highest version number or the minimum and maximum range of the | |
- iCalendar specification that is required in order to interpret the | |
- iCalendar object. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property MUST be specified once in an iCalendar | |
- object. | |
- | |
- Description: A value of "2.0" corresponds to this memo. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- version = "VERSION" verparam ":" vervalue CRLF | |
- | |
- verparam = *(";" other-param) | |
- | |
- vervalue = "2.0" ;This memo | |
- / maxver | |
- / (minver ";" maxver) | |
- | |
- minver = <A IANA-registered iCalendar version identifier> | |
- ;Minimum iCalendar version needed to parse the iCalendar object. | |
- | |
- maxver = <A IANA-registered iCalendar version identifier> | |
- ;Maximum iCalendar version needed to parse the iCalendar object. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 79] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: The following is an example of this property: | |
- | |
- VERSION:2.0 | |
- | |
-3.8. Component Properties | |
- | |
- The following properties can appear within calendar components, as | |
- specified by each component property definition. | |
- | |
-3.8.1. Descriptive Component Properties | |
- | |
- The following properties specify descriptive information about | |
- calendar components. | |
- | |
-3.8.1.1. Attachment | |
- | |
- Property Name: ATTACH | |
- | |
- Purpose: This property provides the capability to associate a | |
- document object with a calendar component. | |
- | |
- Value Type: The default value type for this property is URI. The | |
- value type can also be set to BINARY to indicate inline binary | |
- encoded content information. | |
- | |
- Property Parameters: IANA, non-standard, inline encoding, and value | |
- data type property parameters can be specified on this property. | |
- The format type parameter can be specified on this property and is | |
- RECOMMENDED for inline binary encoded content information. | |
- | |
- Conformance: This property can be specified multiple times in a | |
- "VEVENT", "VTODO", "VJOURNAL", or "VALARM" calendar component with | |
- the exception of AUDIO alarm that only allows this property to | |
- occur once. | |
- | |
- Description: This property is used in "VEVENT", "VTODO", and | |
- "VJOURNAL" calendar components to associate a resource (e.g., | |
- document) with the calendar component. This property is used in | |
- "VALARM" calendar components to specify an audio sound resource or | |
- an email message attachment. This property can be specified as a | |
- URI pointing to a resource or as inline binary encoded content. | |
- | |
- When this property is specified as inline binary encoded content, | |
- calendar applications MAY attempt to guess the media type of the | |
- resource via inspection of its content if and only if the media | |
- type of the resource is not given by the "FMTTYPE" parameter. If | |
- the media type remains unknown, calendar applications SHOULD treat | |
- it as type "application/octet-stream". | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 80] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- attach = "ATTACH" attachparam ( ":" uri ) / | |
- ( | |
- ";" "ENCODING" "=" "BASE64" | |
- ";" "VALUE" "=" "BINARY" | |
- ":" binary | |
- ) | |
- CRLF | |
- | |
- attachparam = *( | |
- ; | |
- ; The following is OPTIONAL for a URI value, | |
- ; RECOMMENDED for a BINARY value, | |
- ; and MUST NOT occur more than once. | |
- ; | |
- (";" fmttypeparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following are examples of this property: | |
- | |
- ATTACH:CID:[email protected] | |
- | |
- ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/ | |
- reports/r-960812.ps | |
- | |
-3.8.1.2. Categories | |
- | |
- Property Name: CATEGORIES | |
- | |
- Purpose: This property defines the categories for a calendar | |
- component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, and language property | |
- parameters can be specified on this property. | |
- | |
- Conformance: The property can be specified within "VEVENT", "VTODO", | |
- or "VJOURNAL" calendar components. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 81] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Description: This property is used to specify categories or subtypes | |
- of the calendar component. The categories are useful in searching | |
- for a calendar component of a particular type and category. | |
- Within the "VEVENT", "VTODO", or "VJOURNAL" calendar components, | |
- more than one category can be specified as a COMMA-separated list | |
- of categories. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- categories = "CATEGORIES" catparam ":" text *("," text) | |
- CRLF | |
- | |
- catparam = *( | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" languageparam ) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following are examples of this property: | |
- | |
- CATEGORIES:APPOINTMENT,EDUCATION | |
- | |
- CATEGORIES:MEETING | |
- | |
-3.8.1.3. Classification | |
- | |
- Property Name: CLASS | |
- | |
- Purpose: This property defines the access classification for a | |
- calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: The property can be specified once in a "VEVENT", | |
- "VTODO", or "VJOURNAL" calendar components. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 82] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Description: An access classification is only one component of the | |
- general security system within a calendar application. It | |
- provides a method of capturing the scope of the access the | |
- calendar owner intends for information within an individual | |
- calendar entry. The access classification of an individual | |
- iCalendar component is useful when measured along with the other | |
- security components of a calendar system (e.g., calendar user | |
- authentication, authorization, access rights, access role, etc.). | |
- Hence, the semantics of the individual access classifications | |
- cannot be completely defined by this memo alone. Additionally, | |
- due to the "blind" nature of most exchange processes using this | |
- memo, these access classifications cannot serve as an enforcement | |
- statement for a system receiving an iCalendar object. Rather, | |
- they provide a method for capturing the intention of the calendar | |
- owner for the access to the calendar component. If not specified | |
- in a component that allows this property, the default value is | |
- PUBLIC. Applications MUST treat x-name and iana-token values they | |
- don't recognize the same way as they would the PRIVATE value. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- class = "CLASS" classparam ":" classvalue CRLF | |
- | |
- classparam = *(";" other-param) | |
- | |
- classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token | |
- / x-name | |
- ;Default is PUBLIC | |
- | |
- Example: The following is an example of this property: | |
- | |
- CLASS:PUBLIC | |
- | |
-3.8.1.4. Comment | |
- | |
- Property Name: COMMENT | |
- | |
- Purpose: This property specifies non-processing information intended | |
- to provide a comment to the calendar user. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, alternate text | |
- representation, and language property parameters can be specified | |
- on this property. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 83] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Conformance: This property can be specified multiple times in | |
- "VEVENT", "VTODO", "VJOURNAL", and "VFREEBUSY" calendar components | |
- as well as in the "STANDARD" and "DAYLIGHT" sub-components. | |
- | |
- Description: This property is used to specify a comment to the | |
- calendar user. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- comment = "COMMENT" commparam ":" text CRLF | |
- | |
- commparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" altrepparam) / (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following is an example of this property: | |
- | |
- COMMENT:The meeting really needs to include both ourselves | |
- and the customer. We can't hold this meeting without them. | |
- As a matter of fact\, the venue for the meeting ought to be at | |
- their site. - - John | |
- | |
-3.8.1.5. Description | |
- | |
- Property Name: DESCRIPTION | |
- | |
- Purpose: This property provides a more complete description of the | |
- calendar component than that provided by the "SUMMARY" property. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, alternate text | |
- representation, and language property parameters can be specified | |
- on this property. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 84] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Conformance: The property can be specified in the "VEVENT", "VTODO", | |
- "VJOURNAL", or "VALARM" calendar components. The property can be | |
- specified multiple times only within a "VJOURNAL" calendar | |
- component. | |
- | |
- Description: This property is used in the "VEVENT" and "VTODO" to | |
- capture lengthy textual descriptions associated with the activity. | |
- | |
- This property is used in the "VJOURNAL" calendar component to | |
- capture one or more textual journal entries. | |
- | |
- This property is used in the "VALARM" calendar component to | |
- capture the display text for a DISPLAY category of alarm, and to | |
- capture the body text for an EMAIL category of alarm. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- description = "DESCRIPTION" descparam ":" text CRLF | |
- | |
- descparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" altrepparam) / (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following is an example of this property with formatted | |
- line breaks in the property value: | |
- | |
- DESCRIPTION:Meeting to provide technical review for "Phoenix" | |
- design.\nHappy Face Conference Room. Phoenix design team | |
- MUST attend this meeting.\nRSVP to team leader. | |
- | |
-3.8.1.6. Geographic Position | |
- | |
- Property Name: GEO | |
- | |
- Purpose: This property specifies information related to the global | |
- position for the activity specified by a calendar component. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 85] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Value Type: FLOAT. The value MUST be two SEMICOLON-separated FLOAT | |
- values. | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in "VEVENT" or "VTODO" | |
- calendar components. | |
- | |
- Description: This property value specifies latitude and longitude, | |
- in that order (i.e., "LAT LON" ordering). The longitude | |
- represents the location east or west of the prime meridian as a | |
- positive or negative real number, respectively. The longitude and | |
- latitude values MAY be specified up to six decimal places, which | |
- will allow for accuracy to within one meter of geographical | |
- position. Receiving applications MUST accept values of this | |
- precision and MAY truncate values of greater precision. | |
- | |
- Values for latitude and longitude shall be expressed as decimal | |
- fractions of degrees. Whole degrees of latitude shall be | |
- represented by a two-digit decimal number ranging from 0 through | |
- 90. Whole degrees of longitude shall be represented by a decimal | |
- number ranging from 0 through 180. When a decimal fraction of a | |
- degree is specified, it shall be separated from the whole number | |
- of degrees by a decimal point. | |
- | |
- Latitudes north of the equator shall be specified by a plus sign | |
- (+), or by the absence of a minus sign (-), preceding the digits | |
- designating degrees. Latitudes south of the Equator shall be | |
- designated by a minus sign (-) preceding the digits designating | |
- degrees. A point on the Equator shall be assigned to the Northern | |
- Hemisphere. | |
- | |
- Longitudes east of the prime meridian shall be specified by a plus | |
- sign (+), or by the absence of a minus sign (-), preceding the | |
- digits designating degrees. Longitudes west of the meridian shall | |
- be designated by minus sign (-) preceding the digits designating | |
- degrees. A point on the prime meridian shall be assigned to the | |
- Eastern Hemisphere. A point on the 180th meridian shall be | |
- assigned to the Western Hemisphere. One exception to this last | |
- convention is permitted. For the special condition of describing | |
- a band of latitude around the earth, the East Bounding Coordinate | |
- data element shall be assigned the value +180 (180) degrees. | |
- | |
- Any spatial address with a latitude of +90 (90) or -90 degrees | |
- will specify the position at the North or South Pole, | |
- respectively. The component for longitude may have any legal | |
- value. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 86] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- With the exception of the special condition described above, this | |
- form is specified in [ANSI INCITS 61-1986]. | |
- | |
- The simple formula for converting degrees-minutes-seconds into | |
- decimal degrees is: | |
- | |
- decimal = degrees + minutes/60 + seconds/3600. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- geo = "GEO" geoparam ":" geovalue CRLF | |
- | |
- geoparam = *(";" other-param) | |
- | |
- geovalue = float ";" float | |
- ;Latitude and Longitude components | |
- | |
- Example: The following is an example of this property: | |
- | |
- GEO:37.386013;-122.082932 | |
- | |
-3.8.1.7. Location | |
- | |
- Property Name: LOCATION | |
- | |
- Purpose: This property defines the intended venue for the activity | |
- defined by a calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, alternate text | |
- representation, and language property parameters can be specified | |
- on this property. | |
- | |
- Conformance: This property can be specified in "VEVENT" or "VTODO" | |
- calendar component. | |
- | |
- Description: Specific venues such as conference or meeting rooms may | |
- be explicitly specified using this property. An alternate | |
- representation may be specified that is a URI that points to | |
- directory information with more structured specification of the | |
- location. For example, the alternate representation may specify | |
- either an LDAP URL [RFC4516] pointing to an LDAP server entry or a | |
- CID URL [RFC2392] pointing to a MIME body part containing a | |
- Virtual-Information Card (vCard) [RFC2426] for the location. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 87] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- location = "LOCATION" locparam ":" text CRLF | |
- | |
- locparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" altrepparam) / (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following are some examples of this property: | |
- | |
- LOCATION:Conference Room - F123\, Bldg. 002 | |
- | |
- LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": | |
- Conference Room - F123\, Bldg. 002 | |
- | |
-3.8.1.8. Percent Complete | |
- | |
- Property Name: PERCENT-COMPLETE | |
- | |
- Purpose: This property is used by an assignee or delegatee of a | |
- to-do to convey the percent completion of a to-do to the | |
- "Organizer". | |
- | |
- Value Type: INTEGER | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified once in a "VTODO" | |
- calendar component. | |
- | |
- Description: The property value is a positive integer between 0 and | |
- 100. A value of "0" indicates the to-do has not yet been started. | |
- A value of "100" indicates that the to-do has been completed. | |
- Integer values in between indicate the percent partially complete. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 88] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- When a to-do is assigned to multiple individuals, the property | |
- value indicates the percent complete for that portion of the to-do | |
- assigned to the assignee or delegatee. For example, if a to-do is | |
- assigned to both individuals "A" and "B". A reply from "A" with a | |
- percent complete of "70" indicates that "A" has completed 70% of | |
- the to-do assigned to them. A reply from "B" with a percent | |
- complete of "50" indicates "B" has completed 50% of the to-do | |
- assigned to them. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF | |
- | |
- pctparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property to show 39% | |
- completion: | |
- | |
- PERCENT-COMPLETE:39 | |
- | |
-3.8.1.9. Priority | |
- | |
- Property Name: PRIORITY | |
- | |
- Purpose: This property defines the relative priority for a calendar | |
- component. | |
- | |
- Value Type: INTEGER | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in "VEVENT" and "VTODO" | |
- calendar components. | |
- | |
- Description: This priority is specified as an integer in the range 0 | |
- to 9. A value of 0 specifies an undefined priority. A value of 1 | |
- is the highest priority. A value of 2 is the second highest | |
- priority. Subsequent numbers specify a decreasing ordinal | |
- priority. A value of 9 is the lowest priority. | |
- | |
- A CUA with a three-level priority scheme of "HIGH", "MEDIUM", and | |
- "LOW" is mapped into this property such that a property value in | |
- the range of 1 to 4 specifies "HIGH" priority. A value of 5 is | |
- the normal or "MEDIUM" priority. A value in the range of 6 to 9 | |
- is "LOW" priority. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 89] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ..., | |
- "C3" is mapped into this property such that a property value of 1 | |
- specifies "A1", a property value of 2 specifies "A2", a property | |
- value of 3 specifies "A3", and so forth up to a property value of | |
- 9 specifies "C3". | |
- | |
- Other integer values are reserved for future use. | |
- | |
- Within a "VEVENT" calendar component, this property specifies a | |
- priority for the event. This property may be useful when more | |
- than one event is scheduled for a given time period. | |
- | |
- Within a "VTODO" calendar component, this property specified a | |
- priority for the to-do. This property is useful in prioritizing | |
- multiple action items for a given time period. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- priority = "PRIORITY" prioparam ":" priovalue CRLF | |
- ;Default is zero (i.e., undefined). | |
- | |
- prioparam = *(";" other-param) | |
- | |
- priovalue = integer ;Must be in the range [0..9] | |
- ; All other values are reserved for future use. | |
- | |
- Example: The following is an example of a property with the highest | |
- priority: | |
- | |
- PRIORITY:1 | |
- | |
- The following is an example of a property with a next highest | |
- priority: | |
- | |
- PRIORITY:2 | |
- | |
- The following is an example of a property with no priority. This | |
- is equivalent to not specifying the "PRIORITY" property: | |
- | |
- PRIORITY:0 | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 90] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.1.10. Resources | |
- | |
- Property Name: RESOURCES | |
- | |
- Purpose: This property defines the equipment or resources | |
- anticipated for an activity specified by a calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, alternate text | |
- representation, and language property parameters can be specified | |
- on this property. | |
- | |
- Conformance: This property can be specified once in "VEVENT" or | |
- "VTODO" calendar component. | |
- | |
- Description: The property value is an arbitrary text. More than one | |
- resource can be specified as a COMMA-separated list of resources. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- resources = "RESOURCES" resrcparam ":" text *("," text) CRLF | |
- | |
- resrcparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" altrepparam) / (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following is an example of this property: | |
- | |
- RESOURCES:EASEL,PROJECTOR,VCR | |
- | |
- RESOURCES;LANGUAGE=fr:Nettoyeur haute pression | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 91] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.1.11. Status | |
- | |
- Property Name: STATUS | |
- | |
- Purpose: This property defines the overall status or confirmation | |
- for the calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified once in "VEVENT", | |
- "VTODO", or "VJOURNAL" calendar components. | |
- | |
- Description: In a group-scheduled calendar component, the property | |
- is used by the "Organizer" to provide a confirmation of the event | |
- to the "Attendees". For example in a "VEVENT" calendar component, | |
- the "Organizer" can indicate that a meeting is tentative, | |
- confirmed, or cancelled. In a "VTODO" calendar component, the | |
- "Organizer" can indicate that an action item needs action, is | |
- completed, is in process or being worked on, or has been | |
- cancelled. In a "VJOURNAL" calendar component, the "Organizer" | |
- can indicate that a journal entry is draft, final, or has been | |
- cancelled or removed. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- status = "STATUS" statparam ":" statvalue CRLF | |
- | |
- statparam = *(";" other-param) | |
- | |
- statvalue = (statvalue-event | |
- / statvalue-todo | |
- / statvalue-jour) | |
- | |
- statvalue-event = "TENTATIVE" ;Indicates event is tentative. | |
- / "CONFIRMED" ;Indicates event is definite. | |
- / "CANCELLED" ;Indicates event was cancelled. | |
- ;Status values for a "VEVENT" | |
- | |
- statvalue-todo = "NEEDS-ACTION" ;Indicates to-do needs action. | |
- / "COMPLETED" ;Indicates to-do completed. | |
- / "IN-PROCESS" ;Indicates to-do in process of. | |
- / "CANCELLED" ;Indicates to-do was cancelled. | |
- ;Status values for "VTODO". | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 92] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- statvalue-jour = "DRAFT" ;Indicates journal is draft. | |
- / "FINAL" ;Indicates journal is final. | |
- / "CANCELLED" ;Indicates journal is removed. | |
- ;Status values for "VJOURNAL". | |
- | |
- Example: The following is an example of this property for a "VEVENT" | |
- calendar component: | |
- | |
- STATUS:TENTATIVE | |
- | |
- The following is an example of this property for a "VTODO" | |
- calendar component: | |
- | |
- STATUS:NEEDS-ACTION | |
- | |
- The following is an example of this property for a "VJOURNAL" | |
- calendar component: | |
- | |
- STATUS:DRAFT | |
- | |
-3.8.1.12. Summary | |
- | |
- Property Name: SUMMARY | |
- | |
- Purpose: This property defines a short summary or subject for the | |
- calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, alternate text | |
- representation, and language property parameters can be specified | |
- on this property. | |
- | |
- Conformance: The property can be specified in "VEVENT", "VTODO", | |
- "VJOURNAL", or "VALARM" calendar components. | |
- | |
- Description: This property is used in the "VEVENT", "VTODO", and | |
- "VJOURNAL" calendar components to capture a short, one-line | |
- summary about the activity or journal entry. | |
- | |
- This property is used in the "VALARM" calendar component to | |
- capture the subject of an EMAIL category of alarm. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 93] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- summary = "SUMMARY" summparam ":" text CRLF | |
- | |
- summparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" altrepparam) / (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following is an example of this property: | |
- | |
- SUMMARY:Department Party | |
- | |
-3.8.2. Date and Time Component Properties | |
- | |
- The following properties specify date and time related information in | |
- calendar components. | |
- | |
-3.8.2.1. Date-Time Completed | |
- | |
- Property Name: COMPLETED | |
- | |
- Purpose: This property defines the date and time that a to-do was | |
- actually completed. | |
- | |
- Value Type: DATE-TIME | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: The property can be specified in a "VTODO" calendar | |
- component. The value MUST be specified as a date with UTC time. | |
- | |
- Description: This property defines the date and time that a to-do | |
- was actually completed. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 94] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- completed = "COMPLETED" compparam ":" date-time CRLF | |
- | |
- compparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property: | |
- | |
- COMPLETED:19960401T150000Z | |
- | |
-3.8.2.2. Date-Time End | |
- | |
- Property Name: DTEND | |
- | |
- Purpose: This property specifies the date and time that a calendar | |
- component ends. | |
- | |
- Value Type: The default value type is DATE-TIME. The value type can | |
- be set to a DATE value type. | |
- | |
- Property Parameters: IANA, non-standard, value data type, and time | |
- zone identifier property parameters can be specified on this | |
- property. | |
- | |
- Conformance: This property can be specified in "VEVENT" or | |
- "VFREEBUSY" calendar components. | |
- | |
- Description: Within the "VEVENT" calendar component, this property | |
- defines the date and time by which the event ends. The value type | |
- of this property MUST be the same as the "DTSTART" property, and | |
- its value MUST be later in time than the value of the "DTSTART" | |
- property. Furthermore, this property MUST be specified as a date | |
- with local time if and only if the "DTSTART" property is also | |
- specified as a date with local time. | |
- | |
- Within the "VFREEBUSY" calendar component, this property defines | |
- the end date and time for the free or busy time information. The | |
- time MUST be specified in the UTC time format. The value MUST be | |
- later in time than the value of the "DTSTART" property. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 95] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- dtend = "DTEND" dtendparam ":" dtendval CRLF | |
- | |
- dtendparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / | |
- (";" tzidparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- dtendval = date-time / date | |
- ;Value MUST match value type | |
- | |
- Example: The following is an example of this property: | |
- | |
- DTEND:19960401T150000Z | |
- | |
- DTEND;VALUE=DATE:19980704 | |
- | |
-3.8.2.3. Date-Time Due | |
- | |
- Property Name: DUE | |
- | |
- Purpose: This property defines the date and time that a to-do is | |
- expected to be completed. | |
- | |
- Value Type: The default value type is DATE-TIME. The value type can | |
- be set to a DATE value type. | |
- | |
- Property Parameters: IANA, non-standard, value data type, and time | |
- zone identifier property parameters can be specified on this | |
- property. | |
- | |
- Conformance: The property can be specified once in a "VTODO" | |
- calendar component. | |
- | |
- Description: This property defines the date and time before which a | |
- to-do is expected to be completed. For cases where this property | |
- is specified in a "VTODO" calendar component that also specifies a | |
- "DTSTART" property, the value type of this property MUST be the | |
- same as the "DTSTART" property, and the value of this property | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 96] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- MUST be later in time than the value of the "DTSTART" property. | |
- Furthermore, this property MUST be specified as a date with local | |
- time if and only if the "DTSTART" property is also specified as a | |
- date with local time. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- due = "DUE" dueparam ":" dueval CRLF | |
- | |
- dueparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / | |
- (";" tzidparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- dueval = date-time / date | |
- ;Value MUST match value type | |
- | |
- Example: The following is an example of this property: | |
- | |
- DUE:19980430T000000Z | |
- | |
-3.8.2.4. Date-Time Start | |
- | |
- Property Name: DTSTART | |
- | |
- Purpose: This property specifies when the calendar component begins. | |
- | |
- Value Type: The default value type is DATE-TIME. The time value | |
- MUST be one of the forms defined for the DATE-TIME value type. | |
- The value type can be set to a DATE value type. | |
- | |
- Property Parameters: IANA, non-standard, value data type, and time | |
- zone identifier property parameters can be specified on this | |
- property. | |
- | |
- Conformance: This property can be specified once in the "VEVENT", | |
- "VTODO", or "VFREEBUSY" calendar components as well as in the | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 97] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- "STANDARD" and "DAYLIGHT" sub-components. This property is | |
- REQUIRED in all types of recurring calendar components that | |
- specify the "RRULE" property. This property is also REQUIRED in | |
- "VEVENT" calendar components contained in iCalendar objects that | |
- don't specify the "METHOD" property. | |
- | |
- Description: Within the "VEVENT" calendar component, this property | |
- defines the start date and time for the event. | |
- | |
- Within the "VFREEBUSY" calendar component, this property defines | |
- the start date and time for the free or busy time information. | |
- The time MUST be specified in UTC time. | |
- | |
- Within the "STANDARD" and "DAYLIGHT" sub-components, this property | |
- defines the effective start date and time for a time zone | |
- specification. This property is REQUIRED within each "STANDARD" | |
- and "DAYLIGHT" sub-components included in "VTIMEZONE" calendar | |
- components and MUST be specified as a date with local time without | |
- the "TZID" property parameter. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- dtstart = "DTSTART" dtstparam ":" dtstval CRLF | |
- | |
- dtstparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / | |
- (";" tzidparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- dtstval = date-time / date | |
- ;Value MUST match value type | |
- | |
- Example: The following is an example of this property: | |
- | |
- DTSTART:19980118T073000Z | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 98] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.2.5. Duration | |
- | |
- Property Name: DURATION | |
- | |
- Purpose: This property specifies a positive duration of time. | |
- | |
- Value Type: DURATION | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in "VEVENT", "VTODO", or | |
- "VALARM" calendar components. | |
- | |
- Description: In a "VEVENT" calendar component the property may be | |
- used to specify a duration of the event, instead of an explicit | |
- end DATE-TIME. In a "VTODO" calendar component the property may | |
- be used to specify a duration for the to-do, instead of an | |
- explicit due DATE-TIME. In a "VALARM" calendar component the | |
- property may be used to specify the delay period prior to | |
- repeating an alarm. When the "DURATION" property relates to a | |
- "DTSTART" property that is specified as a DATE value, then the | |
- "DURATION" property MUST be specified as a "dur-day" or "dur-week" | |
- value. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- duration = "DURATION" durparam ":" dur-value CRLF | |
- ;consisting of a positive duration of time. | |
- | |
- durparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property that specifies | |
- an interval of time of one hour and zero minutes and zero seconds: | |
- | |
- DURATION:PT1H0M0S | |
- | |
- The following is an example of this property that specifies an | |
- interval of time of 15 minutes. | |
- | |
- DURATION:PT15M | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 99] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.2.6. Free/Busy Time | |
- | |
- Property Name: FREEBUSY | |
- | |
- Purpose: This property defines one or more free or busy time | |
- intervals. | |
- | |
- Value Type: PERIOD | |
- | |
- Property Parameters: IANA, non-standard, and free/busy time type | |
- property parameters can be specified on this property. | |
- | |
- Conformance: The property can be specified in a "VFREEBUSY" calendar | |
- component. | |
- | |
- Description: These time periods can be specified as either a start | |
- and end DATE-TIME or a start DATE-TIME and DURATION. The date and | |
- time MUST be a UTC time format. | |
- | |
- "FREEBUSY" properties within the "VFREEBUSY" calendar component | |
- SHOULD be sorted in ascending order, based on start time and then | |
- end time, with the earliest periods first. | |
- | |
- The "FREEBUSY" property can specify more than one value, separated | |
- by the COMMA character. In such cases, the "FREEBUSY" property | |
- values MUST all be of the same "FBTYPE" property parameter type | |
- (e.g., all values of a particular "FBTYPE" listed together in a | |
- single property). | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF | |
- | |
- fbparam = *( | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" fbtypeparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 100] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- fbvalue = period *("," period) | |
- ;Time value MUST be in the UTC time format. | |
- | |
- Example: The following are some examples of this property: | |
- | |
- FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M | |
- | |
- FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H | |
- | |
- FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H | |
- ,19970308T230000Z/19970309T000000Z | |
- | |
-3.8.2.7. Time Transparency | |
- | |
- Property Name: TRANSP | |
- | |
- Purpose: This property defines whether or not an event is | |
- transparent to busy time searches. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified once in a "VEVENT" | |
- calendar component. | |
- | |
- Description: Time Transparency is the characteristic of an event | |
- that determines whether it appears to consume time on a calendar. | |
- Events that consume actual time for the individual or resource | |
- associated with the calendar SHOULD be recorded as OPAQUE, | |
- allowing them to be detected by free/busy time searches. Other | |
- events, which do not take up the individual's (or resource's) time | |
- SHOULD be recorded as TRANSPARENT, making them invisible to free/ | |
- busy time searches. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- transp = "TRANSP" transparam ":" transvalue CRLF | |
- | |
- transparam = *(";" other-param) | |
- | |
- transvalue = "OPAQUE" | |
- ;Blocks or opaque on busy time searches. | |
- / "TRANSPARENT" | |
- ;Transparent on busy time searches. | |
- ;Default value is OPAQUE | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 101] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: The following is an example of this property for an event | |
- that is transparent or does not block on free/busy time searches: | |
- | |
- TRANSP:TRANSPARENT | |
- | |
- The following is an example of this property for an event that is | |
- opaque or blocks on free/busy time searches: | |
- | |
- TRANSP:OPAQUE | |
- | |
-3.8.3. Time Zone Component Properties | |
- | |
- The following properties specify time zone information in calendar | |
- components. | |
- | |
-3.8.3.1. Time Zone Identifier | |
- | |
- Property Name: TZID | |
- | |
- Purpose: This property specifies the text value that uniquely | |
- identifies the "VTIMEZONE" calendar component in the scope of an | |
- iCalendar object. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property MUST be specified in a "VTIMEZONE" | |
- calendar component. | |
- | |
- Description: This is the label by which a time zone calendar | |
- component is referenced by any iCalendar properties whose value | |
- type is either DATE-TIME or TIME and not intended to specify a UTC | |
- or a "floating" time. The presence of the SOLIDUS character as a | |
- prefix, indicates that this "TZID" represents an unique ID in a | |
- globally defined time zone registry (when such registry is | |
- defined). | |
- | |
- Note: This document does not define a naming convention for | |
- time zone identifiers. Implementers may want to use the naming | |
- conventions defined in existing time zone specifications such | |
- as the public-domain TZ database [TZDB]. The specification of | |
- globally unique time zone identifiers is not addressed by this | |
- document and is left for future study. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 102] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF | |
- | |
- tzidpropparam = *(";" other-param) | |
- | |
- ;tzidprefix = "/" | |
- ; Defined previously. Just listed here for reader convenience. | |
- | |
- Example: The following are examples of non-globally unique time zone | |
- identifiers: | |
- | |
- TZID:America/New_York | |
- | |
- TZID:America/Los_Angeles | |
- | |
- The following is an example of a fictitious globally unique time | |
- zone identifier: | |
- | |
- TZID:/example.org/America/New_York | |
- | |
-3.8.3.2. Time Zone Name | |
- | |
- Property Name: TZNAME | |
- | |
- Purpose: This property specifies the customary designation for a | |
- time zone description. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, and language property | |
- parameters can be specified on this property. | |
- | |
- Conformance: This property can be specified in "STANDARD" and | |
- "DAYLIGHT" sub-components. | |
- | |
- Description: This property specifies a customary name that can be | |
- used when displaying dates that occur during the observance | |
- defined by the time zone sub-component. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 103] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- tzname = "TZNAME" tznparam ":" text CRLF | |
- | |
- tznparam = *( | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following are examples of this property: | |
- | |
- TZNAME:EST | |
- | |
- TZNAME;LANGUAGE=fr-CA:HNE | |
- | |
-3.8.3.3. Time Zone Offset From | |
- | |
- Property Name: TZOFFSETFROM | |
- | |
- Purpose: This property specifies the offset that is in use prior to | |
- this time zone observance. | |
- | |
- Value Type: UTC-OFFSET | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property MUST be specified in "STANDARD" and | |
- "DAYLIGHT" sub-components. | |
- | |
- Description: This property specifies the offset that is in use prior | |
- to this time observance. It is used to calculate the absolute | |
- time at which the transition to a given observance takes place. | |
- This property MUST only be specified in a "VTIMEZONE" calendar | |
- component. A "VTIMEZONE" calendar component MUST include this | |
- property. The property value is a signed numeric indicating the | |
- number of hours and possibly minutes from UTC. Positive numbers | |
- represent time zones east of the prime meridian, or ahead of UTC. | |
- Negative numbers represent time zones west of the prime meridian, | |
- or behind UTC. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 104] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset | |
- CRLF | |
- | |
- frmparam = *(";" other-param) | |
- | |
- Example: The following are examples of this property: | |
- | |
- TZOFFSETFROM:-0500 | |
- | |
- TZOFFSETFROM:+1345 | |
- | |
-3.8.3.4. Time Zone Offset To | |
- | |
- Property Name: TZOFFSETTO | |
- | |
- Purpose: This property specifies the offset that is in use in this | |
- time zone observance. | |
- | |
- Value Type: UTC-OFFSET | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property MUST be specified in "STANDARD" and | |
- "DAYLIGHT" sub-components. | |
- | |
- Description: This property specifies the offset that is in use in | |
- this time zone observance. It is used to calculate the absolute | |
- time for the new observance. The property value is a signed | |
- numeric indicating the number of hours and possibly minutes from | |
- UTC. Positive numbers represent time zones east of the prime | |
- meridian, or ahead of UTC. Negative numbers represent time zones | |
- west of the prime meridian, or behind UTC. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF | |
- | |
- toparam = *(";" other-param) | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 105] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: The following are examples of this property: | |
- | |
- TZOFFSETTO:-0400 | |
- | |
- TZOFFSETTO:+1245 | |
- | |
-3.8.3.5. Time Zone URL | |
- | |
- Property Name: TZURL | |
- | |
- Purpose: This property provides a means for a "VTIMEZONE" component | |
- to point to a network location that can be used to retrieve an up- | |
- to-date version of itself. | |
- | |
- Value Type: URI | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in a "VTIMEZONE" | |
- calendar component. | |
- | |
- Description: This property provides a means for a "VTIMEZONE" | |
- component to point to a network location that can be used to | |
- retrieve an up-to-date version of itself. This provides a hook to | |
- handle changes government bodies impose upon time zone | |
- definitions. Retrieval of this resource results in an iCalendar | |
- object containing a single "VTIMEZONE" component and a "METHOD" | |
- property set to PUBLISH. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- tzurl = "TZURL" tzurlparam ":" uri CRLF | |
- | |
- tzurlparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property: | |
- | |
- TZURL:http://timezones.example.org/tz/America-Los_Angeles.ics | |
- | |
-3.8.4. Relationship Component Properties | |
- | |
- The following properties specify relationship information in calendar | |
- components. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 106] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.4.1. Attendee | |
- | |
- Property Name: ATTENDEE | |
- | |
- Purpose: This property defines an "Attendee" within a calendar | |
- component. | |
- | |
- Value Type: CAL-ADDRESS | |
- | |
- Property Parameters: IANA, non-standard, language, calendar user | |
- type, group or list membership, participation role, participation | |
- status, RSVP expectation, delegatee, delegator, sent by, common | |
- name, or directory entry reference property parameters can be | |
- specified on this property. | |
- | |
- Conformance: This property MUST be specified in an iCalendar object | |
- that specifies a group-scheduled calendar entity. This property | |
- MUST NOT be specified in an iCalendar object when publishing the | |
- calendar information (e.g., NOT in an iCalendar object that | |
- specifies the publication of a calendar user's busy time, event, | |
- to-do, or journal). This property is not specified in an | |
- iCalendar object that specifies only a time zone definition or | |
- that defines calendar components that are not group-scheduled | |
- components, but are components only on a single user's calendar. | |
- | |
- Description: This property MUST only be specified within calendar | |
- components to specify participants, non-participants, and the | |
- chair of a group-scheduled calendar entity. The property is | |
- specified within an "EMAIL" category of the "VALARM" calendar | |
- component to specify an email address that is to receive the email | |
- type of iCalendar alarm. | |
- | |
- The property parameter "CN" is for the common or displayable name | |
- associated with the calendar address; "ROLE", for the intended | |
- role that the attendee will have in the calendar component; | |
- "PARTSTAT", for the status of the attendee's participation; | |
- "RSVP", for indicating whether the favor of a reply is requested; | |
- "CUTYPE", to indicate the type of calendar user; "MEMBER", to | |
- indicate the groups that the attendee belongs to; "DELEGATED-TO", | |
- to indicate the calendar users that the original request was | |
- delegated to; and "DELEGATED-FROM", to indicate whom the request | |
- was delegated from; "SENT-BY", to indicate whom is acting on | |
- behalf of the "ATTENDEE"; and "DIR", to indicate the URI that | |
- points to the directory information corresponding to the attendee. | |
- These property parameters can be specified on an "ATTENDEE" | |
- property in either a "VEVENT", "VTODO", or "VJOURNAL" calendar | |
- component. They MUST NOT be specified in an "ATTENDEE" property | |
- in a "VFREEBUSY" or "VALARM" calendar component. If the | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 107] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- "LANGUAGE" property parameter is specified, the identified | |
- language applies to the "CN" parameter. | |
- | |
- A recipient delegated a request MUST inherit the "RSVP" and "ROLE" | |
- values from the attendee that delegated the request to them. | |
- | |
- Multiple attendees can be specified by including multiple | |
- "ATTENDEE" properties within the calendar component. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- attendee = "ATTENDEE" attparam ":" cal-address CRLF | |
- | |
- attparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" cutypeparam) / (";" memberparam) / | |
- (";" roleparam) / (";" partstatparam) / | |
- (";" rsvpparam) / (";" deltoparam) / | |
- (";" delfromparam) / (";" sentbyparam) / | |
- (";" cnparam) / (";" dirparam) / | |
- (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following are examples of this property's use for a | |
- to-do: | |
- | |
- ATTENDEE;MEMBER="mailto:[email protected]": | |
- mailto:[email protected] | |
- ATTENDEE;DELEGATED-FROM="mailto:[email protected]": | |
- mailto:[email protected] | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 108] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The following is an example of this property used for specifying | |
- multiple attendees to an event: | |
- | |
- ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry | |
- Cabot:mailto:[email protected] | |
- ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@ | |
- example.com";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@ | |
- example.com | |
- | |
- The following is an example of this property with a URI to the | |
- directory information associated with the attendee: | |
- | |
- ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC% | |
- 20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@ | |
- example.com | |
- | |
- The following is an example of this property with "delegatee" and | |
- "delegator" information for an event: | |
- | |
- ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM= | |
- "mailto:[email protected]";CN=Henry Cabot:mailto:hcabot@ | |
- example.com | |
- ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO= | |
- "mailto:[email protected]";CN=The Big Cheese:mailto:iamboss | |
- @example.com | |
- ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe | |
- :mailto:[email protected] | |
- | |
- Example: The following is an example of this property's use when | |
- another calendar user is acting on behalf of the "Attendee": | |
- | |
- ATTENDEE;SENT-BY=mailto:[email protected];CN=John Smith: | |
- mailto:[email protected] | |
- | |
-3.8.4.2. Contact | |
- | |
- Property Name: CONTACT | |
- | |
- Purpose: This property is used to represent contact information or | |
- alternately a reference to contact information associated with the | |
- calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, alternate text | |
- representation, and language property parameters can be specified | |
- on this property. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 109] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Conformance: This property can be specified in a "VEVENT", "VTODO", | |
- "VJOURNAL", or "VFREEBUSY" calendar component. | |
- | |
- Description: The property value consists of textual contact | |
- information. An alternative representation for the property value | |
- can also be specified that refers to a URI pointing to an | |
- alternate form, such as a vCard [RFC2426], for the contact | |
- information. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- contact = "CONTACT" contparam ":" text CRLF | |
- | |
- contparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" altrepparam) / (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following is an example of this property referencing | |
- textual contact information: | |
- | |
- CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234 | |
- | |
- The following is an example of this property with an alternate | |
- representation of an LDAP URI to a directory entry containing the | |
- contact information: | |
- | |
- CONTACT;ALTREP="ldap://example.com:6666/o=ABC%20Industries\, | |
- c=US???(cn=Jim%20Dolittle)":Jim Dolittle\, ABC Industries\, | |
- +1-919-555-1234 | |
- | |
- The following is an example of this property with an alternate | |
- representation of a MIME body part containing the contact | |
- information, such as a vCard [RFC2426] embedded in a text/ | |
- directory media type [RFC2425]: | |
- | |
- CONTACT;ALTREP="CID:[email protected]": | |
- Jim Dolittle\, ABC Industries\, +1-919-555-1234 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 110] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The following is an example of this property referencing a network | |
- resource, such as a vCard [RFC2426] object containing the contact | |
- information: | |
- | |
- CONTACT;ALTREP="http://example.com/pdi/jdoe.vcf":Jim | |
- Dolittle\, ABC Industries\, +1-919-555-1234 | |
- | |
-3.8.4.3. Organizer | |
- | |
- Property Name: ORGANIZER | |
- | |
- Purpose: This property defines the organizer for a calendar | |
- component. | |
- | |
- Value Type: CAL-ADDRESS | |
- | |
- Property Parameters: IANA, non-standard, language, common name, | |
- directory entry reference, and sent-by property parameters can be | |
- specified on this property. | |
- | |
- Conformance: This property MUST be specified in an iCalendar object | |
- that specifies a group-scheduled calendar entity. This property | |
- MUST be specified in an iCalendar object that specifies the | |
- publication of a calendar user's busy time. This property MUST | |
- NOT be specified in an iCalendar object that specifies only a time | |
- zone definition or that defines calendar components that are not | |
- group-scheduled components, but are components only on a single | |
- user's calendar. | |
- | |
- Description: This property is specified within the "VEVENT", | |
- "VTODO", and "VJOURNAL" calendar components to specify the | |
- organizer of a group-scheduled calendar entity. The property is | |
- specified within the "VFREEBUSY" calendar component to specify the | |
- calendar user requesting the free or busy time. When publishing a | |
- "VFREEBUSY" calendar component, the property is used to specify | |
- the calendar that the published busy time came from. | |
- | |
- The property has the property parameters "CN", for specifying the | |
- common or display name associated with the "Organizer", "DIR", for | |
- specifying a pointer to the directory information associated with | |
- the "Organizer", "SENT-BY", for specifying another calendar user | |
- that is acting on behalf of the "Organizer". The non-standard | |
- parameters may also be specified on this property. If the | |
- "LANGUAGE" property parameter is specified, the identified | |
- language applies to the "CN" parameter value. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 111] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- organizer = "ORGANIZER" orgparam ":" | |
- cal-address CRLF | |
- | |
- orgparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" cnparam) / (";" dirparam) / (";" sentbyparam) / | |
- (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- Example: The following is an example of this property: | |
- | |
- ORGANIZER;CN=John Smith:mailto:[email protected] | |
- | |
- The following is an example of this property with a pointer to the | |
- directory information associated with the organizer: | |
- | |
- ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass | |
- ociates,c=US???(cn=John%20Smith)":mailto:[email protected] | |
- | |
- The following is an example of this property used by another | |
- calendar user who is acting on behalf of the organizer, with | |
- responses intended to be sent back to the organizer, not the other | |
- calendar user: | |
- | |
- ORGANIZER;SENT-BY="mailto:[email protected]": | |
- mailto:[email protected] | |
- | |
-3.8.4.4. Recurrence ID | |
- | |
- Property Name: RECURRENCE-ID | |
- | |
- Purpose: This property is used in conjunction with the "UID" and | |
- "SEQUENCE" properties to identify a specific instance of a | |
- recurring "VEVENT", "VTODO", or "VJOURNAL" calendar component. | |
- The property value is the original value of the "DTSTART" property | |
- of the recurrence instance. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 112] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Value Type: The default value type is DATE-TIME. The value type can | |
- be set to a DATE value type. This property MUST have the same | |
- value type as the "DTSTART" property contained within the | |
- recurring component. Furthermore, this property MUST be specified | |
- as a date with local time if and only if the "DTSTART" property | |
- contained within the recurring component is specified as a date | |
- with local time. | |
- | |
- Property Parameters: IANA, non-standard, value data type, time zone | |
- identifier, and recurrence identifier range parameters can be | |
- specified on this property. | |
- | |
- Conformance: This property can be specified in an iCalendar object | |
- containing a recurring calendar component. | |
- | |
- Description: The full range of calendar components specified by a | |
- recurrence set is referenced by referring to just the "UID" | |
- property value corresponding to the calendar component. The | |
- "RECURRENCE-ID" property allows the reference to an individual | |
- instance within the recurrence set. | |
- | |
- If the value of the "DTSTART" property is a DATE type value, then | |
- the value MUST be the calendar date for the recurrence instance. | |
- | |
- The DATE-TIME value is set to the time when the original | |
- recurrence instance would occur; meaning that if the intent is to | |
- change a Friday meeting to Thursday, the DATE-TIME is still set to | |
- the original Friday meeting. | |
- | |
- The "RECURRENCE-ID" property is used in conjunction with the "UID" | |
- and "SEQUENCE" properties to identify a particular instance of a | |
- recurring event, to-do, or journal. For a given pair of "UID" and | |
- "SEQUENCE" property values, the "RECURRENCE-ID" value for a | |
- recurrence instance is fixed. | |
- | |
- The "RANGE" parameter is used to specify the effective range of | |
- recurrence instances from the instance specified by the | |
- "RECURRENCE-ID" property value. The value for the range parameter | |
- can only be "THISANDFUTURE" to indicate a range defined by the | |
- given recurrence instance and all subsequent instances. | |
- Subsequent instances are determined by their "RECURRENCE-ID" value | |
- and not their current scheduled start time. Subsequent instances | |
- defined in separate components are not impacted by the given | |
- recurrence instance. When the given recurrence instance is | |
- rescheduled, all subsequent instances are also rescheduled by the | |
- same time difference. For instance, if the given recurrence | |
- instance is rescheduled to start 2 hours later, then all | |
- subsequent instances are also rescheduled 2 hours later. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 113] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Similarly, if the duration of the given recurrence instance is | |
- modified, then all subsequence instances are also modified to have | |
- this same duration. | |
- | |
- Note: The "RANGE" parameter may not be appropriate to | |
- reschedule specific subsequent instances of complex recurring | |
- calendar component. Assuming an unbounded recurring calendar | |
- component scheduled to occur on Mondays and Wednesdays, the | |
- "RANGE" parameter could not be used to reschedule only the | |
- future Monday instances to occur on Tuesday instead. In such | |
- cases, the calendar application could simply truncate the | |
- unbounded recurring calendar component (i.e., with the "COUNT" | |
- or "UNTIL" rule parts), and create two new unbounded recurring | |
- calendar components for the future instances. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF | |
- | |
- ridparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / | |
- (";" tzidparam) / (";" rangeparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- ridval = date-time / date | |
- ;Value MUST match value type | |
- | |
- Example: The following are examples of this property: | |
- | |
- RECURRENCE-ID;VALUE=DATE:19960401 | |
- | |
- RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 114] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.4.5. Related To | |
- | |
- Property Name: RELATED-TO | |
- | |
- Purpose: This property is used to represent a relationship or | |
- reference between one calendar component and another. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, and relationship type | |
- property parameters can be specified on this property. | |
- | |
- Conformance: This property can be specified in the "VEVENT", | |
- "VTODO", and "VJOURNAL" calendar components. | |
- | |
- Description: The property value consists of the persistent, globally | |
- unique identifier of another calendar component. This value would | |
- be represented in a calendar component by the "UID" property. | |
- | |
- By default, the property value points to another calendar | |
- component that has a PARENT relationship to the referencing | |
- object. The "RELTYPE" property parameter is used to either | |
- explicitly state the default PARENT relationship type to the | |
- referenced calendar component or to override the default PARENT | |
- relationship type and specify either a CHILD or SIBLING | |
- relationship. The PARENT relationship indicates that the calendar | |
- component is a subordinate of the referenced calendar component. | |
- The CHILD relationship indicates that the calendar component is a | |
- superior of the referenced calendar component. The SIBLING | |
- relationship indicates that the calendar component is a peer of | |
- the referenced calendar component. | |
- | |
- Changes to a calendar component referenced by this property can | |
- have an implicit impact on the related calendar component. For | |
- example, if a group event changes its start or end date or time, | |
- then the related, dependent events will need to have their start | |
- and end dates changed in a corresponding way. Similarly, if a | |
- PARENT calendar component is cancelled or deleted, then there is | |
- an implied impact to the related CHILD calendar components. This | |
- property is intended only to provide information on the | |
- relationship of calendar components. It is up to the target | |
- calendar system to maintain any property implications of this | |
- relationship. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 115] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- related = "RELATED-TO" relparam ":" text CRLF | |
- | |
- relparam = *( | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" reltypeparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- The following is an example of this property: | |
- | |
- RELATED-TO:[email protected] | |
- | |
- RELATED-TO:[email protected] | |
- | |
-3.8.4.6. Uniform Resource Locator | |
- | |
- Property Name: URL | |
- | |
- Purpose: This property defines a Uniform Resource Locator (URL) | |
- associated with the iCalendar object. | |
- | |
- Value Type: URI | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified once in the "VEVENT", | |
- "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components. | |
- | |
- Description: This property may be used in a calendar component to | |
- convey a location where a more dynamic rendition of the calendar | |
- information associated with the calendar component can be found. | |
- This memo does not attempt to standardize the form of the URI, nor | |
- the format of the resource pointed to by the property value. If | |
- the URL property and Content-Location MIME header are both | |
- specified, they MUST point to the same resource. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 116] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- url = "URL" urlparam ":" uri CRLF | |
- | |
- urlparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property: | |
- | |
- URL:http://example.com/pub/calendars/jsmith/mytime.ics | |
- | |
-3.8.4.7. Unique Identifier | |
- | |
- Property Name: UID | |
- | |
- Purpose: This property defines the persistent, globally unique | |
- identifier for the calendar component. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: The property MUST be specified in the "VEVENT", | |
- "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components. | |
- | |
- Description: The "UID" itself MUST be a globally unique identifier. | |
- The generator of the identifier MUST guarantee that the identifier | |
- is unique. There are several algorithms that can be used to | |
- accomplish this. A good method to assure uniqueness is to put the | |
- domain name or a domain literal IP address of the host on which | |
- the identifier was created on the right-hand side of an "@", and | |
- on the left-hand side, put a combination of the current calendar | |
- date and time of day (i.e., formatted in as a DATE-TIME value) | |
- along with some other currently unique (perhaps sequential) | |
- identifier available on the system (for example, a process id | |
- number). Using a DATE-TIME value on the left-hand side and a | |
- domain name or domain literal on the right-hand side makes it | |
- possible to guarantee uniqueness since no two hosts should be | |
- using the same domain name or IP address at the same time. Though | |
- other algorithms will work, it is RECOMMENDED that the right-hand | |
- side contain some domain identifier (either of the host itself or | |
- otherwise) such that the generator of the message identifier can | |
- guarantee the uniqueness of the left-hand side within the scope of | |
- that domain. | |
- | |
- This is the method for correlating scheduling messages with the | |
- referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 117] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The full range of calendar components specified by a recurrence | |
- set is referenced by referring to just the "UID" property value | |
- corresponding to the calendar component. The "RECURRENCE-ID" | |
- property allows the reference to an individual instance within the | |
- recurrence set. | |
- | |
- This property is an important method for group-scheduling | |
- applications to match requests with later replies, modifications, | |
- or deletion requests. Calendaring and scheduling applications | |
- MUST generate this property in "VEVENT", "VTODO", and "VJOURNAL" | |
- calendar components to assure interoperability with other group- | |
- scheduling applications. This identifier is created by the | |
- calendar system that generates an iCalendar object. | |
- | |
- Implementations MUST be able to receive and persist values of at | |
- least 255 octets for this property, but they MUST NOT truncate | |
- values in the middle of a UTF-8 multi-octet sequence. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- uid = "UID" uidparam ":" text CRLF | |
- | |
- uidparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property: | |
- | |
- UID:[email protected] | |
- | |
-3.8.5. Recurrence Component Properties | |
- | |
- The following properties specify recurrence information in calendar | |
- components. | |
- | |
-3.8.5.1. Exception Date-Times | |
- | |
- Property Name: EXDATE | |
- | |
- Purpose: This property defines the list of DATE-TIME exceptions for | |
- recurring events, to-dos, journal entries, or time zone | |
- definitions. | |
- | |
- Value Type: The default value type for this property is DATE-TIME. | |
- The value type can be set to DATE. | |
- | |
- Property Parameters: IANA, non-standard, value data type, and time | |
- zone identifier property parameters can be specified on this | |
- property. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 118] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Conformance: This property can be specified in recurring "VEVENT", | |
- "VTODO", and "VJOURNAL" calendar components as well as in the | |
- "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE" | |
- calendar component. | |
- | |
- Description: The exception dates, if specified, are used in | |
- computing the recurrence set. The recurrence set is the complete | |
- set of recurrence instances for a calendar component. The | |
- recurrence set is generated by considering the initial "DTSTART" | |
- property along with the "RRULE", "RDATE", and "EXDATE" properties | |
- contained within the recurring component. The "DTSTART" property | |
- defines the first instance in the recurrence set. The "DTSTART" | |
- property value SHOULD match the pattern of the recurrence rule, if | |
- specified. The recurrence set generated with a "DTSTART" property | |
- value that doesn't match the pattern of the rule is undefined. | |
- The final recurrence set is generated by gathering all of the | |
- start DATE-TIME values generated by any of the specified "RRULE" | |
- and "RDATE" properties, and then excluding any start DATE-TIME | |
- values specified by "EXDATE" properties. This implies that start | |
- DATE-TIME values specified by "EXDATE" properties take precedence | |
- over those specified by inclusion properties (i.e., "RDATE" and | |
- "RRULE"). When duplicate instances are generated by the "RRULE" | |
- and "RDATE" properties, only one recurrence is considered. | |
- Duplicate instances are ignored. | |
- | |
- The "EXDATE" property can be used to exclude the value specified | |
- in "DTSTART". However, in such cases, the original "DTSTART" date | |
- MUST still be maintained by the calendaring and scheduling system | |
- because the original "DTSTART" value has inherent usage | |
- dependencies by other properties such as the "RECURRENCE-ID". | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 119] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF | |
- | |
- exdtparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / | |
- ; | |
- (";" tzidparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- exdtval = date-time / date | |
- ;Value MUST match value type | |
- | |
- Example: The following is an example of this property: | |
- | |
- EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z | |
- | |
-3.8.5.2. Recurrence Date-Times | |
- | |
- Property Name: RDATE | |
- | |
- Purpose: This property defines the list of DATE-TIME values for | |
- recurring events, to-dos, journal entries, or time zone | |
- definitions. | |
- | |
- Value Type: The default value type for this property is DATE-TIME. | |
- The value type can be set to DATE or PERIOD. | |
- | |
- Property Parameters: IANA, non-standard, value data type, and time | |
- zone identifier property parameters can be specified on this | |
- property. | |
- | |
- Conformance: This property can be specified in recurring "VEVENT", | |
- "VTODO", and "VJOURNAL" calendar components as well as in the | |
- "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE" | |
- calendar component. | |
- | |
- Description: This property can appear along with the "RRULE" | |
- property to define an aggregate set of repeating occurrences. | |
- When they both appear in a recurring component, the recurrence | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 120] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- instances are defined by the union of occurrences defined by both | |
- the "RDATE" and "RRULE". | |
- | |
- The recurrence dates, if specified, are used in computing the | |
- recurrence set. The recurrence set is the complete set of | |
- recurrence instances for a calendar component. The recurrence set | |
- is generated by considering the initial "DTSTART" property along | |
- with the "RRULE", "RDATE", and "EXDATE" properties contained | |
- within the recurring component. The "DTSTART" property defines | |
- the first instance in the recurrence set. The "DTSTART" property | |
- value SHOULD match the pattern of the recurrence rule, if | |
- specified. The recurrence set generated with a "DTSTART" property | |
- value that doesn't match the pattern of the rule is undefined. | |
- The final recurrence set is generated by gathering all of the | |
- start DATE-TIME values generated by any of the specified "RRULE" | |
- and "RDATE" properties, and then excluding any start DATE-TIME | |
- values specified by "EXDATE" properties. This implies that start | |
- DATE-TIME values specified by "EXDATE" properties take precedence | |
- over those specified by inclusion properties (i.e., "RDATE" and | |
- "RRULE"). Where duplicate instances are generated by the "RRULE" | |
- and "RDATE" properties, only one recurrence is considered. | |
- Duplicate instances are ignored. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF | |
- | |
- rdtparam = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) / | |
- (";" tzidparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- rdtval = date-time / date / period | |
- ;Value MUST match value type | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 121] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: The following are examples of this property: | |
- | |
- RDATE:19970714T123000Z | |
- RDATE;TZID=America/New_York:19970714T083000 | |
- | |
- RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z, | |
- 19960404T010000Z/PT3H | |
- | |
- RDATE;VALUE=DATE:19970101,19970120,19970217,19970421 | |
- 19970526,19970704,19970901,19971014,19971128,19971129,19971225 | |
- | |
-3.8.5.3. Recurrence Rule | |
- | |
- Property Name: RRULE | |
- | |
- Purpose: This property defines a rule or repeating pattern for | |
- recurring events, to-dos, journal entries, or time zone | |
- definitions. | |
- | |
- Value Type: RECUR | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in recurring "VEVENT", | |
- "VTODO", and "VJOURNAL" calendar components as well as in the | |
- "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE" | |
- calendar component, but it SHOULD NOT be specified more than once. | |
- The recurrence set generated with multiple "RRULE" properties is | |
- undefined. | |
- | |
- Description: The recurrence rule, if specified, is used in computing | |
- the recurrence set. The recurrence set is the complete set of | |
- recurrence instances for a calendar component. The recurrence set | |
- is generated by considering the initial "DTSTART" property along | |
- with the "RRULE", "RDATE", and "EXDATE" properties contained | |
- within the recurring component. The "DTSTART" property defines | |
- the first instance in the recurrence set. The "DTSTART" property | |
- value SHOULD be synchronized with the recurrence rule, if | |
- specified. The recurrence set generated with a "DTSTART" property | |
- value not synchronized with the recurrence rule is undefined. The | |
- final recurrence set is generated by gathering all of the start | |
- DATE-TIME values generated by any of the specified "RRULE" and | |
- "RDATE" properties, and then excluding any start DATE-TIME values | |
- specified by "EXDATE" properties. This implies that start DATE- | |
- TIME values specified by "EXDATE" properties take precedence over | |
- those specified by inclusion properties (i.e., "RDATE" and | |
- "RRULE"). Where duplicate instances are generated by the "RRULE" | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 122] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- and "RDATE" properties, only one recurrence is considered. | |
- Duplicate instances are ignored. | |
- | |
- The "DTSTART" property specified within the iCalendar object | |
- defines the first instance of the recurrence. In most cases, a | |
- "DTSTART" property of DATE-TIME value type used with a recurrence | |
- rule, should be specified as a date with local time and time zone | |
- reference to make sure all the recurrence instances start at the | |
- same local time regardless of time zone changes. | |
- | |
- If the duration of the recurring component is specified with the | |
- "DTEND" or "DUE" property, then the same exact duration will apply | |
- to all the members of the generated recurrence set. Else, if the | |
- duration of the recurring component is specified with the | |
- "DURATION" property, then the same nominal duration will apply to | |
- all the members of the generated recurrence set and the exact | |
- duration of each recurrence instance will depend on its specific | |
- start time. For example, recurrence instances of a nominal | |
- duration of one day will have an exact duration of more or less | |
- than 24 hours on a day where a time zone shift occurs. The | |
- duration of a specific recurrence may be modified in an exception | |
- component or simply by using an "RDATE" property of PERIOD value | |
- type. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- rrule = "RRULE" rrulparam ":" recur CRLF | |
- | |
- rrulparam = *(";" other-param) | |
- | |
- Example: All examples assume the Eastern United States time zone. | |
- | |
- Daily for 10 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=DAILY;COUNT=10 | |
- | |
- ==> (1997 9:00 AM EDT) September 2-11 | |
- | |
- Daily until December 24, 1997: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=DAILY;UNTIL=19971224T000000Z | |
- | |
- ==> (1997 9:00 AM EDT) September 2-30;October 1-25 | |
- (1997 9:00 AM EST) October 26-31;November 1-30;December 1-23 | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 123] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Every other day - forever: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=DAILY;INTERVAL=2 | |
- | |
- ==> (1997 9:00 AM EDT) September 2,4,6,8...24,26,28,30; | |
- October 2,4,6...20,22,24 | |
- (1997 9:00 AM EST) October 26,28,30; | |
- November 1,3,5,7...25,27,29; | |
- December 1,3,... | |
- | |
- Every 10 days, 5 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 | |
- | |
- ==> (1997 9:00 AM EDT) September 2,12,22; | |
- October 2,12 | |
- | |
- Every day in January, for 3 years: | |
- | |
- DTSTART;TZID=America/New_York:19980101T090000 | |
- | |
- RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z; | |
- BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA | |
- or | |
- RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1 | |
- | |
- ==> (1998 9:00 AM EST)January 1-31 | |
- (1999 9:00 AM EST)January 1-31 | |
- (2000 9:00 AM EST)January 1-31 | |
- | |
- Weekly for 10 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=WEEKLY;COUNT=10 | |
- | |
- ==> (1997 9:00 AM EDT) September 2,9,16,23,30;October 7,14,21 | |
- (1997 9:00 AM EST) October 28;November 4 | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 124] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Weekly until December 24, 1997: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z | |
- | |
- ==> (1997 9:00 AM EDT) September 2,9,16,23,30; | |
- October 7,14,21 | |
- (1997 9:00 AM EST) October 28; | |
- November 4,11,18,25; | |
- December 2,9,16,23 | |
- | |
- Every other week - forever: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU | |
- | |
- ==> (1997 9:00 AM EDT) September 2,16,30; | |
- October 14 | |
- (1997 9:00 AM EST) October 28; | |
- November 11,25; | |
- December 9,23 | |
- (1998 9:00 AM EST) January 6,20; | |
- February 3, 17 | |
- ... | |
- | |
- Weekly on Tuesday and Thursday for five weeks: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH | |
- | |
- or | |
- | |
- RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH | |
- | |
- ==> (1997 9:00 AM EDT) September 2,4,9,11,16,18,23,25,30; | |
- October 2 | |
- | |
- Every other week on Monday, Wednesday, and Friday until December | |
- 24, 1997, starting on Monday, September 1, 1997: | |
- | |
- DTSTART;TZID=America/New_York:19970901T090000 | |
- RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU; | |
- BYDAY=MO,WE,FR | |
- | |
- ==> (1997 9:00 AM EDT) September 1,3,5,15,17,19,29; | |
- October 1,3,13,15,17 | |
- (1997 9:00 AM EST) October 27,29,31; | |
- November 10,12,14,24,26,28; | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 125] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- December 8,10,12,22 | |
- | |
- Every other week on Tuesday and Thursday, for 8 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH | |
- | |
- ==> (1997 9:00 AM EDT) September 2,4,16,18,30; | |
- October 2,14,16 | |
- | |
- Monthly on the first Friday for 10 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970905T090000 | |
- RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR | |
- | |
- ==> (1997 9:00 AM EDT) September 5;October 3 | |
- (1997 9:00 AM EST) November 7;December 5 | |
- (1998 9:00 AM EST) January 2;February 6;March 6;April 3 | |
- (1998 9:00 AM EDT) May 1;June 5 | |
- | |
- Monthly on the first Friday until December 24, 1997: | |
- | |
- DTSTART;TZID=America/New_York:19970905T090000 | |
- RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR | |
- | |
- ==> (1997 9:00 AM EDT) September 5; October 3 | |
- (1997 9:00 AM EST) November 7; December 5 | |
- | |
- Every other month on the first and last Sunday of the month for 10 | |
- occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970907T090000 | |
- RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU | |
- | |
- ==> (1997 9:00 AM EDT) September 7,28 | |
- (1997 9:00 AM EST) November 2,30 | |
- (1998 9:00 AM EST) January 4,25;March 1,29 | |
- (1998 9:00 AM EDT) May 3,31 | |
- | |
- Monthly on the second-to-last Monday of the month for 6 months: | |
- | |
- DTSTART;TZID=America/New_York:19970922T090000 | |
- RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO | |
- | |
- ==> (1997 9:00 AM EDT) September 22;October 20 | |
- (1997 9:00 AM EST) November 17;December 22 | |
- (1998 9:00 AM EST) January 19;February 16 | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 126] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Monthly on the third-to-the-last day of the month, forever: | |
- | |
- DTSTART;TZID=America/New_York:19970928T090000 | |
- RRULE:FREQ=MONTHLY;BYMONTHDAY=-3 | |
- | |
- ==> (1997 9:00 AM EDT) September 28 | |
- (1997 9:00 AM EST) October 29;November 28;December 29 | |
- (1998 9:00 AM EST) January 29;February 26 | |
- ... | |
- | |
- Monthly on the 2nd and 15th of the month for 10 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 | |
- | |
- ==> (1997 9:00 AM EDT) September 2,15;October 2,15 | |
- (1997 9:00 AM EST) November 2,15;December 2,15 | |
- (1998 9:00 AM EST) January 2,15 | |
- | |
- Monthly on the first and last day of the month for 10 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970930T090000 | |
- RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 | |
- | |
- ==> (1997 9:00 AM EDT) September 30;October 1 | |
- (1997 9:00 AM EST) October 31;November 1,30;December 1,31 | |
- (1998 9:00 AM EST) January 1,31;February 1 | |
- | |
- Every 18 months on the 10th thru 15th of the month for 10 | |
- occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970910T090000 | |
- RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12, | |
- 13,14,15 | |
- | |
- ==> (1997 9:00 AM EDT) September 10,11,12,13,14,15 | |
- (1999 9:00 AM EST) March 10,11,12,13 | |
- | |
- Every Tuesday, every other month: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU | |
- | |
- ==> (1997 9:00 AM EDT) September 2,9,16,23,30 | |
- (1997 9:00 AM EST) November 4,11,18,25 | |
- (1998 9:00 AM EST) January 6,13,20,27;March 3,10,17,24,31 | |
- ... | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 127] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Yearly in June and July for 10 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970610T090000 | |
- RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 | |
- | |
- ==> (1997 9:00 AM EDT) June 10;July 10 | |
- (1998 9:00 AM EDT) June 10;July 10 | |
- (1999 9:00 AM EDT) June 10;July 10 | |
- (2000 9:00 AM EDT) June 10;July 10 | |
- (2001 9:00 AM EDT) June 10;July 10 | |
- | |
- Note: Since none of the BYDAY, BYMONTHDAY, or BYYEARDAY | |
- components are specified, the day is gotten from "DTSTART". | |
- | |
- Every other year on January, February, and March for 10 | |
- occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970310T090000 | |
- RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3 | |
- | |
- ==> (1997 9:00 AM EST) March 10 | |
- (1999 9:00 AM EST) January 10;February 10;March 10 | |
- (2001 9:00 AM EST) January 10;February 10;March 10 | |
- (2003 9:00 AM EST) January 10;February 10;March 10 | |
- | |
- Every third year on the 1st, 100th, and 200th day for 10 | |
- occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970101T090000 | |
- RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200 | |
- | |
- ==> (1997 9:00 AM EST) January 1 | |
- (1997 9:00 AM EDT) April 10;July 19 | |
- (2000 9:00 AM EST) January 1 | |
- (2000 9:00 AM EDT) April 9;July 18 | |
- (2003 9:00 AM EST) January 1 | |
- (2003 9:00 AM EDT) April 10;July 19 | |
- (2006 9:00 AM EST) January 1 | |
- | |
- Every 20th Monday of the year, forever: | |
- | |
- DTSTART;TZID=America/New_York:19970519T090000 | |
- RRULE:FREQ=YEARLY;BYDAY=20MO | |
- | |
- ==> (1997 9:00 AM EDT) May 19 | |
- (1998 9:00 AM EDT) May 18 | |
- (1999 9:00 AM EDT) May 17 | |
- ... | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 128] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Monday of week number 20 (where the default start of the week is | |
- Monday), forever: | |
- | |
- DTSTART;TZID=America/New_York:19970512T090000 | |
- RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO | |
- | |
- ==> (1997 9:00 AM EDT) May 12 | |
- (1998 9:00 AM EDT) May 11 | |
- (1999 9:00 AM EDT) May 17 | |
- ... | |
- | |
- Every Thursday in March, forever: | |
- | |
- DTSTART;TZID=America/New_York:19970313T090000 | |
- RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH | |
- | |
- ==> (1997 9:00 AM EST) March 13,20,27 | |
- (1998 9:00 AM EST) March 5,12,19,26 | |
- (1999 9:00 AM EST) March 4,11,18,25 | |
- ... | |
- | |
- Every Thursday, but only during June, July, and August, forever: | |
- | |
- DTSTART;TZID=America/New_York:19970605T090000 | |
- RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8 | |
- | |
- ==> (1997 9:00 AM EDT) June 5,12,19,26;July 3,10,17,24,31; | |
- August 7,14,21,28 | |
- (1998 9:00 AM EDT) June 4,11,18,25;July 2,9,16,23,30; | |
- August 6,13,20,27 | |
- (1999 9:00 AM EDT) June 3,10,17,24;July 1,8,15,22,29; | |
- August 5,12,19,26 | |
- ... | |
- | |
- Every Friday the 13th, forever: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- EXDATE;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13 | |
- | |
- ==> (1998 9:00 AM EST) February 13;March 13;November 13 | |
- (1999 9:00 AM EDT) August 13 | |
- (2000 9:00 AM EDT) October 13 | |
- ... | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 129] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The first Saturday that follows the first Sunday of the month, | |
- forever: | |
- | |
- DTSTART;TZID=America/New_York:19970913T090000 | |
- RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13 | |
- | |
- ==> (1997 9:00 AM EDT) September 13;October 11 | |
- (1997 9:00 AM EST) November 8;December 13 | |
- (1998 9:00 AM EST) January 10;February 7;March 7 | |
- (1998 9:00 AM EDT) April 11;May 9;June 13... | |
- ... | |
- | |
- Every 4 years, the first Tuesday after a Monday in November, | |
- forever (U.S. Presidential Election day): | |
- | |
- DTSTART;TZID=America/New_York:19961105T090000 | |
- RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU; | |
- BYMONTHDAY=2,3,4,5,6,7,8 | |
- | |
- ==> (1996 9:00 AM EST) November 5 | |
- (2000 9:00 AM EST) November 7 | |
- (2004 9:00 AM EST) November 2 | |
- ... | |
- | |
- The third instance into the month of one of Tuesday, Wednesday, or | |
- Thursday, for the next 3 months: | |
- | |
- DTSTART;TZID=America/New_York:19970904T090000 | |
- RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3 | |
- | |
- ==> (1997 9:00 AM EDT) September 4;October 7 | |
- (1997 9:00 AM EST) November 6 | |
- | |
- The second-to-last weekday of the month: | |
- | |
- DTSTART;TZID=America/New_York:19970929T090000 | |
- RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2 | |
- | |
- ==> (1997 9:00 AM EDT) September 29 | |
- (1997 9:00 AM EST) October 30;November 27;December 30 | |
- (1998 9:00 AM EST) January 29;February 26;March 30 | |
- ... | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 130] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Every 3 hours from 9:00 AM to 5:00 PM on a specific day: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z | |
- | |
- ==> (September 2, 1997 EDT) 09:00,12:00,15:00 | |
- | |
- Every 15 minutes for 6 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6 | |
- | |
- ==> (September 2, 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15 | |
- | |
- Every hour and a half for 4 occurrences: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4 | |
- | |
- ==> (September 2, 1997 EDT) 09:00,10:30;12:00;13:30 | |
- | |
- Every 20 minutes from 9:00 AM to 4:40 PM every day: | |
- | |
- DTSTART;TZID=America/New_York:19970902T090000 | |
- RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40 | |
- or | |
- RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16 | |
- | |
- ==> (September 2, 1997 EDT) 9:00,9:20,9:40,10:00,10:20, | |
- ... 16:00,16:20,16:40 | |
- (September 3, 1997 EDT) 9:00,9:20,9:40,10:00,10:20, | |
- ...16:00,16:20,16:40 | |
- ... | |
- | |
- An example where the days generated makes a difference because of | |
- WKST: | |
- | |
- DTSTART;TZID=America/New_York:19970805T090000 | |
- RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO | |
- | |
- ==> (1997 EDT) August 5,10,19,24 | |
- | |
- changing only WKST from MO to SU, yields different results... | |
- | |
- DTSTART;TZID=America/New_York:19970805T090000 | |
- RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU | |
- | |
- ==> (1997 EDT) August 5,17,19,31 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 131] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- An example where an invalid date (i.e., February 30) is ignored. | |
- | |
- DTSTART;TZID=America/New_York:20070115T090000 | |
- RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5 | |
- | |
- ==> (2007 EST) January 15,30 | |
- (2007 EST) February 15 | |
- (2007 EDT) March 15,30 | |
- | |
-3.8.6. Alarm Component Properties | |
- | |
- The following properties specify alarm information in calendar | |
- components. | |
- | |
-3.8.6.1. Action | |
- | |
- Property Name: ACTION | |
- | |
- Purpose: This property defines the action to be invoked when an | |
- alarm is triggered. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property MUST be specified once in a "VALARM" | |
- calendar component. | |
- | |
- Description: Each "VALARM" calendar component has a particular type | |
- of action with which it is associated. This property specifies | |
- the type of action. Applications MUST ignore alarms with x-name | |
- and iana-token values they don't recognize. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- action = "ACTION" actionparam ":" actionvalue CRLF | |
- | |
- actionparam = *(";" other-param) | |
- | |
- | |
- actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" | |
- / iana-token / x-name | |
- | |
- Example: The following are examples of this property in a "VALARM" | |
- calendar component: | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 132] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ACTION:AUDIO | |
- | |
- ACTION:DISPLAY | |
- | |
-3.8.6.2. Repeat Count | |
- | |
- Property Name: REPEAT | |
- | |
- Purpose: This property defines the number of times the alarm should | |
- be repeated, after the initial trigger. | |
- | |
- Value Type: INTEGER | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in a "VALARM" calendar | |
- component. | |
- | |
- Description: This property defines the number of times an alarm | |
- should be repeated after its initial trigger. If the alarm | |
- triggers more than once, then this property MUST be specified | |
- along with the "DURATION" property. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- repeat = "REPEAT" repparam ":" integer CRLF | |
- ;Default is "0", zero. | |
- | |
- repparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property for an alarm | |
- that repeats 4 additional times with a 5-minute delay after the | |
- initial triggering of the alarm: | |
- | |
- REPEAT:4 | |
- DURATION:PT5M | |
- | |
-3.8.6.3. Trigger | |
- | |
- Property Name: TRIGGER | |
- | |
- Purpose: This property specifies when an alarm will trigger. | |
- | |
- Value Type: The default value type is DURATION. The value type can | |
- be set to a DATE-TIME value type, in which case the value MUST | |
- specify a UTC-formatted DATE-TIME value. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 133] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Property Parameters: IANA, non-standard, value data type, time zone | |
- identifier, or trigger relationship property parameters can be | |
- specified on this property. The trigger relationship property | |
- parameter MUST only be specified when the value type is | |
- "DURATION". | |
- | |
- Conformance: This property MUST be specified in the "VALARM" | |
- calendar component. | |
- | |
- Description: This property defines when an alarm will trigger. The | |
- default value type is DURATION, specifying a relative time for the | |
- trigger of the alarm. The default duration is relative to the | |
- start of an event or to-do with which the alarm is associated. | |
- The duration can be explicitly set to trigger from either the end | |
- or the start of the associated event or to-do with the "RELATED" | |
- parameter. A value of START will set the alarm to trigger off the | |
- start of the associated event or to-do. A value of END will set | |
- the alarm to trigger off the end of the associated event or to-do. | |
- | |
- Either a positive or negative duration may be specified for the | |
- "TRIGGER" property. An alarm with a positive duration is | |
- triggered after the associated start or end of the event or to-do. | |
- An alarm with a negative duration is triggered before the | |
- associated start or end of the event or to-do. | |
- | |
- The "RELATED" property parameter is not valid if the value type of | |
- the property is set to DATE-TIME (i.e., for an absolute date and | |
- time alarm trigger). If a value type of DATE-TIME is specified, | |
- then the property value MUST be specified in the UTC time format. | |
- If an absolute trigger is specified on an alarm for a recurring | |
- event or to-do, then the alarm will only trigger for the specified | |
- absolute DATE-TIME, along with any specified repeating instances. | |
- | |
- If the trigger is set relative to START, then the "DTSTART" | |
- property MUST be present in the associated "VEVENT" or "VTODO" | |
- calendar component. If an alarm is specified for an event with | |
- the trigger set relative to the END, then the "DTEND" property or | |
- the "DTSTART" and "DURATION " properties MUST be present in the | |
- associated "VEVENT" calendar component. If the alarm is specified | |
- for a to-do with a trigger set relative to the END, then either | |
- the "DUE" property or the "DTSTART" and "DURATION " properties | |
- MUST be present in the associated "VTODO" calendar component. | |
- | |
- Alarms specified in an event or to-do that is defined in terms of | |
- a DATE value type will be triggered relative to 00:00:00 of the | |
- user's configured time zone on the specified date, or relative to | |
- 00:00:00 UTC on the specified date if no configured time zone can | |
- be found for the user. For example, if "DTSTART" is a DATE value | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 134] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- set to 19980205 then the duration trigger will be relative to | |
- 19980205T000000 America/New_York for a user configured with the | |
- America/New_York time zone. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- trigger = "TRIGGER" (trigrel / trigabs) CRLF | |
- | |
- trigrel = *( | |
- ; | |
- ; The following are OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" "DURATION") / | |
- (";" trigrelparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) ":" dur-value | |
- | |
- trigabs = *( | |
- ; | |
- ; The following is REQUIRED, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" "VALUE" "=" "DATE-TIME") / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) ":" date-time | |
- | |
- Example: A trigger set 15 minutes prior to the start of the event or | |
- to-do. | |
- | |
- TRIGGER:-PT15M | |
- | |
- A trigger set five minutes after the end of an event or the due | |
- date of a to-do. | |
- | |
- TRIGGER;RELATED=END:PT5M | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 135] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- A trigger set to an absolute DATE-TIME. | |
- | |
- TRIGGER;VALUE=DATE-TIME:19980101T050000Z | |
- | |
-3.8.7. Change Management Component Properties | |
- | |
- The following properties specify change management information in | |
- calendar components. | |
- | |
-3.8.7.1. Date-Time Created | |
- | |
- Property Name: CREATED | |
- | |
- Purpose: This property specifies the date and time that the calendar | |
- information was created by the calendar user agent in the calendar | |
- store. | |
- | |
- Note: This is analogous to the creation date and time for a | |
- file in the file system. | |
- | |
- Value Type: DATE-TIME | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: The property can be specified once in "VEVENT", | |
- "VTODO", or "VJOURNAL" calendar components. The value MUST be | |
- specified as a date with UTC time. | |
- | |
- Description: This property specifies the date and time that the | |
- calendar information was created by the calendar user agent in the | |
- calendar store. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- created = "CREATED" creaparam ":" date-time CRLF | |
- | |
- creaparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property: | |
- | |
- CREATED:19960329T133000Z | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 136] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.7.2. Date-Time Stamp | |
- | |
- Property Name: DTSTAMP | |
- | |
- Purpose: In the case of an iCalendar object that specifies a | |
- "METHOD" property, this property specifies the date and time that | |
- the instance of the iCalendar object was created. In the case of | |
- an iCalendar object that doesn't specify a "METHOD" property, this | |
- property specifies the date and time that the information | |
- associated with the calendar component was last revised in the | |
- calendar store. | |
- | |
- Value Type: DATE-TIME | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property MUST be included in the "VEVENT", | |
- "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components. | |
- | |
- Description: The value MUST be specified in the UTC time format. | |
- | |
- This property is also useful to protocols such as [2447bis] that | |
- have inherent latency issues with the delivery of content. This | |
- property will assist in the proper sequencing of messages | |
- containing iCalendar objects. | |
- | |
- In the case of an iCalendar object that specifies a "METHOD" | |
- property, this property differs from the "CREATED" and "LAST- | |
- MODIFIED" properties. These two properties are used to specify | |
- when the particular calendar data in the calendar store was | |
- created and last modified. This is different than when the | |
- iCalendar object representation of the calendar service | |
- information was created or last modified. | |
- | |
- In the case of an iCalendar object that doesn't specify a "METHOD" | |
- property, this property is equivalent to the "LAST-MODIFIED" | |
- property. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- dtstamp = "DTSTAMP" stmparam ":" date-time CRLF | |
- | |
- stmparam = *(";" other-param) | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 137] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example: | |
- | |
- DTSTAMP:19971210T080000Z | |
- | |
-3.8.7.3. Last Modified | |
- | |
- Property Name: LAST-MODIFIED | |
- | |
- Purpose: This property specifies the date and time that the | |
- information associated with the calendar component was last | |
- revised in the calendar store. | |
- | |
- Note: This is analogous to the modification date and time for a | |
- file in the file system. | |
- | |
- Value Type: DATE-TIME | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- Conformance: This property can be specified in the "VEVENT", | |
- "VTODO", "VJOURNAL", or "VTIMEZONE" calendar components. | |
- | |
- Description: The property value MUST be specified in the UTC time | |
- format. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF | |
- | |
- lstparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property: | |
- | |
- LAST-MODIFIED:19960817T133000Z | |
- | |
-3.8.7.4. Sequence Number | |
- | |
- Property Name: SEQUENCE | |
- | |
- Purpose: This property defines the revision sequence number of the | |
- calendar component within a sequence of revisions. | |
- | |
- Value Type: INTEGER | |
- | |
- Property Parameters: IANA and non-standard property parameters can | |
- be specified on this property. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 138] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Conformance: The property can be specified in "VEVENT", "VTODO", or | |
- "VJOURNAL" calendar component. | |
- | |
- Description: When a calendar component is created, its sequence | |
- number is 0. It is monotonically incremented by the "Organizer's" | |
- CUA each time the "Organizer" makes a significant revision to the | |
- calendar component. | |
- | |
- The "Organizer" includes this property in an iCalendar object that | |
- it sends to an "Attendee" to specify the current version of the | |
- calendar component. | |
- | |
- The "Attendee" includes this property in an iCalendar object that | |
- it sends to the "Organizer" to specify the version of the calendar | |
- component to which the "Attendee" is referring. | |
- | |
- A change to the sequence number is not the mechanism that an | |
- "Organizer" uses to request a response from the "Attendees". The | |
- "RSVP" parameter on the "ATTENDEE" property is used by the | |
- "Organizer" to indicate that a response from the "Attendees" is | |
- requested. | |
- | |
- Recurrence instances of a recurring component MAY have different | |
- sequence numbers. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- seq = "SEQUENCE" seqparam ":" integer CRLF | |
- ; Default is "0" | |
- | |
- seqparam = *(";" other-param) | |
- | |
- Example: The following is an example of this property for a calendar | |
- component that was just created by the "Organizer": | |
- | |
- SEQUENCE:0 | |
- | |
- The following is an example of this property for a calendar | |
- component that has been revised two different times by the | |
- "Organizer": | |
- | |
- SEQUENCE:2 | |
- | |
-3.8.8. Miscellaneous Component Properties | |
- | |
- The following properties specify information about a number of | |
- miscellaneous features of calendar components. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 139] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-3.8.8.1. IANA Properties | |
- | |
- Property Name: An IANA-registered property name | |
- | |
- Value Type: The default value type is TEXT. The value type can be | |
- set to any value type. | |
- | |
- Property Parameters: Any parameter can be specified on this | |
- property. | |
- | |
- Description: This specification allows other properties registered | |
- with IANA to be specified in any calendar components. Compliant | |
- applications are expected to be able to parse these other IANA- | |
- registered properties but can ignore them. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- iana-prop = iana-token *(";" icalparameter) ":" value CRLF | |
- | |
- Example: The following are examples of properties that might be | |
- registered to IANA: | |
- | |
- DRESSCODE:CASUAL | |
- | |
- NON-SMOKING;VALUE=BOOLEAN:TRUE | |
- | |
-3.8.8.2. Non-Standard Properties | |
- | |
- Property Name: Any property name with a "X-" prefix | |
- | |
- Purpose: This class of property provides a framework for defining | |
- non-standard properties. | |
- | |
- Value Type: The default value type is TEXT. The value type can be | |
- set to any value type. | |
- | |
- Property Parameters: IANA, non-standard, and language property | |
- parameters can be specified on this property. | |
- | |
- Conformance: This property can be specified in any calendar | |
- component. | |
- | |
- Description: The MIME Calendaring and Scheduling Content Type | |
- provides a "standard mechanism for doing non-standard things". | |
- This extension support is provided for implementers to "push the | |
- envelope" on the existing version of the memo. Extension | |
- properties are specified by property and/or property parameter | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 140] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- names that have the prefix text of "X-" (the two-character | |
- sequence: LATIN CAPITAL LETTER X character followed by the HYPHEN- | |
- MINUS character). It is recommended that vendors concatenate onto | |
- this sentinel another short prefix text to identify the vendor. | |
- This will facilitate readability of the extensions and minimize | |
- possible collision of names between different vendors. User | |
- agents that support this content type are expected to be able to | |
- parse the extension properties and property parameters but can | |
- ignore them. | |
- | |
- At present, there is no registration authority for names of | |
- extension properties and property parameters. The value type for | |
- this property is TEXT. Optionally, the value type can be any of | |
- the other valid value types. | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- x-prop = x-name *(";" icalparameter) ":" value CRLF | |
- | |
- Example: The following might be the ABC vendor's extension for an | |
- audio-clip form of subject property: | |
- | |
- X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example. | |
- org/mysubj.au | |
- | |
-3.8.8.3. Request Status | |
- | |
- Property Name: REQUEST-STATUS | |
- | |
- Purpose: This property defines the status code returned for a | |
- scheduling request. | |
- | |
- Value Type: TEXT | |
- | |
- Property Parameters: IANA, non-standard, and language property | |
- parameters can be specified on this property. | |
- | |
- Conformance: The property can be specified in the "VEVENT", "VTODO", | |
- "VJOURNAL", or "VFREEBUSY" calendar component. | |
- | |
- Description: This property is used to return status code information | |
- related to the processing of an associated iCalendar object. The | |
- value type for this property is TEXT. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 141] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The value consists of a short return status component, a longer | |
- return status description component, and optionally a status- | |
- specific data component. The components of the value are | |
- separated by the SEMICOLON character. | |
- | |
- The short return status is a PERIOD character separated pair or | |
- 3-tuple of integers. For example, "3.1" or "3.1.1". The | |
- successive levels of integers provide for a successive level of | |
- status code granularity. | |
- | |
- The following are initial classes for the return status code. | |
- Individual iCalendar object methods will define specific return | |
- status codes for these classes. In addition, other classes for | |
- the return status code may be defined using the registration | |
- process defined later in this memo. | |
- | |
- +--------+----------------------------------------------------------+ | |
- | Short | Longer Return Status Description | | |
- | Return | | | |
- | Status | | | |
- | Code | | | |
- +--------+----------------------------------------------------------+ | |
- | 1.xx | Preliminary success. This class of status code | | |
- | | indicates that the request has been initially processed | | |
- | | but that completion is pending. | | |
- | | | | |
- | 2.xx | Successful. This class of status code indicates that | | |
- | | the request was completed successfully. However, the | | |
- | | exact status code can indicate that a fallback has been | | |
- | | taken. | | |
- | | | | |
- | 3.xx | Client Error. This class of status code indicates that | | |
- | | the request was not successful. The error is the result | | |
- | | of either a syntax or a semantic error in the client- | | |
- | | formatted request. Request should not be retried until | | |
- | | the condition in the request is corrected. | | |
- | | | | |
- | 4.xx | Scheduling Error. This class of status code indicates | | |
- | | that the request was not successful. Some sort of error | | |
- | | occurred within the calendaring and scheduling service, | | |
- | | not directly related to the request itself. | | |
- +--------+----------------------------------------------------------+ | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 142] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Format Definition: This property is defined by the following | |
- notation: | |
- | |
- rstatus = "REQUEST-STATUS" rstatparam ":" | |
- statcode ";" statdesc [";" extdata] | |
- | |
- rstatparam = *( | |
- ; | |
- ; The following is OPTIONAL, | |
- ; but MUST NOT occur more than once. | |
- ; | |
- (";" languageparam) / | |
- ; | |
- ; The following is OPTIONAL, | |
- ; and MAY occur more than once. | |
- ; | |
- (";" other-param) | |
- ; | |
- ) | |
- | |
- statcode = 1*DIGIT 1*2("." 1*DIGIT) | |
- ;Hierarchical, numeric return status code | |
- | |
- statdesc = text | |
- ;Textual status description | |
- | |
- extdata = text | |
- ;Textual exception data. For example, the offending property | |
- ;name and value or complete property line. | |
- | |
- Example: The following are some possible examples of this property. | |
- | |
- The COMMA and SEMICOLON separator characters in the property value | |
- are BACKSLASH character escaped because they appear in a text | |
- value. | |
- | |
- REQUEST-STATUS:2.0;Success | |
- | |
- REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01 | |
- | |
- REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled | |
- as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2 | |
- | |
- REQUEST-STATUS:4.1;Event conflict. Date-time is busy. | |
- | |
- REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE: | |
- mailto:[email protected] | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 143] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-4. iCalendar Object Examples | |
- | |
- The following examples are provided as an informational source of | |
- illustrative iCalendar objects consistent with this content type. | |
- | |
- The following example specifies a three-day conference that begins at | |
- 2:30 P.M. UTC, September 18, 1996 and ends at 10:00 P.M. UTC, | |
- September 20, 1996. | |
- | |
- BEGIN:VCALENDAR | |
- PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN | |
- VERSION:2.0 | |
- BEGIN:VEVENT | |
- DTSTAMP:19960704T120000Z | |
- UID:[email protected] | |
- ORGANIZER:mailto:[email protected] | |
- DTSTART:19960918T143000Z | |
- DTEND:19960920T220000Z | |
- STATUS:CONFIRMED | |
- CATEGORIES:CONFERENCE | |
- SUMMARY:Networld+Interop Conference | |
- DESCRIPTION:Networld+Interop Conference | |
- and Exhibit\nAtlanta World Congress Center\n | |
- Atlanta\, Georgia | |
- END:VEVENT | |
- END:VCALENDAR | |
- | |
- The following example specifies a group-scheduled meeting that begins | |
- at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12, | |
- 1998. The "Organizer" has scheduled the meeting with one or more | |
- calendar users in a group. A time zone specification for Eastern | |
- United States has been specified. | |
- | |
- BEGIN:VCALENDAR | |
- PRODID:-//RDU Software//NONSGML HandCal//EN | |
- VERSION:2.0 | |
- BEGIN:VTIMEZONE | |
- TZID:America/New_York | |
- BEGIN:STANDARD | |
- DTSTART:19981025T020000 | |
- TZOFFSETFROM:-0400 | |
- TZOFFSETTO:-0500 | |
- TZNAME:EST | |
- END:STANDARD | |
- BEGIN:DAYLIGHT | |
- DTSTART:19990404T020000 | |
- TZOFFSETFROM:-0500 | |
- TZOFFSETTO:-0400 | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 144] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- TZNAME:EDT | |
- END:DAYLIGHT | |
- END:VTIMEZONE | |
- BEGIN:VEVENT | |
- DTSTAMP:19980309T231000Z | |
- UID:guid-1.example.com | |
- ORGANIZER:mailto:[email protected] | |
- ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP: | |
- mailto:[email protected] | |
- DESCRIPTION:Project XYZ Review Meeting | |
- CATEGORIES:MEETING | |
- CLASS:PUBLIC | |
- CREATED:19980309T130000Z | |
- SUMMARY:XYZ Project Review | |
- DTSTART;TZID=America/New_York:19980312T083000 | |
- DTEND;TZID=America/New_York:19980312T093000 | |
- LOCATION:1CP Conference Room 4350 | |
- END:VEVENT | |
- END:VCALENDAR | |
- | |
- The following is an example of an iCalendar object passed in a MIME | |
- message with a single body part consisting of a "text/calendar" | |
- Content Type. | |
- | |
- TO:[email protected] | |
- FROM:[email protected] | |
- MIME-VERSION:1.0 | |
- MESSAGE-ID:<[email protected]> | |
- CONTENT-TYPE:text/calendar; method="xyz"; component="VEVENT" | |
- | |
- BEGIN:VCALENDAR | |
- METHOD:xyz | |
- VERSION:2.0 | |
- PRODID:-//ABC Corporation//NONSGML My Product//EN | |
- BEGIN:VEVENT | |
- DTSTAMP:19970324T120000Z | |
- SEQUENCE:0 | |
- UID:[email protected] | |
- ORGANIZER:mailto:[email protected] | |
- ATTENDEE;RSVP=TRUE:mailto:[email protected] | |
- DTSTART:19970324T123000Z | |
- DTEND:19970324T210000Z | |
- CATEGORIES:MEETING,PROJECT | |
- CLASS:PUBLIC | |
- SUMMARY:Calendaring Interoperability Planning Meeting | |
- DESCRIPTION:Discuss how we can test c&s interoperability\n | |
- using iCalendar and other IETF standards. | |
- LOCATION:LDB Lobby | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 145] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/ | |
- conf/bkgrnd.ps | |
- END:VEVENT | |
- END:VCALENDAR | |
- | |
- The following is an example of a to-do due on April 15, 1998. An | |
- audio alarm has been specified to remind the calendar user at noon, | |
- the day before the to-do is expected to be completed and repeat | |
- hourly, four additional times. The to-do definition has been | |
- modified twice since it was initially created. | |
- | |
- BEGIN:VCALENDAR | |
- VERSION:2.0 | |
- PRODID:-//ABC Corporation//NONSGML My Product//EN | |
- BEGIN:VTODO | |
- DTSTAMP:19980130T134500Z | |
- SEQUENCE:2 | |
- UID:[email protected] | |
- ORGANIZER:mailto:[email protected] | |
- ATTENDEE;PARTSTAT=ACCEPTED:mailto:[email protected] | |
- DUE:19980415T000000 | |
- STATUS:NEEDS-ACTION | |
- SUMMARY:Submit Income Taxes | |
- BEGIN:VALARM | |
- ACTION:AUDIO | |
- TRIGGER:19980403T120000Z | |
- ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio- | |
- files/ssbanner.aud | |
- REPEAT:4 | |
- DURATION:PT1H | |
- END:VALARM | |
- END:VTODO | |
- END:VCALENDAR | |
- | |
- The following is an example of a journal entry: | |
- | |
- BEGIN:VCALENDAR | |
- VERSION:2.0 | |
- PRODID:-//ABC Corporation//NONSGML My Product//EN | |
- BEGIN:VJOURNAL | |
- DTSTAMP:19970324T120000Z | |
- UID:[email protected] | |
- ORGANIZER:mailto:[email protected] | |
- STATUS:DRAFT | |
- CLASS:PUBLIC | |
- CATEGORIES:Project Report,XYZ,Weekly Meeting | |
- DESCRIPTION:Project xyz Review Meeting Minutes\n | |
- Agenda\n1. Review of project version 1.0 requirements.\n2. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 146] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Definition | |
- of project processes.\n3. Review of project schedule.\n | |
- Participants: John Smith\, Jane Doe\, Jim Dandy\n-It was | |
- decided that the requirements need to be signed off by | |
- product marketing.\n-Project processes were accepted.\n | |
- -Project schedule needs to account for scheduled holidays | |
- and employee vacation time. Check with HR for specific | |
- dates.\n-New schedule will be distributed by Friday.\n- | |
- Next weeks meeting is cancelled. No meeting until 3/23. | |
- END:VJOURNAL | |
- END:VCALENDAR | |
- | |
- The following is an example of published busy time information. The | |
- iCalendar object might be placed in the network resource | |
- http://www.example.com/calendar/busytime/jsmith.ifb. | |
- | |
- BEGIN:VCALENDAR | |
- VERSION:2.0 | |
- PRODID:-//RDU Software//NONSGML HandCal//EN | |
- BEGIN:VFREEBUSY | |
- ORGANIZER:mailto:[email protected] | |
- DTSTART:19980313T141711Z | |
- DTEND:19980410T141711Z | |
- FREEBUSY:19980314T233000Z/19980315T003000Z | |
- FREEBUSY:19980316T153000Z/19980316T163000Z | |
- FREEBUSY:19980318T030000Z/19980318T040000Z | |
- URL:http://www.example.com/calendar/busytime/jsmith.ifb | |
- END:VFREEBUSY | |
- END:VCALENDAR | |
- | |
-5. Recommended Practices | |
- | |
- These recommended practices should be followed in order to assure | |
- consistent handling of the following cases for an iCalendar object. | |
- | |
- 1. Content lines longer than 75 octets SHOULD be folded. | |
- | |
- 2. When the combination of the "RRULE" and "RDATE" properties in a | |
- recurring component produces multiple instances having the same | |
- start DATE-TIME value, they should be collapsed to, and | |
- considered as, a single instance. If the "RDATE" property is | |
- specified as a PERIOD value the duration of the recurrence | |
- instance will be the one specified by the "RDATE" property, and | |
- not the duration of the recurrence instance defined by the | |
- "DTSTART" property. | |
- | |
- 3. When a calendar user receives multiple requests for the same | |
- calendar component (e.g., REQUEST for a "VEVENT" calendar | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 147] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- component) as a result of being on multiple mailing lists | |
- specified by "ATTENDEE" properties in the request, they SHOULD | |
- respond to only one of the requests. The calendar user SHOULD | |
- also specify (using the "MEMBER" parameter of the "ATTENDEE" | |
- property) of which mailing list they are a member. | |
- | |
- 4. An implementation can truncate a "SUMMARY" property value to 255 | |
- octets, but it MUST NOT truncate the value in the middle of a | |
- UTF-8 multi-octet sequence. | |
- | |
- 5. If seconds of the minute are not supported by an implementation, | |
- then a value of "00" SHOULD be specified for the seconds | |
- component in a time value. | |
- | |
- 6. "TZURL" values SHOULD NOT be specified as a file URI type. This | |
- URI form can be useful within an organization, but is problematic | |
- in the Internet. | |
- | |
- 7. Some possible English values for "CATEGORIES" property include: | |
- "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY", | |
- "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE", | |
- "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION", | |
- "TRAVEL", "VACATION". Categories can be specified in any | |
- registered language. | |
- | |
- 8. Some possible English values for the "RESOURCES" property | |
- include: "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", | |
- "OVERHEAD PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", | |
- "VIDEO PHONE", "VEHICLE". Resources can be specified in any | |
- registered language. | |
- | |
-6. Internationalization Considerations | |
- | |
- Applications MUST generate iCalendar streams in the UTF-8 charset and | |
- MUST accept an iCalendar stream in the UTF-8 or US-ASCII charset. | |
- | |
-7. Security Considerations | |
- | |
- Because calendaring and scheduling information is very privacy- | |
- sensitive, the protocol used for the transmission of calendaring and | |
- scheduling information should have capabilities to protect the | |
- information from possible threats, such as eavesdropping, replay, | |
- message insertion, deletion, modification, and man-in-the-middle | |
- attacks. | |
- | |
- As this document only defines the data format and media type of text/ | |
- calendar that is independent of any calendar service or protocol, it | |
- is up to the actual protocol specifications such as iTIP [2446bis], | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 148] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- iMIP [2447bis], and "Calendaring Extensions to WebDAV (CalDAV)" | |
- [RFC4791] to describe the threats that the above attacks present, as | |
- well as ways in which to mitigate them. | |
- | |
-8. IANA Considerations | |
- | |
-8.1. iCalendar Media Type Registration | |
- | |
- The Calendaring and Scheduling Core Object Specification is intended | |
- for use as a MIME content type. | |
- | |
- To: [email protected] | |
- | |
- Subject: Registration of media type text/calendar | |
- | |
- Type name: text | |
- | |
- Subtype name: calendar | |
- | |
- Required parameters: none | |
- | |
- Optional parameters: charset, method, component, and optinfo | |
- | |
- The "charset" parameter is defined in [RFC2046] for subtypes of | |
- the "text" media type. It is used to indicate the charset used in | |
- the body part. The charset supported by this revision of | |
- iCalendar is UTF-8. The use of any other charset is deprecated by | |
- this revision of iCalendar; however, note that this revision | |
- requires that compliant applications MUST accept iCalendar streams | |
- using either the UTF-8 or US-ASCII charset. | |
- | |
- The "method" parameter is used to convey the iCalendar object | |
- method or transaction semantics for the calendaring and scheduling | |
- information. It also is an identifier for the restricted set of | |
- properties and values of which the iCalendar object consists. The | |
- parameter is to be used as a guide for applications interpreting | |
- the information contained within the body part. It SHOULD NOT be | |
- used to exclude or require particular pieces of information unless | |
- the identified method definition specifically calls for this | |
- behavior. Unless specifically forbidden by a particular method | |
- definition, a text/calendar content type can contain any set of | |
- properties permitted by the Calendaring and Scheduling Core Object | |
- Specification. The "method" parameter MUST be specified and MUST | |
- be set to the same value as the "METHOD" component property of the | |
- iCalendar objects of the iCalendar stream if and only if the | |
- iCalendar objects in the iCalendar stream all have a "METHOD" | |
- component property set to the same value. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 149] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- The value for the "method" parameter is defined as follows: | |
- | |
- method = 1*(ALPHA / DIGIT / "-") | |
- ; IANA-registered iCalendar object method | |
- | |
- The "component" parameter conveys the type of iCalendar calendar | |
- component within the body part. If the iCalendar object contains | |
- more than one calendar component type, then multiple component | |
- parameters MUST be specified. | |
- | |
- The value for the "component" parameter is defined as follows: | |
- | |
- component = "VEVENT" | |
- / "VTODO" | |
- / "VJOURNAL" | |
- / "VFREEBUSY" | |
- / "VTIMEZONE" | |
- / iana-token | |
- / x-name | |
- | |
- The "optinfo" parameter conveys optional information about the | |
- iCalendar object within the body part. This parameter can only | |
- specify semantics already specified by the iCalendar object and | |
- that can be otherwise determined by parsing the body part. In | |
- addition, the optional information specified by this parameter | |
- MUST be consistent with that information specified by the | |
- iCalendar object. For example, it can be used to convey the | |
- "Attendee" response status to a meeting request. The parameter | |
- value consists of a string value. | |
- | |
- The parameter can be specified multiple times. | |
- | |
- The value for the "optinfo" parameter is defined as follows: | |
- | |
- optinfo = infovalue / qinfovalue | |
- | |
- infovalue = iana-token / x-name | |
- | |
- qinfovalue = DQUOTE (infovalue) DQUOTE | |
- | |
- Encoding considerations: This media type can contain 8bit | |
- characters, so the use of quoted-printable or base64 MIME Content- | |
- Transfer-Encodings might be necessary when iCalendar objects are | |
- transferred across protocols restricted to the 7bit repertoire. | |
- Note that a text valued property in the content entity can also | |
- have content encoding of special characters using a BACKSLASH | |
- character escapement technique. This means that content values | |
- can end up being encoded twice. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 150] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Security considerations: See Section 7. | |
- | |
- Interoperability considerations: This media type is intended to | |
- define a common format for conveying calendaring and scheduling | |
- information between different systems. It is heavily based on the | |
- earlier [VCAL] industry specification. | |
- | |
- Published specification: This specification. | |
- | |
- Applications that use this media type: This media type is designed | |
- for widespread use by Internet calendaring and scheduling | |
- applications. In addition, applications in the workflow and | |
- document management area might find this content-type applicable. | |
- The iTIP [2446bis], iMIP [2447bis], and CalDAV [RFC4791] Internet | |
- protocols directly use this media type also. | |
- | |
- Additional information: | |
- | |
- Magic number(s): None. | |
- | |
- File extension(s): The file extension of "ics" is to be used to | |
- designate a file containing (an arbitrary set of) calendaring | |
- and scheduling information consistent with this MIME content | |
- type. | |
- | |
- The file extension of "ifb" is to be used to designate a file | |
- containing free or busy time information consistent with this | |
- MIME content type. | |
- | |
- Macintosh file type code(s): The file type code of "iCal" is to | |
- be used in Apple MacIntosh operating system environments to | |
- designate a file containing calendaring and scheduling | |
- information consistent with this MIME media type. | |
- | |
- The file type code of "iFBf" is to be used in Apple MacIntosh | |
- operating system environments to designate a file containing | |
- free or busy time information consistent with this MIME media | |
- type. | |
- | |
- Person & email address to contact for further information: See the | |
- "Author's Address" section of this document. | |
- | |
- Intended usage: COMMON | |
- | |
- Restrictions on usage: There are no restrictions on where this media | |
- type can be used. | |
- | |
- Author: See the "Author's Address" section of this document. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 151] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Change controller: IETF | |
- | |
-8.2. New iCalendar Elements Registration | |
- | |
- This section defines the process to register new or modified | |
- iCalendar elements, that is, components, properties, parameters, | |
- value data types, and values, with IANA. | |
- | |
-8.2.1. iCalendar Elements Registration Procedure | |
- | |
- The IETF will create a mailing list, [email protected], which can be | |
- used for public discussion of iCalendar elements proposals prior to | |
- registration. Use of the mailing list is strongly encouraged. The | |
- IESG will appoint a designated expert who will monitor the | |
- [email protected] mailing list and review registrations. | |
- | |
- Registration of new iCalendar elements MUST be reviewed by the | |
- designated expert and published in an RFC. A Standards Track RFC is | |
- REQUIRED for the registration of new value data types that modify | |
- existing properties, as well as for the registration of participation | |
- status values to be used in "VEVENT" calendar components. A | |
- Standards Track RFC is also REQUIRED for registration of iCalendar | |
- elements that modify iCalendar elements previously documented in a | |
- Standards Track RFC. | |
- | |
- The registration procedure begins when a completed registration | |
- template, defined in the sections below, is sent to | |
- [email protected] and [email protected]. The designated expert is | |
- expected to tell IANA and the submitter of the registration within | |
- two weeks whether the registration is approved, approved with minor | |
- changes, or rejected with cause. When a registration is rejected | |
- with cause, it can be re-submitted if the concerns listed in the | |
- cause are addressed. Decisions made by the designated expert can be | |
- appealed to the IESG Applications Area Director, then to the IESG. | |
- They follow the normal appeals procedure for IESG decisions. | |
- | |
-8.2.2. Registration Template for Components | |
- | |
- A component is defined by completing the following template. | |
- | |
- Component name: The name of the component. | |
- | |
- Purpose: The purpose of the component. Give a short but clear | |
- description. | |
- | |
- Format definition: The ABNF for the component definition needs to be | |
- specified. | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 152] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Description: Any special notes about the component, how it is to be | |
- used, etc. | |
- | |
- Example(s): One or more examples of instances of the component need | |
- to be specified. | |
- | |
-8.2.3. Registration Template for Properties | |
- | |
- A property is defined by completing the following template. | |
- | |
- Property name: The name of the property. | |
- | |
- Purpose: The purpose of the property. Give a short but clear | |
- description. | |
- | |
- Value type: Any of the valid value types for the property value need | |
- to be specified. The default value type also needs to be | |
- specified. | |
- | |
- Property parameters: Any of the valid property parameters for the | |
- property MUST be specified. | |
- | |
- Conformance: The calendar components in which the property can | |
- appear MUST be specified. | |
- | |
- Description: Any special notes about the property, how it is to be | |
- used, etc. | |
- | |
- Format definition: The ABNF for the property definition needs to be | |
- specified. | |
- | |
- Example(s): One or more examples of instances of the property need | |
- to be specified. | |
- | |
-8.2.4. Registration Template for Parameters | |
- | |
- A parameter is defined by completing the following template. | |
- | |
- Parameter name: The name of the parameter. | |
- | |
- Purpose: The purpose of the parameter. Give a short but clear | |
- description. | |
- | |
- Format definition: The ABNF for the parameter definition needs to be | |
- specified. | |
- | |
- Description: Any special notes about the parameter, how it is to be | |
- used, etc. | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 153] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example(s): One or more examples of instances of the parameter need | |
- to be specified. | |
- | |
-8.2.5. Registration Template for Value Data Types | |
- | |
- A value data type is defined by completing the following template. | |
- | |
- Value name: The name of the value type. | |
- | |
- Purpose: The purpose of the value type. Give a short but clear | |
- description. | |
- | |
- Format definition: The ABNF for the value type definition needs to | |
- be specified. | |
- | |
- Description: Any special notes about the value type, how it is to be | |
- used, etc. | |
- | |
- Example(s): One or more examples of instances of the value type need | |
- to be specified. | |
- | |
-8.2.6. Registration Template for Values | |
- | |
- A value is defined by completing the following template. | |
- | |
- Value: The value literal. | |
- | |
- Purpose: The purpose of the value. Give a short but clear | |
- description. | |
- | |
- Conformance: The calendar properties and/or parameters that can take | |
- this value need to be specified. | |
- | |
- Example(s): One or more examples of instances of the value need to | |
- be specified. | |
- | |
- The following is a fictitious example of a registration of an | |
- iCalendar value: | |
- | |
- Value: TOP-SECRET | |
- | |
- Purpose: This value is used to specify the access classification of | |
- top-secret calendar components. | |
- | |
- Conformance: This value can be used with the "CLASS" property. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 154] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- Example(s): The following is an example of this value used with the | |
- "CLASS" property: | |
- | |
- CLASS:TOP-SECRET | |
- | |
-8.3. Initial iCalendar Elements Registries | |
- | |
- The IANA created and maintains the following registries for iCalendar | |
- elements with pointers to appropriate reference documents. | |
- | |
-8.3.1. Components Registry | |
- | |
- The following table has been used to initialize the components | |
- registry. | |
- | |
- +-----------+---------+-------------------------+ | |
- | Component | Status | Reference | | |
- +-----------+---------+-------------------------+ | |
- | VCALENDAR | Current | RFC 5545, Section 3.4 | | |
- | | | | | |
- | VEVENT | Current | RFC 5545, Section 3.6.1 | | |
- | | | | | |
- | VTODO | Current | RFC 5545, Section 3.6.2 | | |
- | | | | | |
- | VJOURNAL | Current | RFC 5545, Section 3.6.3 | | |
- | | | | | |
- | VFREEBUSY | Current | RFC 5545, Section 3.6.4 | | |
- | | | | | |
- | VTIMEZONE | Current | RFC 5545, Section 3.6.5 | | |
- | | | | | |
- | VALARM | Current | RFC 5545, Section 3.6.6 | | |
- | | | | | |
- | STANDARD | Current | RFC 5545, Section 3.6.5 | | |
- | | | | | |
- | DAYLIGHT | Current | RFC 5545, Section 3.6.5 | | |
- +-----------+---------+-------------------------+ | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 155] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-8.3.2. Properties Registry | |
- | |
- The following table is has been used to initialize the properties | |
- registry. | |
- | |
- +------------------+------------+----------------------------+ | |
- | Property | Status | Reference | | |
- +------------------+------------+----------------------------+ | |
- | CALSCALE | Current | RFC 5545, Section 3.7.1 | | |
- | METHOD | Current | RFC 5545, Section 3.7.2 | | |
- | | | | | |
- | PRODID | Current | RFC 5545, Section 3.7.3 | | |
- | | | | | |
- | VERSION | Current | RFC 5545, Section 3.7.4 | | |
- | | | | | |
- | ATTACH | Current | RFC 5545, Section 3.8.1.1 | | |
- | | | | | |
- | CATEGORIES | Current | RFC 5545, Section 3.8.1.2 | | |
- | | | | | |
- | CLASS | Current | RFC 5545, Section 3.8.1.3 | | |
- | | | | | |
- | COMMENT | Current | RFC 5545, Section 3.8.1.4 | | |
- | | | | | |
- | DESCRIPTION | Current | RFC 5545, Section 3.8.1.5 | | |
- | | | | | |
- | GEO | Current | RFC 5545, Section 3.8.1.6 | | |
- | | | | | |
- | LOCATION | Current | RFC 5545, Section 3.8.1.7 | | |
- | | | | | |
- | PERCENT-COMPLETE | Current | RFC 5545, Section 3.8.1.8 | | |
- | | | | | |
- | PRIORITY | Current | RFC 5545, Section 3.8.1.9 | | |
- | | | | | |
- | RESOURCES | Current | RFC 5545, Section 3.8.1.10 | | |
- | | | | | |
- | STATUS | Current | RFC 5545, Section 3.8.1.11 | | |
- | | | | | |
- | SUMMARY | Current | RFC 5545, Section 3.8.1.12 | | |
- | | | | | |
- | COMPLETED | Current | RFC 5545, Section 3.8.2.1 | | |
- | | | | | |
- | DTEND | Current | RFC 5545, Section 3.8.2.2 | | |
- | | | | | |
- | DUE | Current | RFC 5545, Section 3.8.2.3 | | |
- | | | | | |
- | DTSTART | Current | RFC 5545, Section 3.8.2.4 | | |
- | | | | | |
- | DURATION | Current | RFC 5545, Section 3.8.2.5 | | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 156] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- | | | | | |
- | FREEBUSY | Current | RFC 5545, Section 3.8.2.6 | | |
- | | | | | |
- | TRANSP | Current | RFC 5545, Section 3.8.2.7 | | |
- | | | | | |
- | TZID | Current | RFC 5545, Section 3.8.3.1 | | |
- | | | | | |
- | TZNAME | Current | RFC 5545, Section 3.8.3.2 | | |
- | | | | | |
- | TZOFFSETFROM | Current | RFC 5545, Section 3.8.3.3 | | |
- | | | | | |
- | TZOFFSETTO | Current | RFC 5545, Section 3.8.3.4 | | |
- | | | | | |
- | TZURL | Current | RFC 5545, Section 3.8.3.5 | | |
- | | | | | |
- | ATTENDEE | Current | RFC 5545, Section 3.8.4.1 | | |
- | | | | | |
- | CONTACT | Current | RFC 5545, Section 3.8.4.2 | | |
- | | | | | |
- | ORGANIZER | Current | RFC 5545, Section 3.8.4.3 | | |
- | | | | | |
- | RECURRENCE-ID | Current | RFC 5545, Section 3.8.4.4 | | |
- | | | | | |
- | RELATED-TO | Current | RFC 5545, Section 3.8.4.5 | | |
- | | | | | |
- | URL | Current | RFC 5545, Section 3.8.4.6 | | |
- | | | | | |
- | UID | Current | RFC 5545, Section 3.8.4.7 | | |
- | | | | | |
- | EXDATE | Current | RFC 5545, Section 3.8.5.1 | | |
- | | | | | |
- | EXRULE | Deprecated | [RFC2445], Section 4.8.5.2 | | |
- | | | | | |
- | RDATE | Current | RFC 5545, Section 3.8.5.2 | | |
- | | | | | |
- | RRULE | Current | RFC 5545, Section 3.8.5.3 | | |
- | | | | | |
- | ACTION | Current | RFC 5545, Section 3.8.6.1 | | |
- | | | | | |
- | REPEAT | Current | RFC 5545, Section 3.8.6.2 | | |
- | | | | | |
- | TRIGGER | Current | RFC 5545, Section 3.8.6.3 | | |
- | | | | | |
- | CREATED | Current | RFC 5545, Section 3.8.7.1 | | |
- | | | | | |
- | DTSTAMP | Current | RFC 5545, Section 3.8.7.2 | | |
- | | | | | |
- | LAST-MODIFIED | Current | RFC 5545, Section 3.8.7.3 | | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 157] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- | | | | | |
- | SEQUENCE | Current | RFC 5545, Section 3.8.7.4 | | |
- | | | | | |
- | REQUEST-STATUS | Current | RFC 5545, Section 3.8.8.3 | | |
- +------------------+------------+----------------------------+ | |
- | |
-8.3.3. Parameters Registry | |
- | |
- The following table has been used to initialize the parameters | |
- registry. | |
- | |
- +----------------+---------+--------------------------+ | |
- | Parameter | Status | Reference | | |
- +----------------+---------+--------------------------+ | |
- | ALTREP | Current | RFC 5545, Section 3.2.1 | | |
- | | | | | |
- | CN | Current | RFC 5545, Section 3.2.2 | | |
- | | | | | |
- | CUTYPE | Current | RFC 5545, Section 3.2.3 | | |
- | | | | | |
- | DELEGATED-FROM | Current | RFC 5545, Section 3.2.4 | | |
- | | | | | |
- | DELEGATED-TO | Current | RFC 5545, Section 3.2.5 | | |
- | | | | | |
- | DIR | Current | RFC 5545, Section 3.2.6 | | |
- | | | | | |
- | ENCODING | Current | RFC 5545, Section 3.2.7 | | |
- | | | | | |
- | FMTTYPE | Current | RFC 5545, Section 3.2.8 | | |
- | | | | | |
- | FBTYPE | Current | RFC 5545, Section 3.2.9 | | |
- | | | | | |
- | LANGUAGE | Current | RFC 5545, Section 3.2.10 | | |
- | | | | | |
- | MEMBER | Current | RFC 5545, Section 3.2.11 | | |
- | | | | | |
- | PARTSTAT | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | RANGE | Current | RFC 5545, Section 3.2.13 | | |
- | | | | | |
- | RELATED | Current | RFC 5545, Section 3.2.14 | | |
- | | | | | |
- | RELTYPE | Current | RFC 5545, Section 3.2.15 | | |
- | | | | | |
- | ROLE | Current | RFC 5545, Section 3.2.16 | | |
- | | | | | |
- | RSVP | Current | RFC 5545, Section 3.2.17 | | |
- | | | | | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 158] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- | SENT-BY | Current | RFC 5545, Section 3.2.18 | | |
- | | | | | |
- | TZID | Current | RFC 5545, Section 3.2.19 | | |
- | | | | | |
- | VALUE | Current | RFC 5545, Section 3.2.20 | | |
- +----------------+---------+--------------------------+ | |
- | |
-8.3.4. Value Data Types Registry | |
- | |
- The following table has been used to initialize the value data types | |
- registry. | |
- | |
- +-----------------+---------+--------------------------+ | |
- | Value Data Type | Status | Reference | | |
- +-----------------+---------+--------------------------+ | |
- | BINARY | Current | RFC 5545, Section 3.3.1 | | |
- | | | | | |
- | BOOLEAN | Current | RFC 5545, Section 3.3.2 | | |
- | | | | | |
- | CAL-ADDRESS | Current | RFC 5545, Section 3.3.3 | | |
- | | | | | |
- | DATE | Current | RFC 5545, Section 3.3.4 | | |
- | | | | | |
- | DATE-TIME | Current | RFC 5545, Section 3.3.5 | | |
- | | | | | |
- | DURATION | Current | RFC 5545, Section 3.3.6 | | |
- | | | | | |
- | FLOAT | Current | RFC 5545, Section 3.3.7 | | |
- | | | | | |
- | INTEGER | Current | RFC 5545, Section 3.3.8 | | |
- | | | | | |
- | PERIOD | Current | RFC 5545, Section 3.3.9 | | |
- | | | | | |
- | RECUR | Current | RFC 5545, Section 3.3.10 | | |
- | | | | | |
- | TEXT | Current | RFC 5545, Section 3.3.11 | | |
- | | | | | |
- | TIME | Current | RFC 5545, Section 3.3.12 | | |
- | | | | | |
- | URI | Current | RFC 5545, Section 3.3.13 | | |
- | | | | | |
- | UTC-OFFSET | Current | RFC 5545, Section 3.3.14 | | |
- +-----------------+---------+--------------------------+ | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 159] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-8.3.5. Calendar User Types Registry | |
- | |
- The following table has been used to initialize the calendar user | |
- types registry. | |
- | |
- +--------------------+---------+-------------------------+ | |
- | Calendar User Type | Status | Reference | | |
- +--------------------+---------+-------------------------+ | |
- | INDIVIDUAL | Current | RFC 5545, Section 3.2.3 | | |
- | | | | | |
- | GROUP | Current | RFC 5545, Section 3.2.3 | | |
- | | | | | |
- | RESOURCE | Current | RFC 5545, Section 3.2.3 | | |
- | | | | | |
- | ROOM | Current | RFC 5545, Section 3.2.3 | | |
- | | | | | |
- | UNKNOWN | Current | RFC 5545, Section 3.2.3 | | |
- +--------------------+---------+-------------------------+ | |
- | |
-8.3.6. Free/Busy Time Types Registry | |
- | |
- The following table has been used to initialize the free/busy time | |
- types registry. | |
- | |
- +---------------------+---------+-------------------------+ | |
- | Free/Busy Time Type | Status | Reference | | |
- +---------------------+---------+-------------------------+ | |
- | FREE | Current | RFC 5545, Section 3.2.9 | | |
- | | | | | |
- | BUSY | Current | RFC 5545, Section 3.2.9 | | |
- | | | | | |
- | BUSY-UNAVAILABLE | Current | RFC 5545, Section 3.2.9 | | |
- | | | | | |
- | BUSY-TENTATIVE | Current | RFC 5545, Section 3.2.9 | | |
- +---------------------+---------+-------------------------+ | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 160] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-8.3.7. Participation Statuses Registry | |
- | |
- The following table has been used to initialize the participation | |
- statuses registry. | |
- | |
- +--------------------+---------+--------------------------+ | |
- | Participant Status | Status | Reference | | |
- +--------------------+---------+--------------------------+ | |
- | NEEDS-ACTION | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | ACCEPTED | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | DECLINED | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | TENTATIVE | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | DELEGATED | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | COMPLETED | Current | RFC 5545, Section 3.2.12 | | |
- | | | | | |
- | IN-PROCESS | Current | RFC 5545, Section 3.2.12 | | |
- +--------------------+---------+--------------------------+ | |
- | |
-8.3.8. Relationship Types Registry | |
- | |
- The following table has been used to initialize the relationship | |
- types registry. | |
- | |
- +-------------------+---------+--------------------------+ | |
- | Relationship Type | Status | Reference | | |
- +-------------------+---------+--------------------------+ | |
- | CHILD | Current | RFC 5545, Section 3.2.15 | | |
- | | | | | |
- | PARENT | Current | RFC 5545, Section 3.2.15 | | |
- | | | | | |
- | SIBLING | Current | RFC 5545, Section 3.2.15 | | |
- +-------------------+---------+--------------------------+ | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 161] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-8.3.9. Participation Roles Registry | |
- | |
- The following table has been used to initialize the participation | |
- roles registry. | |
- | |
- +-----------------+---------+--------------------------+ | |
- | Role Type | Status | Reference | | |
- +-----------------+---------+--------------------------+ | |
- | CHAIR | Current | RFC 5545, Section 3.2.16 | | |
- | | | | | |
- | REQ-PARTICIPANT | Current | RFC 5545, Section 3.2.16 | | |
- | | | | | |
- | OPT-PARTICIPANT | Current | RFC 5545, Section 3.2.16 | | |
- | | | | | |
- | NON-PARTICIPANT | Current | RFC 5545, Section 3.2.16 | | |
- +-----------------+---------+--------------------------+ | |
- | |
-8.3.10. Actions Registry | |
- | |
- The following table has been used to initialize the actions registry. | |
- | |
- +-----------+------------+----------------------------+ | |
- | Action | Status | Reference | | |
- +-----------+------------+----------------------------+ | |
- | AUDIO | Current | RFC 5545, Section 3.8.6.1 | | |
- | | | | | |
- | DISPLAY | Current | RFC 5545, Section 3.8.6.1 | | |
- | | | | | |
- | EMAIL | Current | RFC 5545, Section 3.8.6.1 | | |
- | | | | | |
- | PROCEDURE | Deprecated | [RFC2445], Section 4.8.6.1 | | |
- +-----------+------------+----------------------------+ | |
- | |
-8.3.11. Classifications Registry | |
- | |
- The following table has been used to initialize the classifications | |
- registry. | |
- | |
- +----------------+---------+---------------------------+ | |
- | Classification | Status | Reference | | |
- +----------------+---------+---------------------------+ | |
- | PUBLIC | Current | RFC 5545, Section 3.8.1.3 | | |
- | | | | | |
- | PRIVATE | Current | RFC 5545, Section 3.8.1.3 | | |
- | | | | | |
- | CONFIDENTIAL | Current | RFC 5545, Section 3.8.1.3 | | |
- +----------------+---------+---------------------------+ | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 162] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-8.3.12. Methods Registry | |
- | |
- No values are defined in this document for the "METHOD" property. | |
- | |
-9. Acknowledgments | |
- | |
- The editor of this document wishes to thank Frank Dawson and Derik | |
- Stenerson, the original authors of RFC 2445, as well as the following | |
- individuals who have participated in the drafting, review, and | |
- discussion of this memo: | |
- | |
- Joe Abley, Hervey Allen, Steve Allen, Jay Batson, Oliver Block, | |
- Stephane Bortzmeyer, Chris Bryant, Tantek Celik, Mark Crispin, Cyrus | |
- Daboo, Mike Douglass, Andrew N. Dowden, Lisa Dusseault, Lars Eggert, | |
- Gren Eliot, Pasi Eronen, Ben Fortuna, Ned Freed, Neal Gafter, Ted | |
- Hardie, Tim Hare, Jeffrey Harris, Helge Hess, Paul B. Hill, Thomas | |
- Hnetila, Russ Housley, Leif Johansson, Ciny Joy, Bruce Kahn, Reinhold | |
- Kainhofer, Martin Kiff, Patrice Lapierre, Michiel van Leeuwen, | |
- Jonathan Lennox, Jeff McCullough, Bill McQuillan, Alexey Melnikov, | |
- John W. Noerenberg II, Chuck Norris, Mark Paterson, Simon Pilette, | |
- Arnaud Quillaud, Robert Ransdell, Julian F. Reschke, Caleb | |
- Richardson, Sam Roberts, Dan Romascanu, Mike Samuel, George Sexton, | |
- Nigel Swinson, Clint Talbert, Simon Vaillancourt, Magnus Westerlund, | |
- and Sandy Wills. | |
- | |
- A special thanks to the working group chairs Aki Niemi and Eliot Lear | |
- for their support and guidance. | |
- | |
- The editor would also like to thank the Calendaring and Scheduling | |
- Consortium for advice with this specification, and for organizing | |
- interoperability testing events to help refine it. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 163] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-10. References | |
- | |
-10.1. Normative References | |
- | |
- [ISO.8601.2004] International Organization for | |
- Standardization, "Data elements and | |
- interchange formats -- Information interchange | |
- -- Representation of dates and times", 2004. | |
- | |
- [ISO.9070.1991] International Organization for | |
- Standardization, "Information Technology_SGML | |
- Support Facilities -- Registration Procedures | |
- for Public Text Owner Identifiers, Second | |
- Edition", April 1991. | |
- | |
- [RFC2045] Freed, N. and N. Borenstein, "Multipurpose | |
- Internet Mail Extensions (MIME) Part One: | |
- Format of Internet Message Bodies", RFC 2045, | |
- November 1996. | |
- | |
- [RFC2046] Freed, N. and N. Borenstein, "Multipurpose | |
- Internet Mail Extensions (MIME) Part Two: | |
- Media Types", RFC 2046, November 1996. | |
- | |
- [RFC2119] Bradner, S., "Key words for use in RFCs to | |
- Indicate Requirement Levels", BCP 14, | |
- RFC 2119, March 1997. | |
- | |
- [RFC2368] Hoffman, P., Masinter, L., and J. Zawinski, | |
- "The mailto URL scheme", RFC 2368, July 1998. | |
- | |
- [RFC3629] Yergeau, F., "UTF-8, a transformation format | |
- of ISO 10646", STD 63, RFC 3629, | |
- November 2003. | |
- | |
- [RFC3986] Berners-Lee, T., Fielding, R., and L. | |
- Masinter, "Uniform Resource Identifier (URI): | |
- Generic Syntax", STD 66, RFC 3986, | |
- January 2005. | |
- | |
- [RFC4288] Freed, N. and J. Klensin, "Media Type | |
- Specifications and Registration Procedures", | |
- BCP 13, RFC 4288, December 2005. | |
- | |
- [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 | |
- Data Encodings", RFC 4648, October 2006. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 164] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for | |
- Syntax Specifications: ABNF", STD 68, | |
- RFC 5234, January 2008. | |
- | |
- [RFC5646] Phillips, A., Ed., and M. Davis, Ed., "Tags | |
- for Identifying Languages", BCP 47, RFC 5646, | |
- September 2009. | |
- | |
- [US-ASCII] American National Standards Institute, "Coded | |
- Character Set - 7-bit American Standard Code | |
- for Information Interchange", ANSI X3.4, 1986. | |
- | |
-10.2. Informative References | |
- | |
- [2446bis] Daboo, C., "iCalendar Transport-Independent | |
- Interoperability Protocol (iTIP)", Work | |
- in Progress, April 2009. | |
- | |
- [2447bis] Melnikov, A., "iCalendar Message-Based | |
- Interoperability Protocol (iMIP)", Work | |
- in Progress, June 2008. | |
- | |
- [ANSI INCITS 61-1986] International Committee for Information | |
- Technology, "Representation of Geographic | |
- Point Locations for Information Interchange | |
- (formerly ANSI X3.61-1986 (R1997))", ANSI | |
- INCITS 61-1986 (R2007), 2007. | |
- | |
- [RFC1738] Berners-Lee, T., Masinter, L., and M. | |
- McCahill, "Uniform Resource Locators (URL)", | |
- RFC 1738, December 1994. | |
- | |
- [RFC2392] Levinson, E., "Content-ID and Message-ID | |
- Uniform Resource Locators", RFC 2392, | |
- August 1998. | |
- | |
- [RFC2397] Masinter, L., "The "data" URL scheme", | |
- RFC 2397, August 1998. | |
- | |
- [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME | |
- Content-Type for Directory Information", | |
- RFC 2425, September 1998. | |
- | |
- [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory | |
- Profile", RFC 2426, September 1998. | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 165] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
- [RFC2445] Dawson, F. and Stenerson, D., "Internet | |
- Calendaring and Scheduling Core Object | |
- Specification (iCalendar)", RFC 2445, | |
- November 1998. | |
- | |
- [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, | |
- H., Masinter, L., Leach, P., and T. Berners- | |
- Lee, "Hypertext Transfer Protocol -- | |
- HTTP/1.1", RFC 2616, June 1999. | |
- | |
- [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, | |
- May 2000. | |
- | |
- [RFC4516] Smith, M. and T. Howes, "Lightweight Directory | |
- Access Protocol (LDAP): Uniform Resource | |
- Locator", RFC 4516, June 2006. | |
- | |
- [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, | |
- "Calendaring Extensions to WebDAV (CalDAV)", | |
- RFC 4791, March 2007. | |
- | |
- [TZDB] Eggert, P. and A.D. Olson, "Sources for Time | |
- Zone and Daylight Saving Time Data", | |
- July 2009, | |
- <http://www.twinsun.com/tz/tz-link.htm>. | |
- | |
- [VCAL] Internet Mail Consortium, "vCalendar: The | |
- Electronic Calendaring and Scheduling Exchange | |
- Format", September 1996, | |
- <http://www.imc.org/pdi/vcal-10.txt>. | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 166] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-Appendix A. Differences from RFC 2445 | |
- | |
- This appendix contains a list of changes that have been made in the | |
- Internet Calendaring and Scheduling Core Object Specification from | |
- RFC 2445. | |
- | |
-A.1. New Restrictions | |
- | |
- 1. The "DTSTART" property SHOULD be synchronized with the recurrence | |
- rule, if specified. | |
- | |
- 2. The "RRULE" property SHOULD NOT occur more than once in a | |
- component. | |
- | |
- 3. The BYHOUR, BYMINUTE, and BYSECOND rule parts MUST NOT be | |
- specified in the "RRULE" property when the "DTSTART" property is | |
- specified as a DATE value. | |
- | |
- 4. The value type of the "DTEND" or "DUE" properties MUST match the | |
- value type of "DTSTART" property. | |
- | |
- 5. The "DURATION" property can no longer appear in "VFREEBUSY" | |
- components. | |
- | |
-A.2. Restrictions Removed | |
- | |
- 1. The "DTSTART" and "DTEND" properties are no longer required to be | |
- specified as date with local time and time zone reference when | |
- used with a recurrence rule. | |
- | |
-A.3. Deprecated Features | |
- | |
- 1. The "EXRULE" property can no longer be specified in a component. | |
- | |
- 2. The "THISANDPRIOR" value can no longer be used with the "RANGE" | |
- parameter. | |
- | |
- 3. The "PROCEDURE" value can no longer be used with the "ACTION" | |
- property. | |
- | |
- 4. The value type RECUR no longer allows multiple values to be | |
- specified by a COMMA-separated list of values. | |
- | |
- 5. x-name rule parts can no longer be specified in properties of | |
- RECUR value type (e.g., "RRULE"). x-param can be used on RECUR | |
- value type properties instead. | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 167] | |
- | |
-RFC 5545 iCalendar September 2009 | |
- | |
- | |
-Author's Address | |
- | |
- Bernard Desruisseaux (editor) | |
- Oracle Corporation | |
- 600 blvd. de Maisonneuve West | |
- Suite 1900 | |
- Montreal, QC H3A 3J2 | |
- CANADA | |
- | |
- EMail: [email protected] | |
- URI: http://www.oracle.com/ | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
-Desruisseaux Standards Track [Page 168] | |
- | |
diff --git a/ics2txt b/ics2txt | |
@@ -1,89 +1,90 @@ | |
#!/usr/bin/awk -f | |
-# handle ical agenda and display them in plain text | |
+ | |
+# display iCal entries in plain text | |
function leap(yrs) | |
{ | |
- return (yrs % 4 == 0) && (yrs % 100 != 0) || (yrs % 400 == 0); | |
+ return (yrs % 4 == 0) && (yrs % 100 != 0) || (yrs % 400 == 0) | |
} | |
function days_per_month(mth, yrs) | |
{ | |
if (mth == 2) | |
- return 28 + leap(yrs); | |
+ return 28 + leap(yrs) | |
else | |
- return 30 + (mth - (mth > 7)) % 2; | |
+ return 30 + (mth - (mth > 7)) % 2 | |
} | |
function to_sec(yrs, mth, day, hrs, min, sec) | |
{ | |
while (--mth >= 1) | |
- day += days_per_month(mth, yrs); | |
+ day += days_per_month(mth, yrs) | |
while (--yrs >= 1970) | |
- day += 365 + leap(yrs); | |
- return (((((day - 1) * 24) + hrs) * 60) + min) * 60 + sec; | |
+ day += 365 + leap(yrs) | |
+ return (((((day - 1) * 24) + hrs) * 60) + min) * 60 + sec | |
} | |
function to_date(fmt, sec) | |
{ | |
for (yrs = 1970; sec >= (s = 3600 * 24 * (365 + leap(yrs))); yrs++) | |
- sec -= s; | |
+ sec -= s | |
for (mth = 1; sec >= (s = 3600 * 24 * days_per_month(mth, yrs)); mth++) | |
- sec -= s; | |
+ sec -= s | |
for (day = 1; sec >= (s = 3600 * 24); day++) | |
- sec -= s; | |
+ sec -= s | |
for (hrs = 0; sec >= 3600; hrs++) | |
- sec -= 3600; | |
+ sec -= 3600 | |
for (min = 0; sec >= 60; min++) | |
- sec -= 60; | |
- return sprintf(fmt, yrs, mth, day, hrs, min, sec); | |
+ sec -= 60 | |
+ return sprintf(fmt, yrs, mth, day, hrs, min, sec) | |
} | |
function date_ical(str, offset) { | |
- yrs = substr(str, 1, 4); | |
- mth = substr(str, 5, 2); | |
- day = substr(str, 7, 2); | |
- hrs = substr(str, 10, 2); | |
- min = substr(str, 12, 2); | |
+ yrs = substr(str, 1, 4) | |
+ mth = substr(str, 5, 2) | |
+ day = substr(str, 7, 2) | |
+ hrs = substr(str, 10, 2) | |
+ min = substr(str, 12, 2) | |
if (substr(str, 16, 1) == "Z") | |
- return to_sec(yrs, mth, day, hrs, min, 0); | |
+ return to_sec(yrs, mth, day, hrs, min, 0) | |
else | |
- return to_sec(yrs, mth, day, hrs, min, 0) - offset; | |
+ return to_sec(yrs, mth, day, hrs, min, 0) - offset | |
} | |
function date_iso8601(date, offset) | |
{ | |
- yrs = substr(date, 1, 4); | |
- mth = substr(date, 6, 2); | |
- day = substr(date, 9, 2); | |
- hrs = substr(date, 12, 2); | |
- min = substr(date, 15, 2); | |
- return to_sec(yrs, mth, day, hrs, min, 0) - offset; | |
+ yrs = substr(date, 1, 4) | |
+ mth = substr(date, 6, 2) | |
+ day = substr(date, 9, 2) | |
+ hrs = substr(date, 12, 2) | |
+ min = substr(date, 15, 2) | |
+ return to_sec(yrs, mth, day, hrs, min, 0) - offset | |
} | |
function swap(array, a, b) | |
{ | |
- tmp = array[a]; | |
- array[a] = array[b]; | |
- array[b] = tmp; | |
+ tmp = array[a] | |
+ array[a] = array[b] | |
+ array[b] = tmp | |
} | |
function sort(array, beg, end) | |
{ | |
if (beg >= end) # end recursion | |
- return; | |
+ return | |
a = beg + 1; # #1 is the pivot | |
- b = end; | |
+ b = end | |
while (a < b) { | |
while (a < b && array[a] <= array[beg]) # beg: skip les… | |
- a++; | |
+ a++ | |
while (a < b && array[b] > array[beg]) # end: skip grea… | |
- b--; | |
+ b-- | |
swap(array, a, b); # found 2 misplaced | |
} | |
if (array[beg] > array[a]) # put the pivot back | |
- swap(array, beg, a); | |
+ swap(array, beg, a) | |
sort(array, beg, a - 1); # sort lower half | |
sort(array, a, end); # sort higher half | |
@@ -91,99 +92,77 @@ function sort(array, beg, end) | |
function parse_ical(list, offset) | |
{ | |
- FS = "[:;]"; | |
+ FS = "[:;]" | |
while (getline) { | |
- gsub("\r", " "); gsub("\\\\[ntr]", " "); gsub("\\\\", ""); | |
- gsub("^ *", ""); gsub(" *$", ""); | |
- gsub(" *<[a-zA-Z0-9/]*>* *", ""); | |
+ gsub("\r", " "); gsub("\\\\[ntr]", " "); gsub("\\\\", "") | |
+ gsub("^ *", ""); gsub(" *$", "") | |
+ gsub(" *<[a-zA-Z0-9/]*>* *", "") | |
if (match($0, "^ ")) { | |
- event[type] = event[type] substr($0, 2, length($0) - 1… | |
+ event[type] = event[type] substr($0, 2, length($0) - 1) | |
} else { | |
- type = $1; | |
- i = index($0, ":"); | |
- event[type] = substr($0, i + 1, length($0) - i); | |
+ type = $1 | |
+ i = index($0, ":") | |
+ event[type] = substr($0, i + 1, length($0) - i) | |
} | |
if ($0 ~ /END:VEVENT/) | |
- list[++nb] = sprintf("%d\t%d\t%s\t%s\t%s\t%s", | |
+ list[++n] = sprintf("%d\t%d\t%s\t%s\t%s\t%s", | |
date_ical(event["DTSTART"], offset), | |
date_ical(event["DTEND"], offset), | |
- event["CATEGORIES"], | |
event["SUMMARY"], | |
event["LOCATION"], | |
- event["DESCRIPTION"]); | |
- } | |
- sort(list, 1, nb); | |
- return nb; | |
-} | |
- | |
-function txt_one(beg, end, cat, sum, loc, des, offset) { | |
- b = to_date("%04d/%02d/%02d %02d:%02d", beg + offset); | |
- e = to_date("%04d/%02d/%02d %02d:%02d", end + offset); | |
- b_mth = substr(b, 1, 7); | |
- b_day = substr(b, 9, 2); | |
- e_day = substr(e, 9, 2); | |
- b_hrs = substr(b, 12); | |
- e_hrs = substr(e, 12); | |
- | |
- printf("%s\n%2s %2s %s\n%2s %2s %s%s\n", | |
- (b_mth != l_mth) ? ("\n[" b_mth "]\n") : (""), | |
- (b_day != l_day) ? (b_day) : (""), b_hrs, su… | |
- (b_day != e_day) ? (e_day) : (""), e_hrs, | |
- (cat) ? ("[" cat "] ") : (""), loc); | |
- | |
- while ((line = substr(des, 1, 66)) != "") { | |
- if (length(line) == 66) | |
- sub(" +[^ ]*$", "", line); | |
- des = substr(des, length(line) + 2); | |
- sub("^ *", "", line); | |
- sub("^ *", "", des); | |
- printf(" %s\n", line); | |
+ event["DESCRIPTION"]) | |
} | |
- l_mth = b_mth; | |
- l_day = b_day; | |
+ sort(list, 1, n) | |
+ return n | |
} | |
-function txt(offset) | |
+function print_fold(prefix, s, n) | |
{ | |
- nb = parse_ical(list, offset); | |
- for (i = 1; i <= nb; i++) { | |
- split(list[i], arr, "\t"); | |
- txt_one(arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], offset… | |
+ while (s != "") { | |
+ line = substr(s, 1, n) | |
+ if (length(s) > n) sub(" +[^ \t\r\n]*$", "", line) | |
+ print prefix line | |
+ s = substr(s, length(line) + 2) | |
} | |
} | |
-function tsv(offset) | |
+function print_entry(beg, end, summary, location, description, offset) | |
{ | |
- nb = parse_ical(list, offset); | |
- for (i = 1; i <= nb; i++) | |
- print(list[i]); | |
-} | |
+ b = to_date("%04d-%02d-%02d %02d:%02d", beg + offset) | |
+ e = to_date("%04d-%02d-%02d %02d:%02d", end + offset) | |
+ date = substr(b, 1, 10) | |
+ hour_beg = substr(b, 12) | |
+ hour_end = substr(e, 12) | |
+ | |
+ if (date != last_date) print "\n" date | |
+ print "\n" hour_beg "\t" summary | |
+ done = 0 | |
+ if (category) printf("%s\t%s\n", !done++ ? hour_end : "", category) | |
+ if (location) printf("%s\t%s\n", !done++ ? hour_end : "", location) | |
+ if (description) { | |
+ printf("%s", !done++ ? hour_end : "") | |
+ print_fold("\t", description, 70) | |
+ } | |
-function usage() | |
-{ | |
- print("usage: ics2txt txt file.ics..."); | |
- print(" ics2txt tsv file.ics..."); | |
+ last_date = date | |
} | |
BEGIN { | |
- "date +%z" | getline offset_str; | |
- close("date +%z"); | |
+ "date +%z" | getline offset_str | |
+ close("date +%z") | |
- offset = substr(offset_str, 2, 2) * 3600; | |
- offset += substr(offset_str, 4, 2) * 60; | |
+ offset = substr(offset_str, 2, 2) * 3600 | |
+ offset += substr(offset_str, 4, 2) * 60 | |
if (substr(offset_str, 1, 1) == "-") | |
- offset *= -1; | |
- | |
- if (ARGV[1] == "txt") { | |
- ARGV[1] = ARGV[--ARGC]; | |
- txt(offset); | |
- } else if (ARGV[1] == "tsv") { | |
- ARGV[1] = ARGV[--ARGC]; | |
- tsv(offset); | |
- } else { | |
- usage(); | |
+ offset *= -1 | |
+ | |
+ n = parse_ical(list, offset) | |
+ for (i = 1; i <= n; i++) { | |
+ split(list[i], arr, "\t") | |
+ print_entry(arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], of… | |
} | |
+ print "" | |
} | |
diff --git a/ics2txt.1 b/ics2txt.1 | |
@@ -6,13 +6,12 @@ | |
.Sh NAME | |
. | |
.Nm ics2txt | |
-.Nd convert ics file to plain text or TSV | |
+.Nd convert ics file to a simple plain text format | |
. | |
. | |
.Sh SYNOPSIS | |
. | |
-.Nm Ic txt Oo +- Oc Ns Ar offset Op Ar ics file... | |
-.Nm Ic tsv Oo +- Oc Ns Ar offset Op Ar ics file... | |
+.Nm Ar ics-file... | |
. | |
. | |
.Sh DESCRIPTION | |
@@ -23,42 +22,6 @@ displays iCalendar | |
.Ar file | |
or stdin if not specified in the format described by the command: | |
. | |
-.Bl -tag -width indent | |
-. | |
-.It Ic txt | |
-Display the ics2txt(s) | |
-.Ar file | |
-as plain text sorted by date. | |
-. | |
-.It Ic tsv | |
-Display the ics2txt(s) | |
-.Ar file | |
-as a tab-separated values | |
-.Pq tsv | |
-one entry per line, with the following fields in order: | |
-. | |
-.Bl -tag -width xDESCRIPTIONx -compact | |
-. | |
-.It Dq Li DTSTART | |
-begin date as an UNIX timestamp | |
-. | |
-.It Dq Li DTEND | |
-end date as an UNIX timestamp | |
-. | |
-.It Dq Li CATEGORY | |
-category | |
-. | |
-.It Dq Li SUMMARY | |
-symmary | |
-. | |
-.It Dq Li LOCATION | |
-location | |
-. | |
-.It Dq Li DESCRIPTION | |
-description | |
-. | |
-.El | |
-. | |
. | |
.Sh ENVIRONMENT | |
. | |
@@ -74,8 +37,7 @@ Timezone to use for printing the dates. | |
. | |
.Xr cal 1 , | |
.Xr calendar 1 , | |
-.Xr date 1 , | |
-.Xr txt2ics 1 | |
+.Xr date 1 | |
. | |
.Sh STANDARDS | |
. | |
diff --git a/txt2ics b/txt2ics | |
@@ -1,93 +0,0 @@ | |
-#!/usr/bin/awk -f | |
- | |
-function prompt(msg) | |
-{ | |
- if (TTY) | |
- printf("%s", msg) >"/dev/stderr"; | |
- if (!getline str) | |
- exit(1); | |
- return str; | |
-} | |
- | |
-function parse_date(str, tm) | |
-{ | |
- if (length(str) == 5) { | |
- "date +%Y/%m/%d" | getline date | |
- str = date " " str ; | |
- close("date +%Y/%m/%d"); | |
- } | |
- | |
- if (length(str) != 16) { | |
- print("invalid date length") >"/dev/stderr"; | |
- return -1; | |
- } | |
- | |
- tm["yrs"] = substr(str, 1, 4); | |
- if (! match(tm["yrs"], "^[0-9]+$")) { | |
- print("invalid year: " tm["yrs"]) >"/dev/stderr"; | |
- return -1; | |
- } | |
- | |
- tm["mth"] = substr(str, 6, 2); | |
- if (! match(tm["mth"], "^[0-1][0-9]$")) { | |
- print("invalid month: " tm["mth"]) >"/dev/stderr"; | |
- return -1; | |
- } | |
- | |
- tm["day"] = substr(str, 9, 2); | |
- if (! match(tm["day"], "^[0-3][0-9]$")) { | |
- print("invalid day: " tm["day"]) >"/dev/stderr"; | |
- return -1; | |
- } | |
- | |
- tm["hrs"] = substr(str, 12, 2); | |
- if (! match(tm["hrs"], "^[0-2][0-9]$")) { | |
- print("invalid hours: " tm["hrs"]) >"/dev/stderr"; | |
- return -1; | |
- } | |
- | |
- tm["min"] = substr(str, 15, 2); | |
- if (! match(tm["min"], "^[0-6][0-9]$")) { | |
- print("invalid minutes: " tm["min"]) >"/dev/stderr"; | |
- return -1; | |
- } | |
- | |
- return 0; | |
-} | |
- | |
-BEGIN { | |
- TTY = !system("tty >/dev/null"); | |
- | |
- if (TTY) { | |
- "date +%Y" | getline yrs | |
- close("date +%Y"); | |
- system("cal " yrs ">/dev/stderr"); | |
- system("date >/dev/stderr"); | |
- system("date +'%Y/%m/%d %H:%M' >/dev/stderr"); | |
- print("") >"/dev/stderr"; | |
- } | |
- | |
- do beg = prompt("Start [YYYY/MM/DD HH:MM] or [HH:MM] for today: "); | |
- while (parse_date(beg, tm_beg) == -1); | |
- | |
- do end = prompt("End [YYYY/MM/DD HH:MM] or [HH:MM] for same day: "); | |
- while (parse_date(end, tm_end) == -1); | |
- | |
- sum = prompt("Summary: "); | |
- cat = prompt("Category: "); | |
- loc = prompt("Location: "); | |
- des = prompt("Description: "); | |
- | |
- print("BEGIN:VEVENT"); | |
- print("DTSTART:" \ | |
- tm_beg["yrs"] tm_beg["mth"] tm_beg["day"] "T" \ | |
- tm_beg["hrs"] tm_beg["min"] "00"); | |
- print("DTEND:" \ | |
- tm_end["yrs"] tm_end["mth"] tm_end["day"] "T" \ | |
- tm_end["hrs"] tm_end["min"] "00"); | |
- if (cat) print("CATEGORIES:" cat); | |
- if (sum) print("SUMMARY:" sum); | |
- if (des) print("DESCRIPTION:" des); | |
- if (loc) print("LOCATION:" loc); | |
- print("END:VEVENT"); | |
-} | |
diff --git a/txt2ics.1 b/txt2ics.1 | |
@@ -1,51 +0,0 @@ | |
-.Dd $Mdocdate: May 30 2018$ | |
-.Dt TXT2ICS 1 | |
-.Os | |
-. | |
-. | |
-.Sh NAME | |
-. | |
-.Nm txt2ics | |
-.Nd convert plain text to an ics file | |
-. | |
-. | |
-.Sh SYNOPSIS | |
-. | |
-.Nm | |
-. | |
-. | |
-.Sh DESCRIPTION | |
-. | |
-.Nm | |
-prompts the user for event information and print them in the iCalendar format. | |
-If stdin is ont a TTY, it will not print the prompt string and act as a | |
-converter tool. | |
-. | |
-.Pp | |
-It uses | |
-.Dq floating events : | |
-If it is 12:30, it will always be 12:30 of the country he resides in: if he mo… | |
-to another time zone, it will be 12:30 of this new time zone. | |
-See this as the time zone where the event happen. | |
-. | |
-. | |
-.Sh SEE ALSO | |
-. | |
-.Xr cal 1 , | |
-.Xr calendar 1 , | |
-.Xr date 1 , | |
-.Xr ics2txt 1 | |
-. | |
-.Sh STANDARDS | |
-. | |
-.Rs | |
-.%A Desruisseaux | |
-.%D September 2009 | |
-.%T Internet Calendaring and Scheduling Core Object Specification (iCalendar) | |
-.%R RFC 5545 | |
-.Re | |
-. | |
-. | |
-.Sh AUTHORS | |
-. | |
-.An Josuah Demangeon Aq Mt [email protected] |