draft-ietf-calsch-ical-00.txt   draft-ietf-calsch-ical-01.txt 
Network Working Group Frank Dawson, Lotus Network Working Group Frank Dawson, Lotus
Internet Draft Derik Stenerson, Microsoft Internet Draft Derik Stenerson, Microsoft
<draft-ietf-calsch-ical-00.txt> February 3, 1997 <ietf-calsch-ical-01.txt> March 26, 1997
Expires August 1997 Expires September 1997
Internet Calendaring and Scheduling Core Object Specification Internet Calendaring and Scheduling Core Object Specification
(iCalendar) (iCalendar)
Status of this Memo Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
skipping to change at line 42 skipping to change at line 42
There is a clear need to provide and deploy interoperable calendaring There is a clear need to provide and deploy interoperable calendaring
and scheduling services for the Internet. Current group scheduling and scheduling services for the Internet. Current group scheduling
and Personal Information Management (PIM) products are being extended and Personal Information Management (PIM) products are being extended
for use across the Internet, today, in proprietary ways. This for use across the Internet, today, in proprietary ways. This
document has been defined to provide the a definition of a common document has been defined to provide the a definition of a common
format for openly exchanging calendaring and scheduling information format for openly exchanging calendaring and scheduling information
across the Internet. across the Internet.
This memo is formatted as a registration for a MIME media type per This memo is formatted as a registration for a MIME media type per
[RFC1521]. However, the format in this memo is equally applicable for [RFC 2048]. However, the format in this memo is equally applicable
use outside of a MIME message content type. for use outside of a MIME message content type.
[Editor NOTE: This form will be changed to reflect the new MIME
memos in the next draft.]
The proposed media type value is "TEXT/CALENDAR". This string would The proposed media type value is "TEXT/CALENDAR". This string would
label a media type containing calendaring and scheduling information label a media type containing calendaring and scheduling information
encoded as text characters formatted in a manner outlined below. encoded as text characters formatted in a manner outlined below.
This MIME media type provides a standard content type for capturing This MIME media type provides a standard content type for capturing
calendar event and to-do information. It also can be used to convey calendar event and to-do information. It also can be used to convey
free/busy time information. The content type is suitable as a MIME free/busy time information. The content type is suitable as a MIME
message entity that can be transferred over MIME based email systems message entity that can be transferred over MIME based email systems
Dawson/Stenerson 1 Expires August 1997
or using HTTP. In addition, the content type is useful as an object or using HTTP. In addition, the content type is useful as an object
for interactions between desktop applications using the operating for interactions between desktop applications using the operating
system clipboard, drag/drop or file systems capabilities. system clipboard, drag/drop or file systems capabilities.
Dawson/Stenerson 1 Expires September 1997
This document is based on the earlier work of the vCalendar This document is based on the earlier work of the vCalendar
specification for the exchange of personal calendaring and scheduling specification for the exchange of personal calendaring and scheduling
information. In order to avoid confusion with this referenced work, information. In order to avoid confusion with this referenced work,
this document is to be known as the iCalendar specification. this document is to be known as the iCalendar specification.
This document also includes the format for defining content type This document also includes the format for defining content type
profiles. A content type profile is a document that defines a set of profiles. A content type profile is a document that defines a set of
usage constraints for the iCalendar Object. For example, a profile usage constraints for the iCalendar Object. For example, a profile
might be defined to specify how the iCalendar Object can be used to might be defined to specify how the iCalendar Object can be used to
provide for a set of interpersonal scheduling messages. Such a provide for a set of interpersonal scheduling messages. Such a
skipping to change at line 83 skipping to change at line 79
scheduled, reply to an event request, send a cancellation notice for scheduled, reply to an event request, send a cancellation notice for
an event, modify or replace the definition of an event, provide a an event, modify or replace the definition of an event, provide a
counter proposal for an original event request, delegate an event counter proposal for an original event request, delegate an event
request to another individual, request free or busy time, reply to a request to another individual, request free or busy time, reply to a
free or busy time request, or provide similar scheduling messages for free or busy time request, or provide similar scheduling messages for
a to-do calendar component. a to-do calendar component.
Table of Contents Table of Contents
1. Introduction........................................................4 1. Introduction........................................................4
1.1 Definitions ......................................................5 2. Basic Grammar and Conventions.......................................5
1.1.1 Calendar Scale ................................................5 3. Definitions.........................................................5
1.1.2 Coordinate Universal Time (UTC) ...............................5 3.1 Alarm ............................................................6
1.1.3 Daylight Saving Time (DST) ....................................5 3.2 Busy Time ........................................................6
1.1.4 Gregorian Calendar ............................................5 3.3 Calendar Component ...............................................6
1.1.5 Local Time ....................................................5 3.4 Calendar Date ....................................................6
1.1.6 Standard Time .................................................6 3.5 Calendar Object ..................................................6
1.1.7 Time Zone .....................................................6 3.6 Calendar Properties ..............................................6
2. TEXT/CALENDAR Registration Information..............................6 3.7 Calendar Scale ...................................................6
3. Intended Use........................................................7 3.8 Component Properties .............................................6
3.1 Published specification ..........................................8 3.9 Coordinate Universal Time (UTC) ..................................7
3.1.1 Existing Message Header Fields ................................8 3.10 Daylight Saving Time (DST) ......................................7
3.1.1.1 Content-Type Header Field .................................8 3.11 Event ...........................................................7
3.1.1.1.1 CHARSET Header Field Parameter .........................8 3.12 Free Time .......................................................7
3.1.1.2 Content-ID Header Field ...................................9 3.13 Gregorian Calendar ..............................................7
3.1.1.3 Content-Language ..........................................9 3.14 Journal .........................................................7
3.1.1.4 Message-ID Header Field ...................................9 3.15 Local Time ......................................................7
3.1.1.5 Transfer-Encoding Header Field ............................9 3.16 Period ..........................................................8
3.1.2 Additional Content Type Parameter .............................9 3.17 Recurrence Rule .................................................8
3.1.2.1 Profile ...................................................9 3.18 Reminder ........................................................8
3.1.3 Content Syntax Considerations ................................10 3.19 Repeating Event or To-do ........................................8
3.1.3.1 Property .................................................10 3.20 Standard Time ...................................................8
3.1.3.2 Delimiters ...............................................11 3.21 Time Zone .......................................................8
3.1.3.3 Property Value Transfer Encoding .........................12 3.22 To-do ...........................................................9
3.1.3.4 Property Value Character Set .............................12 4. TEXT/CALENDAR Registration Information..............................9
3.1.3.5 Property Value Language ..................................13 5. iCalendar Object Specification.....................................11
3.1.3.6 Property Value Data Type .................................13 5.1 Syntax Considerations ...........................................11
3.1.3.7 Date and Time ............................................16 5.1.1 Content Lines ................................................12
3.1.3.8 Time Duration ............................................18 5.1.2 List and Field Separators ....................................13
5.1.3 Grouping .....................................................14
5.1.4 Multiple Values ..............................................14
5.1.5 Character Set ................................................15
5.1.6 Language .....................................................15
Dawson/Stenerson 2 Expires August 1997 Dawson/Stenerson 2 Expires September 1997
3.1.3.9 Value Location ...........................................19 5.1.7 Content Encoding .............................................15
3.1.3.10 Binary Property Values ..................................19 5.1.8 Binary Content ...............................................15
3.1.3.11 Recurrence Rule Grammar .................................19 5.1.9 Recurrence Set ...............................................15
3.1.4 Body Delimiter Properties ....................................20 5.1.10 Data Types ..................................................16
3.1.4.1 Calendar Object ..........................................20 5.1.10.1 URL .....................................................16
3.1.4.2 Event Component ..........................................20 5.1.10.2 Text ....................................................16
3.1.4.3 To-do Component ..........................................21 5.1.10.3 Date ....................................................16
3.1.5 Calendar Object Properties ...................................21 5.1.10.4 Time ....................................................17
3.1.5.1 Calendar Content Profile .................................21 5.1.10.5 Date-Time ...............................................18
3.1.5.2 Calendar Scale ...........................................24 5.1.10.6 Duration ................................................18
3.1.5.3 Daylight Savings Rule ....................................24 5.1.10.7 Period of Time ..........................................19
3.1.5.4 Geographic Position ......................................25 5.1.10.8 Boolean .................................................19
3.1.5.5 Product Identifier .......................................25 5.1.10.9 Integer .................................................20
3.1.5.6 Time Zone ................................................26 5.1.10.10 Float ..................................................20
3.1.5.7 Version ..................................................26 5.1.10.11 RFC 822 Address ........................................20
3.1.6 Event and To-do Component Properties .........................26 5.1.10.12 UTC Offset .............................................21
3.1.6.1 Attachment ...............................................26 5.2 iCalendar Object ................................................21
3.1.6.2 Attendee .................................................27 5.3 Property ........................................................22
3.1.6.3 Audio Reminder ...........................................32 5.4 Calendar Components .............................................22
3.1.6.4 Categories ...............................................33 5.4.1 Event Component ..............................................22
3.1.6.5 Classification ...........................................34 5.4.2 To-do Component ..............................................23
3.1.6.6 Date/Time Created ........................................35 5.4.3 Journal Component ............................................24
3.1.6.7 Date/Time Completed ......................................35 5.4.4 Free/Busy Component ..........................................24
3.1.6.8 Description ..............................................36 5.4.5 Alarm Component ..............................................25
3.1.6.9 Display Reminder .........................................36 5.4.6 Timezone Component ...........................................26
3.1.6.10 Due Date/Time ...........................................37 5.4.7 Calendar Properties ..........................................28
3.1.6.11 Duration ................................................37 5.4.7.1 Calendar Scale ...........................................28
3.1.6.12 End Date/Time ...........................................37 5.4.7.2 Geographic Position ......................................29
3.1.6.13 Exception Date/Times ....................................38 5.4.7.3 Product Identifier .......................................29
3.1.6.14 Exception Rule ..........................................38 5.4.7.4 Profile ..................................................30
3.1.6.15 Last Modified ...........................................38 5.4.7.5 Profile Version ..........................................30
3.1.6.16 Location ................................................39 5.4.7.6 Source ...................................................31
3.1.6.17 Mail Reminder ...........................................39 5.4.7.7 Source Name ..............................................31
3.1.6.18 Number Recurrences ......................................40 5.4.7.8 Version ..................................................31
3.1.6.19 Priority ................................................40 5.5 Component Properties ............................................32
3.1.6.20 Procedure Reminder ......................................40 5.5.1.1 Attachment ...............................................32
3.1.6.21 Related To ..............................................41 5.5.1.2 Attendee .................................................32
3.1.6.22 Recurrence Date/Times ...................................41 5.5.1.3 Categories ...............................................34
3.1.6.23 Recurrence Rule .........................................42 5.5.1.4 Classification ...........................................35
3.1.6.24 Resources ...............................................42 5.5.1.5 Date/Time Created ........................................35
3.1.6.25 Response Sequence Number ................................43 5.5.1.6 Date/Time Completed ......................................36
3.1.6.26 Sequence Number .........................................44 5.5.1.7 Daylight .................................................36
3.1.6.27 Start Date/Time .........................................44 5.5.1.8 Description ..............................................36
3.1.6.28 Status ..................................................44 5.5.1.9 Due Date/Time ............................................37
3.1.6.29 Summary .................................................46 5.5.1.10 Duration ................................................37
3.1.6.30 Time Transparency .......................................46 5.5.1.11 Start Date/Time .........................................38
3.1.6.31 Uniform Resource Locator ................................46 5.5.1.12 End Date/Time ...........................................38
3.1.6.32 Unique Identifier .......................................46 5.5.1.13 Exception Date/Times ....................................39
3.1.6.33 Non-standard Properties .................................47 5.5.1.14 Exception Rule ..........................................39
3.2 Formal Definition ...............................................47 5.5.1.15 Free/Busy Time ..........................................40
3.3 Basic Recurrence Rule Grammar ...................................53 5.5.1.16 Last Modified ...........................................41
3.3.1 Daily Rule ...................................................53 5.5.1.17 Location ................................................41
3.3.2 Weekly Rule ..................................................54 5.5.1.18 Priority ................................................42
3.3.3 Monthly Rule .................................................54 5.5.1.19 Related To ..............................................42
Dawson/Stenerson 3 Expires August 1997 Dawson/Stenerson 3 Expires September 1997
3.3.4 Yearly Rule ..................................................55 5.5.1.20 Recurrence Date/Times ...................................43
3.3.5 Grammar ......................................................56 5.5.1.21 Recurrence Rule .........................................44
3.3.6 Grammar Glossary .............................................57 5.5.1.22 Resources ...............................................49
3.3.7 Policies .....................................................58 5.5.1.23 Response Sequence Number ................................50
4. Registration of Content Type Profiles..............................59 5.5.1.24 Sequence Number .........................................50
4.1 Define the profile ..............................................59 5.5.1.25 Status ..................................................51
4.2 Post the profile definition .....................................60 5.5.1.26 Summary .................................................51
4.3 Allow a comment period ..........................................60 5.5.1.27 Time Transparency .......................................52
4.4 Submit the profile for approval .................................60 5.5.1.28 Time Zone Name ..........................................52
4.5 Profile Change Control ..........................................60 5.5.1.29 Time Zone Offset ........................................53
4.6 Registration of New Content Type Properties .....................61 5.5.1.30 Time Zone Transition Time ...............................53
4.6.1 Define the property ..........................................61 5.5.1.31 Uniform Resource Locator ................................53
4.6.2 Post the Property definition .................................62 5.5.1.32 Unique Identifier .......................................54
4.6.3 Allow a comment period .......................................62 5.5.1.33 Non-standard Properties .................................54
4.6.4 Submit the property for approval .............................62 5.6 Complete Format Definition ......................................55
4.7 Content Type Property Change Control ............................62 6. Registration of Content Type Profiles..............................65
5. File extension.....................................................63 6.1 Define the profile ..............................................65
6. Macintosh File Type Code...........................................63 6.2 Post the profile definition .....................................66
7. Bibliography.......................................................63 6.3 Allow a comment period ..........................................66
8. Acknowledgments....................................................64 6.4 Submit the profile for approval .................................66
9. Author's Address...................................................64 6.5 Profile Change Control ..........................................66
10. Examples..........................................................65 6.6 Registration of New Properties ..................................67
6.6.1 Define the property ..........................................67
6.6.2 Post the Property definition .................................68
6.6.3 Allow a comment period .......................................68
6.6.4 Submit the property for approval .............................68
6.7 Property Change Control .........................................68
7. File extension.....................................................69
8. Macintosh File Type Code...........................................69
9. References.........................................................69
10. Acknowledgments...................................................70
11. Author's Address..................................................70
12. iCalendar Object Examples.........................................71
1. Introduction 1. Introduction
The use of calendaring and scheduling has grown considerably in the The use of calendaring and scheduling has grown considerably in the
last decade. Enterprise and inter-enterprise business has become last decade. Enterprise and inter-enterprise business has become
dependent on rapid scheduling of events and actions using this dependent on rapid scheduling of events and actions using this
information technology. However, the longer term growth of information technology. However, the longer term growth of
calendaring and scheduling, is currently limited by the lack of calendaring and scheduling, is currently limited by the lack of
Internet standards for the message content types that are central to Internet standards for the message content types that are central to
these groupware applications. This specification is intended to these groupware applications. This specification is intended to
progress the level of interoperability possible between dissimilar progress the level of interoperability possible between dissimilar
calendaring and scheduling applications. This specification defines a calendaring and scheduling applications. This specification defines a
MIME content type for exchanging electronic calendaring and MIME content type for exchanging electronic calendaring and
scheduling information. The Internet Calendaring and Scheduling Core scheduling information. The Internet Calendaring and Scheduling Core
Object Specification, or iCalendar Object, allows for the capture and Object Specification, or iCalendar, allows for the capture and
exchange of information normally stored within a calendaring and exchange of information normally stored within a calendaring and
scheduling application; such as a Personal Information Manager or a scheduling application; such as a Personal Information Manager or a
Group Scheduling product. Group Scheduling product.
The format is suitable as an exchange format between applications or The format is suitable as an exchange format between applications or
systems. The format is defined in terms of a MIME content type. This systems. The format is defined in terms of a MIME content type. This
Dawson/Stenerson 4 Expires September 1997
will enable the object to be exchanged using several transports, will enable the object to be exchanged using several transports,
including but not limited to SMTP, HTTP, a file system, desktop including but not limited to SMTP, HTTP, a file system, desktop
interactive protocols such as the use of a memory-based clipboard or interactive protocols such as the use of a memory-based clipboard or
drag/drop interactions, point-to-point asynchronous communication, drag/drop interactions, point-to-point asynchronous communication,
wired-network transport, or some form of unwired transport such as wired-network transport, or some form of unwired transport such as
infrared might also be used. infrared might also be used.
The specification also provides for the definition of usage profiles The specification also provides for the definition of usage profiles
that will map this content type to a set of messages for supporting that will map this content type to a set of messages for supporting
calendaring and scheduling operations such as requesting, replying calendaring and scheduling operations such as requesting, replying
to, modifying, and canceling meetings or appointments and to-dos. The to, modifying, and canceling meetings or appointments, to-dos and
journal entries. The usage profiles can be used to define other
Dawson/Stenerson 4 Expires August 1997 calendaring and scheduling operations such a requesting for and
usage profiles can be used to define other calendaring and scheduling replying with free/busy time data.
operations such a requesting for and replying with free/busy time
data.
The specification also includes a formal grammar for the content type The specification also includes a formal grammar for the content type
to aid in the implementation of parsers and to serve as the to aid in the implementation of parsers and to serve as the
definitive reference when ambiguities or questions arise in definitive reference when ambiguities or questions arise in
interpreting the descriptive prose definition of the specification. interpreting the descriptive prose definition of the specification.
1.1 Definitions 2. Basic Grammar and Conventions
Date and time terminology is used in every day conversations. This document makes use of both a descriptive prose and a more formal
However, there are precise definitions of many of these terms that notation for defining the calendaring and scheduling format.
are used by this memo.
1.1.1 Calendar Scale The notation used in this document is the augmented BNF notation of
[RFC 822]. Readers intending on implementing this format defined in
this document should be familiar with this notation in order to
properly interpret the specifications of this document.
All numeric and hexadecimal values used in this document 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 that
is not essential to the building of a conformant implementation
of the specifications of this document. The information is
provided to highlight a particular feature or characteristic of
the specifications.
The format for the iCalendar Object is based on the syntax of the
[MIME DIR] content type. While the iCalendar Object is not a profile
of the [MIME DIR] content type, it does reuse a number of the
elements from the [MIME DIR] specification.
3. Definitions
Date and time, as well as, calendaring and scheduling terminology are
used in every day conversations. However, there are precise
definitions of many of these terms that are used by this memo.
Dawson/Stenerson 5 Expires September 1997
3.1 Alarm
Also called a reminder. An activity that is an asynchronous mechanism
for providing feedback for a pending or past event or to-do.
3.2 Busy Time
A period of time of time on a calendar where there is already
scheduled one or more events or that is otherwise not available for
scheduling.
3.3 Calendar Component
One of a number of entities that may be found within a calendar
object. In particular, a calendar may be composed of calendar
properties and event, to-do, journal, free/busy, time zone or alarm
calendar components. Calendar components are identified by unique
delimiters within a calendar object. Calendar components provide an
organized collection of component properties.
3.4 Calendar Date
A particular day of a calendar year identified by its position within
the year.
3.5 Calendar Object
An entity consisting of an organized collection of calendar
properties and calendar components. The calendar object is identified
by unique delimiters.
3.6 Calendar Properties
Attributes that apply to the calendar object as a whole. For example,
the iCalendar version used to format the calendar object, an
identifier of the product that created the calendar object, the
calendar scale used to represent the calendar information and time
zone information.
3.7 Calendar Scale
The particular type of calendar in general use. For example, The particular type of calendar in general use. For example,
Gregorian, Buddhist Era, Japanese Emperor Era, Chinese Lunar, Gregorian, Buddhist Era, Japanese Emperor Era, Chinese Lunar,
Islamic, and Jewish Calendars. Islamic, and Jewish Calendars.
1.1.2 Coordinate Universal Time (UTC) 3.8 Component Properties
Attributes that can only appear within one or more calendar
components. For example, the due date can only appear within a to-do
calendar component. The start date and time applies to both the event
and the to-do component.
Dawson/Stenerson 6 Expires September 1997
3.9 Coordinate Universal Time (UTC)
The time scale maintained by the Bureau International de l'Heure The time scale maintained by the Bureau International de l'Heure
(International Time Bureau) that forms the basis of a coordinated (International Time Bureau) that forms the basis of a coordinated
dissemination of standard frequencies and time signals. UTC is often dissemination of standard frequencies and time signals. UTC is often
incorrectly referred to as GMT. incorrectly referred to as GMT.
1.1.3 Daylight Saving Time (DST) 3.10 Daylight Saving Time (DST)
An adjustment to local to accommodate annual changes in the number of An adjustment to local to accommodate annual changes in the number of
daylight hours. DST is also known as Advanced Time, Summer Time, or daylight hours. DST is also known as Advanced Time, Summer Time, or
Legal Time. Daylight saving time adjustments in the southern Legal Time. Daylight saving time adjustments in the southern
hemisphere are opposite to those in the northern hemisphere. hemisphere are opposite to those in the northern hemisphere.
1.1.4 Gregorian Calendar 3.11 Event
A calendar component that defines a scheduled activity, minimally
specified by a start and end calendar date and time of day and a
description.
3.12 Free Time
A period of time available on a calendar.
3.13 Gregorian Calendar
A calendar scale in general use beginning in 1582. It was introduced A calendar scale in general use beginning in 1582. It was introduced
to correct an error in the Julian Calendar scale. The Gregorian to correct an error in the Julian Calendar scale. The Gregorian
Calendar scale is based on a solar calendar consisting of common Calendar scale is based on a solar calendar consisting of common
years made up of 365 days and leap years made up of 366 days; both years made up of 365 days and leap years made up of 366 days; both
divided into 12 sequential months. divided into 12 sequential months.
Initially, this memo addresses specification of calendar information Note: Initially, this memo addresses specification of calendar
in terms of the Gregorian calendar scale. information in terms of the Gregorian calendar scale.
1.1.5 Local Time 3.14 Journal
A calendar component that defines a collection of information
intended for human presentation and is minimally specified by a
calendar date and one or more descriptions.
3.15 Local Time
The clock time in public use in a locale. Local time is often The clock time in public use in a locale. Local time is often
referenced by the customary name for the time zone in which it is referenced by the customary name for the time zone in which it is
located. The relationship between local time and UTC is based on the located. The relationship between local time and UTC is based on the
offset(s) that are in use for a particular time zone. In general, the offset(s) that are in use for a particular time zone. In general, the
formula is as follows: formula is as follows:
Dawson/Stenerson 5 Expires August 1997
local time = UTC + (offset) local time = UTC + (offset)
1.1.6 Standard Time Dawson/Stenerson 7 Expires September 1997
3.16 Period
A duration of time, specified as either a defined length of time or
by its beginning and end points.
3.17 Recurrence Rule
A notation used to represent repeating occurrences, or the exceptions
to such a repetition of an event or a to-do. The recurrence rule can
also be used in the specification of a time zone description. This
document defines a particular notation used in recurrence rules
within this specification.
3.18 Reminder
See Alarm.
3.19 Repeating Event or To-do
An event or to-do that repeats for one or more additional
occurrences. The recurrence may be defined with discrete dates and
times and/or with a recurrence rule.
3.20 Standard Time
Introduced by Sir Sanford Fleming and others around 1870, standard Introduced by Sir Sanford Fleming and others around 1870, standard
time is a scheme for dividing the world into zones where the same time is a scheme for dividing the world into zones where the same
time would be kept. The original proposal was to divide the world time would be kept. The original proposal was to divide the world
into 24 zones, each zone having a width of 15 degrees of longitude. into 24 zones, each zone having a width of 15 degrees of longitude.
The center zone was originally the meridian passing through The center zone was originally the meridian passing through
Greenwich, England, called Greenwich Mean Time (GMT). The time in the Greenwich, England, called Greenwich Mean Time (GMT). The time in the
zones was decremented by one hour per zone going westwards and was zones was decremented by one hour per zone going westwards and was
incremented by one hour per zone going eastwards from GMT. Changes incremented by one hour per zone going eastwards from GMT. Changes
have been made to the original proposal to accommodate political have been made to the original proposal to accommodate political
boundaries. In addition, some countries and regions specify 30 or 45 boundaries. In addition, some countries and regions specify 30 or 45
minute offsets, rather than the full 60 minute offset. Standard time minute offsets, rather than the full 60 minute offset. Standard time
is also known as Winter Time in some regions. is also known as Winter Time in some regions.
GMT and UTC are generally equivalent. However, by international GMT and UTC are generally equivalent. However, by international
agreement, the GMT term is discouraged in favor of the term UTC for agreement, the GMT term is discouraged in favor of the term UTC for
all general time keeping. all general time keeping.
1.1.7 Time Zone 3.21 Time Zone
The particular time zone that a location's time is expressed in. A The particular time zone that time in a particular location is
time zone is unambiguously defined by the set of time measurement expressed in. A time zone is unambiguously defined by the set of time
rules determined by the governing body for the given location. These measurement rules determined by the governing body for the given
rules describe at a minimum the base offset from UTC, often referred location. These rules describe at a minimum the base offset from UTC,
to as the Standard Time offset. Optionally, if Daylight time is often referred to as the Standard Time offset. Optionally, if
observed, the rules will specify the Daylight time offset and either Daylight Savings Time is observed, the rules will specify the
a set of rules describing the transition to and from Daylight time or Daylight Savings Time offset and either a set of rules describing the
absolute dates describing the movement in and out of Daylight time. transition to and from Daylight Savings Time or absolute dates
It is important to note that these rules are not static. Time zones describing the movement in and out of Daylight Savings Time. It is
may also have a local customary name. However, not all time zones important to note that these rules are not static. Time zones may
have a special name for their time. The customary names for time
zones are often abbreviated. However, not all time zone abbreviations Dawson/Stenerson 8 Expires September 1997
are unique. For example, AST may mean Atlantic Standard Time, Alaska also have a local customary name. However, not all time zones have a
Standard Time, and event Aleutian Standard Time. Each of these are special name for their time. The customary names for time zones are
often abbreviated. However, not all time zone abbreviations are
unique. For example, AST may mean Atlantic Standard Time, Alaska
Standard Time, and even Aleutian Standard Time. Each of these are
different offsets from UTC. Nevertheless, customary names for time different offsets from UTC. Nevertheless, customary names for time
zones are in use in various parts of the world. zones are in use in various parts of the world.
2. TEXT/CALENDAR Registration Information 3.22 To-do
[Editor NOTE: This form will be changed to reflect the revision A calendar component that defines an action item and is minimally
to the MIME memos when the respective RFC becomes available.] specified by an effective calendar date and time of day, a due
calendar date and time of day, a priority and a description.
4. TEXT/CALENDAR Registration Information
The Calendaring and Scheduling Core Object Specification is intended
for use as a MIME content type. However, the implementation of the
specification is in no way limited solely as a MIME content type.
The following text is intended to register this specification as the
MIME content type "text/calendar".
To: ietf-types@uninett.no To: ietf-types@uninett.no
Subject: Registration of MIME content type text/calendar. Subject: Registration of MIME content type text/calendar.
MIME media type name: text MIME media type name: text
MIME subtype name: calendar MIME subtype name: calendar
Required parameters: PROFILE Required parameters: profile
Dawson/Stenerson 6 Expires August 1997 The "profile" parameter is used to convey the scheduling usage to
Optional parameters: CHARSET which the calendaring and scheduling information pertains. It also
is an identifier for the set of properties that the iCalendar
Object will consist of. The parameter is intended to be used as a
guide to 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 profile
definition specifically calls for this behavior. Unless
specifically forbidden by a particular profile definition, a
text/calendar content type may contain any set of properties
permitted by the Calendaring and Scheduling Core Object
Specification.
Additional required content header fields: CONTENT-ID, MESSAGE-ID The value for the "profile" parameter is defined as follows:
Optional content header fields: CONTENT-LANGUAGE, TRANSFER-ENCODING profile = component "-" usage
component = "EVENT" / "event" / "TODO" / "todo"
/ "JOURNAL" / "journal" / "FREEBUSY"
/ "freebusy" / x-token / iana-comp
Dawson/Stenerson 9 Expires September 1997
usage = "REQUEST" / "request" / "REPLY" / "reply"
/ "CANCEL" / "cancel" / "x-token / iana-usage
x-token = <The two characters "X-" or "x-" followed, with
no intervening white space, by any atom, where
atom is from section 3.3 of [RFC 822]>
iana-comp = <A publicly defined extension component,
registered with IANA, as specified by this
document>
iana-usage = <A publicly defined extension usage,
registered with IANA, as specified by this
document>
Optional parameters: charset
The "charset" parameter is defined in [RFC 2046] for other body
parts. It is used to identify the default character set used within
the body part. Note that alternate character sets can be specified
on a per-value basis using the "charset" property parameter defined
in [MIME DIR].
Optional content header fields: Any header fields defined by [RFC
2045].
Encoding considerations: This MIME content type does not introduce Encoding considerations: This MIME content type does not introduce
any new encoding considerations beyond those defined in [RFC 2045]. any new encoding types beyond those defined in [RFC 2045]. Note
that each property in the content entity may also have an inline
encoding for the body part as a whole (i.e., inline encoding are
performed first, then Content-Transfer-Encoding is applied to the
entire body part). This means that content values may end up
encoded twice.
Security considerations: The calendaring and scheduling information Security considerations: The calendaring and scheduling information
based on this MIME content type may include references to Uniform based on this MIME content type may include references to Uniform
Resource Locators that may be programmed resources. In addition, Resource Locators that may be programmed resources. In addition,
this information may contain direct references to executable this information may contain direct references to executable
programs intended to be used as program-based alarms for an event programs intended to be used as procedure-based alarms for an event
or to-do. Implementers and users of this specification should be or to-do. Implementers and users of this specification should be
aware of the network security implications of accepting and parsing aware of the network security implications of accepting and parsing
such information. such information.
Interoperability considerations: This MIME content type is intended Interoperability considerations: This MIME content type is intended
to provide interoperability between calendaring and scheduling to provide interoperability between calendaring and scheduling
products. It is heavily based on the earlier [VCAL] industry products. It is heavily based on the earlier [VCAL] industry
specification. specification.
Intended Usage: COMMON Intended Usage: COMMON
Published specification: This document. Published specification: This remainder of this document.
Person & email address to contact for further information: Author/Change controllers:
Dawson/Stenerson 10 Expires September 1997
Frank Dawson Frank Dawson
6544 Battleford Drive 6544 Battleford Drive
Raleigh, NC 27613-3502 Raleigh, NC 27613-3502
919-676-9515 (Telephone) 919-676-9515 (Telephone)
919-676-9564 (Facsimile) 919-676-9564 (Facsimile)
fdawson@earthlink.net (Internet Mail) fdawson@earthlink.net (Internet Mail)
Derik Stenerson Derik Stenerson
One Microsoft Way One Microsoft Way
Redmond, WA 98052-6399 Redmond, WA 98052-6399
206-936-5522 (Telephone) 206-936-5522 (Telephone)
206-936-7329 (Facsimile) 206-936-7329 (Facsimile)
deriks@microsoft.com (Internet Mail) deriks@microsoft.com (Internet Mail)
3. Intended Use 5. iCalendar Object Specification
[Editor NOTE: The reference to [RFC 1521] and [MIME-REG] will be The following sections define the details of a Calendaring and
changed to reflect the revision to the MIME memos when the Scheduling Core Object Specification. This information is intended to
respective RFC becomes available.] be an integral part of the MIME content type registration. In
addition, this information may be used independent of such content
registration. In particular, this specification has direct
applicability for use as a calendaring and scheduling exchange format
in file-, memory- or network-based transport mechanisms.
This memo is meant to serve as the basis for registration of a MIME 5.1 Syntax Considerations
content type per [RFC1521]. It is defined using the MIME content type
registration from [MIME-REG]. The proposed content type value is
"TEXT/CALENDAR". This string would label a media type containing
Dawson/Stenerson 7 Expires August 1997 The content information associated with an iCalendar Object is
calendaring and scheduling information encoded primarily as text formatted using a syntax similar to that defined by [MIME DIR]. That
characters formatted in a manner outlined below. The media type is is, the content information consists of one or more CRLF-separated
useful for conveying inter-personal calendaring and scheduling lines in the following format:
information between systems and applications.
A subtype of the standard MIME _TEXT_ media type was chosen as the contentline = [group "."] name [";" paramlist] ":" value CRLF
form for this content type because it provides a known and reasonable ;Folding permitted on content lines.
fallback for legacy systems that are required in an enterprise that
also includes MIME based user agents that support this content type.
Legacy systems that do not understand the _TEXT/CALENDAR_ content
type will render these MIME entities as they would _TEXT/PLAIN_
content type. This will provide a minimal level of support for
calendaring and scheduling information in legacy systems (i.e., the
ability to display the text tagged calendaring and scheduling content
information). This is a vital requirement for any mail enabled,
enterprise application; as there are still over 7 million existing
legacy electronic mail user agents at this time.
The calendaring and scheduling media type is specified as an group = atom ;As defined in [RFC 822]
independent content type in order that it can be conveyed either as a
single MIME message entity or as one MIME entity in a multi-part MIME
message. Additionally, the calendaring and scheduling information may
be defined in a multi-part message containing references to other
MIME body parts holding additional data related to the event, to-do,
or free/busy time information.
3.1 Published specification name = x-name / iana-name ;An iCalendar attribute/property
The following characteristics are specific to this MIME content type. x-name = <The two characters "X-" or "x-" followed, with no
intervening white space, by any atom>
3.1.1 Existing Message Header Fields iana-name = <A publicly defined name, registered with IANA>
The MIME Calendar Content Type may utilize any of the message header paramlist = parameter / paramlist ";" parameter
fields defined by [RFC 822], [RFC 2045], and [RFC 1766]. A number of
these message header fields are especially useful to the iCalendar
Object. These include the following header fields defined in either
[RFC 822], [RFC 2045], and [RFC 1766].
3.1.1.1 Content-Type Header Field parameter = encodingparm
/ valuetypeparm ;If not present => inline value
/ charsetparm
/ languageparm
/ [parmtype "="] parmvalues
The [RFC 2045] Content-Type header field is used to identify the encodingparm = "encoding" "=" encodetype
iCalendar Object. The value of this property must be _text/calendar_
in order to correspond to the media type defined by this document.
This header field is required for MIME entities conforming to this
content type.
3.1.1.1.1 CHARSET Header Field Parameter Dawson/Stenerson 11 Expires September 1997
encodetype = "8bit" ;From [RFC 2045]
/ "7bit" ;From [RFC 2045]
/ "base64" ;From [RFC 2045]
/ "quoted-printable" ;From [RFC 2045]
The [RFC 2045] CHARSET Content-Type header field parameter is used to valuetypeparm = "value" "=" valuetype
identify an alternate character set to the default US-ASCII used by
the iCalendar Object. This header field parameter is optional for
MIME entities conforming to this content type.
Dawson/Stenerson 8 Expires August 1997 valuetype = "url"
/ "text"
/ "date"
/ "time"
/ "date-time"
/ "period"
/ "duration"
/ "boolean"
/ "integer"
/ "float"
/ "rfc822-address"
/ "utc-offset"
/ x-token
/ iana-value
3.1.1.2 Content-ID Header Field iana-value = <A publicly defined extension value type, registered
with IANA, as specified by this document>
The [RFC 2045] Content-ID header field is used by the iCalendar charsetparm = "charset" "=" charset ;As defined in [RFC 2047]
Object to provide a persistent, globally unique identifier for a MIME
Calendar Object within a MIME message entity. This header field is
required for multi-part MIME entities containing an iCalendar Object
that conforms to this content type. In the event that the iCalendar
Object is transported in a MIME message containing a single body,
then the Message-ID header field is required.
3.1.1.3 Content-Language languageparm = "language" "=" language ;As defined in [RFC 1766]
The [RFC 1766] Content-Language header field is used to provide an parmtype = x-token / iana-ptype
alternate default language for the MIME Calendar Object. The default
language is _en-US_. This header field is optional for MIME entities
conforming to this content type.
3.1.1.4 Message-ID Header Field iana-ptype = <A publicly defined extension parameter type,
registered with IANA, as specified by this document>
The [RFC 2045] Message-ID header field is used by the iCalendar parmvalues = parmvalue / parmvalues "," parmvalue
Object to provide a persistent, globally unique identifier for a MIME
message containing a single body part consisting of a iCalendar
Object. This header field is required for a single body part MIME
message conforming to this content type. In the event that the
iCalendar Object is transported as a body part within a multi-part
MIME message, the Content-ID header field must be specified. The
Message-ID header field is used to unambiguously refer to the
iCalendar Object within a MIME entity.
3.1.1.5 Transfer-Encoding Header Field parmvalue = x-name / iana-pvalue
The [RFC 2045] Transfer-Encoding header field is used to provide an iana-pvalue = <A publicly defined extension parameter value,
alternate transfer encoding for the iCalendar Object. The default registered with IANA, as specified by this document>
transfer encoding is _7BIT_. This header field is required for a MIME
entity conforming to this content type when any other encoding is
used in the iCalendar Object.
3.1.2 Additional Content Type Parameter value = url / text / date / time/ date-time / period /
/ duration / boolean / integer / float / rfc822-address
/ utc-offset / x-token / iana-value
In addition to the existing content type parameters defined by [RFC iana-value = <A publicly defined property value data type,
2045] and [RFC 1766], this document defines an additional content registered with IANA, as defined in this document>
type parameter to be used by the iCalendar Object.
3.1.2.1 Profile 5.1.1 Content Lines
The MIME Calendar Object defines the Profile content type parameter. Individual lines within the iCalendar Object are delimited by the
This parameter is used to specify a usage profile for the iCalendar [RFC 822] line break, which is a CRLF sequence (ASCII decimal 13,
Object. The value of this parameter consists of a type and a subtype followed by ASCII decimal 10). Line should not be longer than 76
value pair. The type value is used to specify either a EVENT, TODO, characters, excluding the line break.
or FREE-BUSY type of MIME Calendar Object profile. The subtype value
is used to specify the scheduling operation being conveyed by the
profile type. For example, the EVENT and TODO type values might have
a subtype value of REQUEST, to convey an event or to-do request
message, REPLY, to convey an event or to-do reply message, MODIFY, to
Dawson/Stenerson 9 Expires August 1997 Dawson/Stenerson 12 Expires September 1997
convey an event or to-do modification message, CANCEL, to convey an Long lines of text can be split into a multiple-line representation
event or to-do cancellation message, DELEGATE, to convey an event or using a line "folding" technique. That is, wherever a line split is
to-do delegation message; or the BUSYFREE type value might have a desired a CRLF immediately followed by one LWSP-char must instead be
subtype value of REQUEST, to convey a free-busy time request message inserted.
, or REPLY, to convey a free-busy time data message. The parameter
value is defined by the following BNF:
profile := ((_EVENT_ / _ _) TODO _-_ type1) / (_FREEBUSY_ _-_ type2) For example the line:
type1 := <any IANA values defined by an iCalendar Object usage DESCRIPTION:This is a long description that exists on a long line.
profile or an _X-_ type of non-standard value>
type2 := <any IANA value defined by an iCalendar Object usage Can be represented as:
profile or an _X-_ type of non-standard value>
The following is an example of this content type parameter for a DESCRIPTION:This is a long description
profile that specifies an event request message, such as in a request that exists on a long line.
for a meeting or appointment:
CONTENT-TYPE:TEXT/CALENDAR;PROFILE=EVENT-REQUEST 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 immediately followed by a LWSP-
char.
The following is an example of this content type parameter for a An intentional formatted text line break in a property value must
profile that specifies a to-do delegation message, such as delegating also be specified by a (RFC 822) line break, which is a CRLF
a task to another individual: sequence. However, since the CRLF sequence is used to delimit a line,
property values with imbedded formatted line breaks (i.e., hard line
breaks) must be encoded using an alternate encoding of either quoted-
printable or base64, as defined in [RFC 2045].
CONTENT-TYPE:TEXT/CALENDAR;PROFILE=TODO-DELEGATE The quoted-printable encoding of the multiple lines of formatted text
are separated with a quoted-printable CRLF sequence of "=0D" followed
by "=0A" followed by a Quoted-Printable soft line break sequence of
"=". Quoted-printable lines of text must also be limited to less than
76 characters. The 76 characters does not include the CRLF [RFC 822]
line break sequence. For example a multiple line DESCRIPTION value
of:
The following is an example of this content type parameter for a Project XYZ Final Review
profile that specifies a free-busy time request, such as when Conference Room - 3B
searching for a free time for a meeting: Come Prepared.
CONTENT-TYPE:TEXT/CALENDAR;PROFILE=FREEBUSY-REQUEST Would be represented in a Quoted-Printable encoding as:
This content type parameter is required for MIME entities conforming DESCRIPTION; QUOTED-PRINTABLE:Project XYZ Final Review=0D=0A=
to this content type. Other memos are expected to address specific Conference Room - 3B=0D=0A=
usage profiles and define values for this property. Come Prepared.
3.1.3 Content Syntax Considerations White space characters (i.e., HTAB and SPACE characters, ASCII
decimal 9 and 32) to the left of a "value" may freely surround any
symbol. This means that if a "value" begins with a white space
character, it must be encoded using either the base64 or quoted-
printable encoding methods.
The following general considerations are specific to the syntax used 5.1.2 List and Field Separators
to format the text of the body information for this content type.
3.1.3.1 Property Where a property parameter value consists of a list of values, each
value must be separated by a COMMA character (ASCII decimal 44). A
A property is the definition of an individual attribute describing an Dawson/Stenerson 13 Expires September 1997
event or a to-do associated with the MIME Calendar Object. A property COMMA character in a property parameter value must be escaped with a
takes the following form: BACKSLASH character (ASCII decimal 92).
property := propname *(_;_ propparm) _:_ propvalue Structured property values must have their components separated by a
SEMICOLON character (ASCII decimal 59). In addition, lists of
property parameters must be separated by a SEMICOLON character (ASCII
decimal 59). A SEMICOLON character in a property value or property
parameter value must be escaped with a BACKSLASH character (ASCII
decimal 92).
as shown in the following example: For example, in the following properties a SEMICOLON is used to
separate property parameters and property value fields. A COMMA is
used to separate values.
DTSTART:19960415T083000-05:00 ATTENDEE;RSVP=YES;ROLE=ATTENDEE:"J.Smith" <jsmith@host.com)
RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
Dawson/Stenerson 10 Expires August 1997 5.1.3 Grouping
A property takes the form of one or more lines of text. The
specification of property names and property parameters is case
insensitive. The property name can be one of a set of pre-defined or
non-standard strings. The property name must appear as the first
characters on a line. In the previous example, _DTSTART_ is the name
of the Start Date/Time property. Property values are specified as
strings. In the previous example, _19960415T083000-05:00_ is the
formatted value for the Start Date/Time property.
The property parameter expressions are specified as either a The group construct is used to group related properties together. The
name=value or a value string. The parameter value string can be group name is a syntactic convention used to indicate that all
specified alone in those cases where the value is unambiguous. For property names prefaced with the same group name should be processed
example a complete property parameter specification might be: together when displayed by an application. It has no other
significance. Implementations that do not understand or support
grouping may simply strip off any text before the PERIOD character
(ASCII decimal 46) and present the property and value as normal.
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Don't forget to order Girl= The following provides an example of property grouping. The first
Scout cookies from Stacey today! start, end and busy time are grouped together with a label "GROUPA".
The second start, end and busy time are grouped together with a label
"GROUPB".
A valid short version of the same property parameter specification GROUPA.DTSTART:19970101T000000-0500
might be: GROUPA.DTEND:19970101T235959-0500
GROUPA.BUSYTIME;VALUE=PERIOD-START:19970101T000000-0500/PT8H30M,
19970101T100000-0500/PT2H,19970101T150000-0500/PT20H59M59S
GROUPB.DTSTART:19970102T000000-0500
GROUPB.DTEND:19970102T235959-0500
GROUPB.BUSYTIME;VALUE=PERIOD-START=19970102T000000-5000/PT10H,
19970102T130000-0500/PT6H
DESCRIPTION;QUOTED-PRINTABLE:Don't forget to order Girl= 5.1.4 Multiple Values
Scout cookies from Stacey today!
3.1.3.2 Delimiters Each attribute or property defined in the iCalendar Object may have
multiple values, if allowed in the definition of the specific
property. 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 (ASCII decimal 44).
Individual lines within the iCalendar Object body are delimited by Dawson/Stenerson 14 Expires September 1997
the [RFC 822] line break, which is a CRLF sequence (ASCII decimal 13,
followed by ASCII decimal 10). Long lines of text can be split into a
multiple-line representation using the RFC 822 _folding_ technique.
That is, wherever there may be linear white space (NOT simply LWSP-
chars), a CRLF immediately followed by at least one LWSP-char may
instead be inserted. For example the line:
DESCRIPTION:This is a long description that exists on a long line. 5.1.5 Character Set
Can be represented as: The "charset" property parameter should be used to identify character
sets other than "US-ASCII". The "charset" property parameter can be
used to change the default character set on a per-value basis. The
value of the charset property parameter is any IANA registered
character set.
DESCRIPTION:This is a long description Note: For transport in a MIME entity, the "charset" Content-Type
that exists on a long line. parameter may be used to set the default character set for the
entire body part.
The process of moving from this folded multiple-line representation 5.1.6 Language
of a property definition to its single line representation is called
_unfolding_. Unfolding is accomplished by regarding CRLF immediately
followed by a LWSP-char as equivalent to the LWSP-char.
It is recommended that folding be limited to higher-level syntactic The "language" property parameter should be used to identify data in
breaks in structured components of the property definition. alternate languages. The default language is "us-EN". The value of
the language property parameter is that defined in [RFC 1766].
A formatted text line break in a property value, must also be Note: For transport in a MIME entity, the Content-Language
specified by a (RFC 822) line break, which is a CRLF sequence. header field may be used to set the default language for the
However, since the CRLF sequence is used to delimit a line, property entire body part.
values with formatted line breaks (i.e., multiple lines) must be
encoded using an alternate encoding of either Quoted-Printable or
Base64, as defined in [RFC 2045].
Dawson/Stenerson 11 Expires August 1997 5.1.7 Content Encoding
For example, in the Quoted-Printable encoding the multiple lines of
formatted text are separated with a Quoted-Printable CRLF sequence of
_=0D_ followed by _=0A_ followed by a Quoted-Printable soft line
break sequence of _=_. Quoted-Printable lines of text must also be
limited to less than 76 characters. The 76 characters does not
include the CRLF [RFC 822] line break sequence. For example a
multiple line DESCRIPTION value of:
Project XYZ Final Review The "encoding property parameter should be used to specify an
Conference Room - 3B alternate encoding for a value. If the value contains a <CR>
Come Prepared. character (ASCII decimal 10) or <LF> character (ASCII decimal 13), it
must be encoded using either base64 or quoted-printable, since
<CR><LF> is used to separate lines in the iCalendar Object itself.
Would be represented in a Quoted-Printable encoding as: 5.1.8 Binary Content
DESCRIPTION; QUOTED-PRINTABLE:Project XYZ Final Review=0D=0A= There is no support for inline encoding of binary information in an
Conference Room - 3B=0D=0A= iCalendar Object. Binary information is associated with the iCalendar
Come Prepared. Object through the use of a uniform resource locator (URL) reference
to the binary information.
Property parameter sub-strings are delimited by a field delimiter, 5.1.9 Recurrence Set
specified by the Semi-colon character (ASCII decimal 59). A Semi-
colon character in a property parameter value must be escaped with a
Backslash character (ASCII decimal 92).
Compound property values are delimited by a field delimiter, Recurring events and to-dos are supported by this specification. The
specified by the Semi-colon character (ASCII decimal 59). A Semi- recurrence within the iCalendar Object may be specified as either a
colon character in a component of a compound property value must be list of discrete date and time values or as a recurrence rule. The
escaped with a Backslash character (ASCII decimal 92). full recurrence set is generated by considering the initial DTSTART
along with the RRULE, RDATE, EXDATE and EXRULE properties contained
within the iCalendar object. Multiple instances of the RRULE and
EXRULE properties may also be specified to define more sophisticated
recurrence sets. The final recurrence set is generated by gathering
all of the start date-times generated by any of the specified RRULE
and RDATE properties, and excluding any start date and times which
fall within the union of start date and times generated by any
specified EXRULE and EXDATE properties. This implies that start date
and times within exclusion related properties (i.e., EXDATE and
EXRULE) take precedence over those specified by inclusion properties
(i.e., RDATE and RRULE).
3.1.3.3 Property Value Transfer Encoding Dawson/Stenerson 15 Expires September 1997
The recurrence rule used in the iCalendar Object is defined in the
RRULE component property.
The default transfer encoding for the iCalendar Object is _7BIT_. The 5.1.10 Data Types
default transfer encoding can be overridden for an individual
property value by using the _ENCODING_ property parameter. This
parameter value can be either _7BIT_, _BASE64_, _QUOTED-PRINTABLE_,
or _8BIT_. This parameter may be used on any property.
The MIME TRANSFER-ENCODING header field can be used to specify a The "value" property parameter is an optional property parameter. It
default transfer encoding other than 7BIT (e.g., 8BIT). is used to identify the data type and format of the property value.
The following data types are used by the iCalendar Object.
3.1.3.4 Property Value Character Set 5.1.10.1 URL
The default character set for a iCalendar Object is ASCII. The The "url" data type is used to identify values that contain a uniform
default character set can be overridden for an individual property resource locator (URL) type of reference to the property value. This
value by using the _CHARSET_ property parameter. This property data type might be used to reference binary information, for values
parameter may be used on any property. However, the use of this that are large, or otherwise undesirable to include directly in the
parameter on some properties may not make sense. iCalendar Object. The data type is defined by the following notation:
Any character set registered with the Internet Assigned Numbers url = <As defined by [RFC 1738]>
Authority (IANA) can be specified by this property parameter. For
example, ISO 8859-8 or the Latin/Hebrew character set is specified
by:
DESCRIPTION;CHARSET=ISO-8859-8:... Any IANA registered URL type may be used. These include, but are not
limited to, those for FTP and HTTP protocols, file access, content
identifier and message identifier.
Dawson/Stenerson 12 Expires August 1997 For example, the following is an URL for a local file:
The MIME CHARSET parameter on the CONTENT-TYPE header field can be
used to specify a default character set other than ASCII (e.g., UTF-
8).
3.1.3.5 Property Value Language file:///my-report.txt
The default language for a iCalendar Object is _en-US_ (US English). 5.1.10.2 Text
The default language can be overridden for an individual property
value by using the _LANGUAGE_ property parameter. The values for this
property are a string consistent with RFC 1766, Tags for the
Identification of Languages. This property parameter may be used on
any property. However, the use of this parameter on some properties,
such as PHOTO, LOGO, SOUND, TEL, may not make sense. Canadian French
would be specified by this property parameter by the following:
SUMMARY;LANGUAGE=fr-CA:... The "text" data type is used to identify values that contain human
readable text. The character set and language in which the text is
represented is controlled by the charset and language property
parameters. The data type is defined by the following notation:
The MIME LANGUAGE parameter on the CONTENT-TYPE header field can be CHAR = <Any character in the selected character set>
used to specify a default language other than US English (e.g., fr-
CA).
3.1.3.6 Property Value Data Type text = <Any CHAR, including bare CR & bare LF but not
including CRLF>
In order to more fully specify the semantics of this content type and 5.1.10.3 Date
to facilitate its automated processing, the specification of each
property defined by the iCalendar Object identifies the valid data
types and the default data type for the property value. In addition,
within an instance of this content type a property may explicitly
convey the data type information through the DATATYPE property
parameter. The STRING data type for the DESCRIPTION property would be
specified by the following:
DESCRIPTION;DATATYPE=STRING:Weekly Staff Meeting The "date" data type is used to identify values that contain a
calendar date. The format is expressed as the [ISO 8601] complete
representation, basic format for a calendar date. The text 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. The data type is defined by the following
notation:
If the DATATYPE property parameter is not specified on a property, DIGIT =<any ASCII decimal digit> ;0-9
then the default data type for that property is assumed. Usage
profiles for this content type that introduce new properties must
specify the default data type for each newly defined property. The
data types used within this content type definition include the
following:
Property Data Description date-fullyear = 4DIGIT
Type date-month = 2DIGIT ;01-12
date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
AALARM Indicates an Dawson/Stenerson 16 Expires September 1997
audio alarm ;based on month/year
value, as full-date = date-fullyear date-month date-mday
specified by
this
document.
Dawson/Stenerson 13 Expires August 1997 date = fulldate *["," fulldate]
BOOLEAN Indicates a
Boolean value
string of
either TRUE
or FALSE.
CID Indicates a For example, the following represents July 14, 1997:
string
identifier
value for the
content
identifier of
another MIME
entity within
the current
message.
DALARM Indicates a 19970714
display alarm
value, as
specified by
this
document.
DATE-TIME Indicates an 5.1.10.4 Time
ISO 8601
formatted
date/time
string value.
DST-RULE Indicates a The "time" data type is used to identify values that contain a time
daylight of day. The format is expressed as the [ISO 8601] complete
saving time representation, basic format for a time of day. The text format
rule value as consists of a two-digit 24-hour of the day, two-digit minute in the
specified in hour, and two-digit seconds in the minute. If seconds of the minute
this are not supported by an implementation, then a value of "00" should
document. be specified for the seconds component. Fractions of an hour, minute
or second are not supported by this format. This format is used to
represent local time, local time with UTC offset and UTC time. UTC
time is identified by a LATIN CAPITAL LETTER Z suffix character
(ASCII decimal 90), the UTC designator, appended to the time. The
local time with UTC offset is expressed as a local time, suffixed
with the signed offset from UTC. The UTC offset is express as the 2-
digit hours and 2-digit minutes difference from UTC. It is expressed
as positive, with an optional leading PLUS SIGN character (ASCII
decimal 43), if the local time is ahead of UTC. It is expressed as a
negative, with a leading HYPEN-MINUS character (ASCII decimal 45), if
the local time is behind UTC. Local time has neither the UTC
designator nor the UTC offset suffix text. The data type is defined
by the following notation:
D-T-LIST Indicates a DIGIT =<any ASCII decimal digit> ;0-9
list of ISO
8601
formatted
date/time
string
values.
DURATION Indicates an time-hour = 2DIGIT ;00-24
ISO 8601 time-minute = 2DIGIT ;00-60
formatted time-second = 2DIGIT ;00-59
duration or time-numzone = ("+" / "-") time-hour time-minute
period of time-zone = "Z" / time-numzone
time value. full-time = time-hour time-minute time-second [time-zone]
Dawson/Stenerson 14 Expires August 1997 time = fulltime *["," fulltime]
FLOAT Indicates a
string
representatio
n of a
floating
point value.
FLOAT-LIST Indicates a For example, the following represents 8:30 AM in New York, five hours
list of behind UTC, in local time and local time with UTC offset. In
string addition, 1:30 PM in UTC is illustrated:
representatio
ns of
floating
point values.
INTEGER Indicates a 083000
numeric 083000-0500
string 133000Z
representatio
n of an
integer
value.
INTEGER-LIST Indicates a There are cases when a floating time is intended within a property
list of value. For example, an event may be defined that indicates that an
numeric
string
representatio
ns of an
integer
value.
MALARM Indicates a Dawson/Stenerson 17 Expires September 1997
mail alarm individual will be busy from 11:00 AM to 1:00 PM every day. In these
value, as cases, a local time may be specified. The recipient of an iCalendar
specified by Object with a property value consisting of a local time, without any
this relative time zone information, should interpret the value as being
document. fixed to the recipient's locale and time zone. In most cases, a fixed
time is desired. To properly communicate a fixed time in a property
value, either UTC, local time with UTC offset, or local time with a
time zone calendar component must be specified.
MID Indicates a 5.1.10.5 Date-Time
string
identifier
value for an
external
message.
PALARM Indicates a The "date-time" data type is used to identify values that contain a
procedure precise calendar date and time of day. The format is expressed as the
alarm value, [ISO 8601] complete representation, basic format for a calendar date
as specified and time of day. The text format is a concatenation of the "date",
by this followed by the LATIN CAPITAL LETTER T character (ASCII decimal 84)
document. time designator, followed by the "time" format defined above. The
data type is defined by the following notation:
Dawson/Stenerson 15 Expires August 1997 date-time = date "T" time ;As specified above in date and time
RFC822- Indicates a
ADDRESS RFC 822
formatted
address
specification
string value.
RRULE Indicates a The following represents July 14, 1997, at 1:30 PM in UTC and the
recurrence equivalent time in New York (five hours behind UTC), expressed as a
rule grammar local time and local time with UTC offset:
string value
as specified
in this
document.
STRING Indicates a 19970714T133000Z
text string 19970714T083000
value in the 19970714T083000-0500
current
character
set.
STRING-LIST Indicates a 5.1.10.6 Duration
list of text
string values
in the
current
character
set.
TIME-OFFSET Indicates an The "duration" data type is used to identify properties that contain
ISO 8601 a duration of time. The format is expressed as the [ISO 8601] basic
formatted format for the duration of time. The format can represent durations
time offset in terms of years, months, days, hours, minutes, and seconds. The
value data type is defined by the following notation:
URL Indicates a DIGIT =<any ASCII decimal digit> ;0-9
RFC 1738
formatted
Uniform
Resource
Locator
string.
The property values consisting of lists of a particular data type dur-second = 1*DIGIT "S"
(i.e., STRING-LIST) are semi-colon separated string of list items. dur-minute = 1*DIGIT "M" [dur-second]
dur-hour = 1*DIGIT "H" [dur-minute]
dur-time = "T" (dur-hour / dur-minute / dur-second)
3.1.3.7 Date and Time dur-week = 1*DIGIT "W"
dur-day = 1*DIGIT "D"
dur-month = 1*DIGIT "M" [dur-day]
dur-year = 1*DIGIT "Y" [dur-month]
dur-date = (dur-day / dur-month / dur-year) [dur-time]
The date and time values for all iCalendar Object properties are duration = "P" (dur-date / dur-time / dur-week)
formatted as a string consistent with the ISO 8601 representation for
Dawson/Stenerson 16 Expires August 1997 For example, a duration of 10 years, 3 months, 15 days, 5 hours, 30
combinations of dates and times. Either the basic or extended format minutes and 20 seconds would be:
is allowed. The use of UTC, rather than local time, should be used
when ever possible in order to avoid time zone ambiguities. Where
local time is specified, the inclusion of the UTC offset should also
be included to avoid time zone ambiguities. The format for the
complete, representation of a date and time value is represented by
the following ABNF:
date-time = (date / time / (date _T_ time)) Dawson/Stenerson 18 Expires September 1997
P10Y3M15DT5H30M20S
date = year month day 5.1.10.7 Period of Time
year = <four digits representing the century and year>
month = [_-_] <digits representing the month in the year>
day = [_-_] <digits representing the day of the month>
time = hour minute second [fraction](utc-sign / utc-offset) The "period" data type is used to identify values that contain a
hour = <digits representing a period of time of 60 minutes> precise period of time. There are two forms of a period of time.
minute = [_:_] <digits representing a period of time of 60
seconds>
second = [_:_] <digits representing a basic measurement unit
of time in the International System of Units as defined
in ISO 31-1>
fraction = _,_ <digits representing fraction of a second>
utc-sign = _Z_
utc-offset = [_+_ / _-_] hour [_:_] minute
;_+_ if offset is after UTC and _-_ if offset is before UTC
The basic complete representation does not include the _-_ date A period of time may be identified by it start and its end. This
separator nor the _:_ time separator. The extended complete format is expressed as the [ISO 8601] complete representation, basic
representation does include the separators. format for "date-time" start of the period, followed by a SOLIDUS
character (ASCII decimal 47), followed by the "date-time" of the end
of the period. For example, the period starting at 10 AM in Seattle
(eight hours behind UTC) on January 1, 1997 and ending at 11 PM in
Seattle on January 1, 1997 would be:
For example, 8:30 AM on April 15, 1996 local time EST would be 19970101T100000-0800/19970101T230000-0800
written as:
19960415T083000-05:00 A period of time may also be defined by a start and a duration of
time. The format is expressed as the [ISO 8601] complete
representation, basic format for the "date-time" start of the period,
followed by a SOLIDUS character (ASCII decimal 47), followed by the
[ISO 8601] basic format for "duration" of the period. For example,
the period start at 10 AM in Seattle (eight hours behind UTC) on
January 1, 1997 and lasting 5 hours and 30 minutes would be:
And the same time in UTC based time would be written as: 19970101T100000-0800/P5H30M
19960415T133000Z The data type is defined by the following notation:
The same date and time represented in the extended completed period-explicit = date-time "/" date-time
representation would be written as: ;ISO 8601 complete representation basic format for a period of time
;consisting of a start and end. The start must be before the end.
1996-04-15T08:30:00-05:00 period-start = date-time "/" duration
;ISO 8601 complete representation basic format for a period of time
;consisting of a start and duration of time.
And the same time in UTC based time would be written as: period = period-explicit / period-start
1996-04-15T13:30:00Z 5.1.10.8 Boolean
Where a value needs to specify a sequence of date and time values, The "boolean" data type is used to identify properties that contain
then the property value is a string made up of a list of date and either a "true" or a "false" boolean value. These values are case
time values, separated by the field separator, a Semi-Colon (ASCII insensitive. The data type is defined by the following notation:
decimal 59). For example:
Dawson/Stenerson 17 Expires August 1997 boolean = "TRUE" / "FALSE"
19960101T090000Z;19960201T090000Z;19960301T090000Z;...
3.1.3.8 Time Duration For example, any of the following are equivalent:
The values for time duration or periods of time for all iCalendar TRUE
Object properties are formatted as a string consistent with the ISO true
8601 representation for duration of time. A given duration of a TrUe
period of time is represented by a character string consisting of the
designator _P_, optionally including the number of years followed by
the designator _Y_, optionally including the number of months
followed by the designator _M_, optionally including the number of
weeks followed by the designator _W_, optionally including the number
of days followed by the designator _D_. The sequence can also contain
a time component preceded by the designator _T_, optionally including
the number of hours followed by the designator _H_, optionally
including the number of minutes followed by the designator _M_,
optionally including the number of seconds followed by the designator
_S_. The following ABNF describes the representation of ISO 8601
periods of time:
duration = _P_ (yr-period / tm-period / (yr-period tm-period)) Dawson/Stenerson 19 Expires September 1997
;Duration needs to include at least one component of year or
;time periods
yr-period = [yr-parm] [mo-parm] / wk-parm 5.1.10.9 Integer
yr-parm = _Y_ <digits representing the number of years>
mo-parm = _M_ <digits representing the number of months>
wk-parm = _W_ <digits representing the number of weeks>
tm-period = _T_ [hr-parm] [mn-parm] [sc-parm] The "integer" data type is used to identify properties that contain a
hr-parm = _H_ <digits representing the number of hours> signed integer value. The valid range for "integer" is -2147483648 to
mn-parm = _M_ <digits representing the number of minutes> 2147483647. If the sign is not specified, then the value is assumed
sc-parm = _S_ <digits representing the number of seconds> to be positive. If the property permits, multiple "integer" values
may be specified using a COMMA character (ASCII decimal 44) separator
character. The data type is defined by the following notation:
DIGIT =<any ASCII decimal digit> ;0-9
integer = ["+" / "-"] *DIGIT
For example: For example:
P6W 1234567890
-1234567890
+1234567890
432109876
represents a period of six weeks; 5.1.10.10 Float
PT15M The "float" data type is used to identify properties that contain a
real value number value. If the property permits, multiple "float"
values may be specified using a COMMA character (ASCII decimal 44)
separator character. The data type is defined by the following
notation:
represents a period of 15 minutes; DIGIT =<any ASCII decimal digit> ;0-9
PT1H30M float = ["+" / "-"] *DIGIT ["." *DIGIT]
represents a period of 1 hour and thirty minutes; or For example:
P2Y10M15DT10H30M20S 1000000.0000001
1.333
-3.14
represents a period of 2 years, 10 months, 15 days, 10 hours, 30 5.1.10.11 RFC 822 Address
minutes, and 20 seconds.
Dawson/Stenerson 18 Expires August 1997 The "rfc822-address" data type is used to identify properties that
contain a calendar address. The phrase component of the address may
be used to match an unknown address with an otherwise known
individual, group, or resource. The data type is as defined by the
following notation:
3.1.3.9 Value Location rfc822-address = addr-spec / [phrase] "<" addr-spec ">"
The default location of the property values is inline with the addr-spec = local-part "@" domain ;RFC 822 address
property. However, for some properties, such as those that specify local-part = WORD *("." WORD)
multimedia values, it is more efficient in a MIME message to organize domain = domain-ref *("." domain-ref)
the property value as a separate MIME entity. The property parameter domain-ref = ATOM
_VALUE_ can be specified to override the _INLINE_ location of the
property value. In the case of the iCalendar Object being transported
within a MIME email message, the property value can be specified as
being located in a separate MIME entity with the _CONTENT-ID_ value;
or _CID_ for shorthand. In this case, the property value is the
Content-ID for the MIME entity within the multi-part message that
contains the property value. The value can also be specified as being
contained within an another, external message using the _MESSAGE-ID_
value, or _MID_ for shorthand. In addition, the property value can be
specified as being located out on the Internet using the _URL_ value.
In this case, the property value is the Uniform Resource Locator for
the Internet resource containing the property value. This property
parameter may be used on any property. However, the use of this
parameter on some properties may not make sense; for example the
Version, Time Zone, Status, Priority, Mail Reminder, etc. properties.
The following specifies a value located out on the Internet: Dawson/Stenerson 20 Expires September 1997
phrase = 1*WORD
WORD = ATOM / quoted-string
quoted-string = <"> *(qtext/quoted-pair) <"> ; Regular qtext or
; quoted chars.
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including linear-white-space>
quoted-pair ="\" CHAR ; may quote any char
CHAR = <any a character from the selected character set>
ATOM = 1*<any CHAR except specials, SPACE and CTLs>
ATTACH;VALUE=URL:http://www.abc.com/dir_photos/my_photo.gif 5.1.10.12 UTC Offset
The following specifies a value located out in the content of another The "utc -offset" data type is used to identify properties that
message: contain an offset from UTC to local time. The data type is defined by
the following notation:
ATTACH;VALUE=MID:<960120.aaCB@host1.com> utc-offset = time-numzone ;As defined above in time data type
3.1.3.10 Binary Property Values For example, the following are UTC offsets for New York (five hours
behind UTC) and Geneva (one hour ahead of UTC):
The iCalendar Object supports inclusion of binary information, such -0500 ;New York
as computer graphic images (e.g., IMAGE/JPEG), digital audio (e.g., +0100 ;Geneva
AUDIO/BASIC), or video graphic images (e.g., VIDEO/MPEG). As
specified above the binary information can be referenced with a
Uniform Reference Locator (URL), referenced within an external MIME
message, referenced within a particular MIME message body part, or
placed inline. Inline binary information is included as a property
value after being binary encoded using Base 64 (default) or Quoted-
Printable transfer encoding.
3.1.3.11 Recurrence Rule Grammar 5.2 iCalendar Object
Recurring events within the iCalendar Object may be specified as The Calendaring and Scheduling Core Object is a collection of
either a list of discrete date and time values or as a recurrence calendaring and scheduling information. Typically, this information
rule using a grammar. The basic recurrence rule grammar used by this will consist of a single iCalendar Object. However, multiple
specification is defined in a separate section of this specification. iCalendar Objects may be sequentially, grouped together. The first
The grammar defines a recurrence rule that that is based on the prior line and last line of the iCalendar Object must contain a pair of
work of the X.400 API Association's Calendaring and Scheduling iCalendar Object delimiter strings. The syntax for a vCalendar Object
Subcommittee. It is also based on prior work of the IETF Chronos is as follows:
Working Group. Refer to section 3.3.
Dawson/Stenerson 19 Expires August 1997 icalobject = "BEGIN" ":" "VCALENDAR" CRLF
icalbody
"END" ":" "VCALENDAR" CRLF [icalobject]
3.1.4 Body Delimiter Properties The following is a simple example of an iCalendar Object:
The body information of a iCalendar Object is defined by a series of BEGIN:VCALENDAR
body fields or properties. This section defines the properties that VERSION:2.0
can be used in MIME entities conforming to this content type. PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:19970714T120000-0500
DTEND:19970714T235959-0500
DESCRIPTION:Bastile Day Party
END:VEVENT
END:VCALENDAR
3.1.4.1 Calendar Object Dawson/Stenerson 21 Expires September 1997
The body of the iCalendar Object is identified within the body of a 5.3 Property
MIME entity by the appearance of the Begin Calendar Object Delimiter:
BEGIN:VCALENDAR A property is the definition of an individual attribute describing a
calendar property or a calendar component. A property takes the
following form:
The sentinel string must appear as the first characters in the body property = [group "."] propname [";" parmlist] ":" value CRLF
of the MIME entity and as the first characters on a line.
The body information of the iCalendar Object is terminated by the propname = <any properties defined in this document>
appearance of the End Calendar Object Delimiter as the first / iana-prop / x-token
characters on a line:
END:VCALENDAR x-token = <The two characters "X-" or "x-" followed, with no
intervening white space, by any atom>
The iCalendar Object is a container for calendar components. These iana-prop = <A publicly defined extension property, registered
can include either event or to-do components. The body of a iCalendar with IANA, as specified by this document>
Object will generally contain a single calendar event or to-do
component. However, the body may include multiple event or to-do
components. This is the case for free-busy time reply messages that
contain multiple free time intervals in individual calendar
components.
The Begin and End Calendar Object Delimiter properties are required The following is an example of a property:
in a MIME entity conforming to this content type. The data type for
these properties is a STRING.
3.1.4.2 Event Component DTSTART:19960415T083000-05:00
An Event Component is a grouping of calendaring and scheduling This document places no imposed ordering of properties within an
properties that defines a component that represents a scheduled iCalendar Object.
Property names, parameter names and parameter values (i.e.,
everything to the left of the ":" on a line) are case insensitive.
For example, the property name "DUE" is the same as "due" and "Due".
5.4 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 as a whole. The
calendar components are collections of properties that with a
particular calendar semantic. For example, the calendar component may
specify a an event, a to-do, journal entry, time zone information, or
free/busy time information, or alarm.
The body of the iCalenar Object is defined by the following notation:
icalbody = calprops 1*component
calprops = [calscale] [geo] prodid [profile] [profile-version]
[source] [name] version
component = 1*(eventc / todoc / journalc / freebusyc /
/ timezonec)
5.4.1 Event Component
An Event Calendar Component is a grouping of component properties and
an optional alarm calendar component that represent a scheduled
amount of time on a calendar. For example, it may be an activity; amount of time on a calendar. For example, it may be an activity;
such as a one-hour, department meeting from 8 AM to 9 AM, tomorrow or
a free/busy time interval.
An individual Event Component is identified within a MIME Calendaring Dawson/Stenerson 22 Expires September 1997
and Scheduling Content Type by the appearance of the delimiter: such as a one-hour, department meeting from 8:00 AM to 9:00 AM,
tomorrow.
BEGIN:VEVENT An Event Component is defined by the following notation:
The sentinel string must appear as the first characters on a line. eventc = "BEGIN" ":" "VEVENT" CRLF
*eventprop *alarmc
"END" ":" "VEVENT" CRLF
The Event Component is terminated with the appearance of the eventprop = *attach *attendee *categories [class]
following delimiter string as the first characters on a line / [created] description dtend dtstart *exdate
/ *exrule *last-mod [location] [priority]
/ *related *resources *rdate *rrule
/ [resp-seq] / [seq] [status] [summary] [transp]
/ [uid] *url
END:VEVENT The Event Component can not be nested within another Calendar
Component. Event components may be related to each other or to a To-
do or Journal Calendar Component with the RELATED-TO property.
Dawson/Stenerson 20 Expires August 1997 The following is an example of the Event Calendar Component:
The Event Component can not be nested within another Event or To-do
Component. If Event components need to be related to each other or to
a To-do Component, they can specify a relationship with the RELATED-
TO property.
The Begin and End Event Component Delimiter properties are required BEGIN:VEVENT
for a MIME entity containing an event component and conforming to DTSTART:19970903T083000-0800
this content type. The data type for these properties is a STRING. DTEND:19970903T110000-0500
DESCRIPTION:Annual Employee Review
CLASS:PRIVATE
CATEGORIES:BUSINESS,HUMAN RESOURCES
END:VEVENT
3.1.4.3 To-do Component 5.4.2 To-do Component
A To-do Component is a grouping of calendaring and scheduling A To-do Calendar Component is a grouping of component properties and
properties that define a component that represents an action-item or an optional alarm calendar component that represent an action-item or
assignment. For example, it may be an item of work assigned to an assignment. For example, it may be an item of work assigned to an
individual; such as _turn in travel expense today_. individual; such as "turn in travel expense today".
An individual To-do Component is identified within a MIME Calendaring A To-do Component is defined by the following notation:
and Scheduling Content Type by the appearance of the delimiter:
todoc = "BEGIN" ":" "VTODO" CRLF
*todoprop *alarmc
"END" ":" "VTODO" CRLF
todoprop = *attach *attendee *categories [class] [completed]
/ [created] description dtstart due *exdate
/ *exrule *last-mod [location] priority
/ *related *resources *rdate *rrule [resp-seq]
/ [seq] [status] [summary] [transp] [uid] *url
The To-do Component can not be nested within another Calendar
Component. If To-do components need to be related to each other or to
an Event or Journal Calendar Component, they can specify a
relationship with the RELATED-TO property.
Dawson/Stenerson 23 Expires September 1997
The following is an example of a To-do Calendar Component:
BEGIN:VTODO BEGIN:VTODO
DTSTART:19970415T083000-0500
DUE:19970415T235959-0500
DESCRIPTION:1996 Income Tax Preparation
CLASS:CONFIDENTIAL
CATEGORIES:FAMILY,FINANCE
PRIORITY:1
STATUS:NEEDS ACTION
END:VEVENT
The sentinel string must appear as the first characters on a line. 5.4.3 Journal Component
The To-do Component is terminated with the appearance of the A Journal Calendar Component is a grouping of component properties
following delimiter string as the first characters on a line that represent one or more descriptive text on a particular calendar
date. For example, it may be a journal entry of individual telephone
contacts for the day or an ordered list of accomplishments for the
day.
END:VTODO A Journal Component is defined by the following notation:
The To-do Component can not be nested within another To-do or Event journalc = "BEGIN" ":" "VJOURNAL" CRLF
Component. If To-do components need to be related to each other or to *jourprop
an Event Component, they can specify a relationship with the RELATED- "END" ":" "VJOURNAL" CRLF
TO property.
The Begin and End To-do Component Delimiter properties are required jourprop = *attach *categories [class] [created] description
for a MIME entity containing a to-do component and conforming to this / dtstart *last-mod *related [resp-seq] [seq] [uid] *url
content type. The data type for these properties is a STRING.
3.1.5 Calendar Object Properties The Journal Component can not be nested within another Calendar
Component. If Journal Components need to be related to each other or
to an Event or To-Do Calendar Component, they can specify a
relationship with the RELATED-TO property.
The following properties may appear between the Begin Calendar Object The following is an example of the Journal Calendar Component:
Delimiter and either the Begin Event Component Delimiter or the Begin
To-do Component Delimiter. These properties define body field values
that apply to the complete calendar object.
3.1.5.1 Calendar Content Profile BEGIN:VJOURNAL
DTSTART:19970317T083000
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.
2. Telephone Conference: ABC Corp. sales representative called
to discuss new printer. Promised to get us a demo by Friday.
3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
Is looking into a loaner car. 654-2323 (tel).
END:VJOURNAL
This property is identified by the property name PROFILE. This 5.4.4 Free/Busy Component
property defines the usage profile associated with the calendar
object. When used in a MIME message entity, the value of this
property MUST be the same as the Content-Type profile parameter
value. This property can only appear once within the iCalendar
Object.
Dawson/Stenerson 21 Expires August 1997 A Free/Busy Calendar Component is a grouping of component properties
The calendar property value might include the following usage profile that represent free or busy time information. Typically, this
values: component exists in an iCalendar Object that is being used to either
request or return free or busy time information.
Profile Parameter Description Dawson/Stenerson 24 Expires September 1997
Type/Subtype Value A Free/Busy Component is defined by the following notation:
EVENT-REQUEST Make a request for an freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
event *fbprop
"END" ":" "VFREEBUSY" CRLF
EVENT-REPLY Reply to an event fbprop = *attendee [created] [duration] [dtend] [dtstart]
request / *freebusy *last-mod *related [resp-seq] [seq] [uid]
/ *url
EVENT-COUNTER Make a counter proposal The Free/Busy Component can not be nested within another Calendar
to the event request Component. Free/Busy components may be related to each other with the
RELATED-TO property. Multiple Free/Busy Calendar Components may be
specified within a iCalendar Object. This permits the grouping of
Free/Busy information into logical collections, such as monthly
groups of busy time information.
EVENT-DECLINECOUNTER Decline the counter The Free/Busy Calendar Component is intended for use in profiles
proposal to the event involving requests for free time, requests for busy time, requests
request for both free and busy, and the associated replies.
EVENT-MODIFY Modify a subset of the Free/Busy information can be expressed using the FREEBBUSY property.
details of an existing This property provides a terse representation of time periods. One or
event request more FREEBUSY properties may be specified in the FREE/BUSY Calendar
Component to describe the Free/Busy information.
EVENT-REPLACE Replace the current Optionally, the DTSTART and DTEND properties may be specified to
event request with a express the start and end date and time for Free/Busy information in
complete set of the Free/Busy Calendar Component. When present in a Free/Busy
information Calendar Component, they should be specified prior to any FREEBUSY
properties. In a free time request, these properties may be used in
combination with the DURATION property to express a request for a
duration of free time within a given window of time.
EVENT-CANCEL Cancel an existing The recurrence properties (RRULE, EXRULE, RDATE, EXDATE) are not
event request permitted within a Free/Busy Calendar Component. Any recurring events
are resolved into their individual busy time periods using the
FREEBUSY property.
EVENT-DELEGATE Delegate an existing The following is an example of a Free/Busy Calendar Component:
event request
EVENT-RESEND Request a duplicate of BEGIN:VFREEBUSY
the current event DTSTART:19971015T050000Z
request information DTEND:19971016T050000Z
FREEBUSY;VALUE=PERIOD-START:19971015T050000Z/PT8H30M,
19971015T160000Z/PT5H30M, 19971015T223000Z/PT6H30M
END:VFREEBUSY
TODO-REQUEST Assign a to-do 5.4.5 Alarm Component
Dawson/Stenerson 22 Expires August 1997 An Alarm Calendar Component is a grouping of component properties
TODO-REPLY Reply to a to-do that is a reminder or alarm for an event or a to-do. The Alarm
assignment Calendar Component may only be specified in an event or to-do
TODO-COUNTER Make a counter proposal Dawson/Stenerson 25 Expires September 1997
for the to-do request calendar component. For example, it may define a reminder for a
pending event or an overdue to-do.
TODO-DECLINECOUNTER Decline a counter An Alarm Component is defined by the following notation:
proposal for the to-do
request
TODO-MODIFY Modify a subset of the alarmc = "BEGIN" ":" "VALARM" CRLF
details of an existing *alarmprop
to-do assignment "END" ":" "VALARM" CRLF
TODO-REPLACE Replace the current to- alarmprop = *attach [created] [description] dtstart duration
do request with a / *last-mod *related repeat [summary] *url
complete set of
information
TODO-CANCEL Cancel an existing to- The Alarm Component can only appear within either an Event or To-Do
do Calendar Component. Alarm Components can not be nested.
TODO-DELEGATE Delegate an existing The following is an example of the Alarm Calendar Component:
to-do
TODO-RESEND Request a duplicate of BEGIN:VALARM
the current to-do DTSTART:19970317T133000Z
request information REPEAT:4
DURATION:PT15M
CATEGORIES:DISPLAY,AUDIO
ATTACH:file:///mmedia/sounds/bell1.wav
DESCRIPTION:Breakfast meeting with executive team at 8:30 AM
END:VALARM
FREEBUSY-REQUEST Free/busy time request 5.4.6 Timezone Component
FREEBUSY-REPLY Reply to an existing A time zone is unambiguously defined by the set of time measurement
free/busy time request rules determined by the governing body for a given geographic area.
with free/busy time These rules describe at a minimum the base offset from UTC for the
data 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 for the eastern United States.
Other values may be defined by other usage profiles of this content Effective Transition Rule
type. Date (Date/Time) Offset Abbreviation
Dawson/Stenerson 23 Expires August 1997 1967-* last Sun in October, 02:00 -0500 EDT
This property is optional for MIME entities conforming to this
content type. In the event that this property is not specified, the
recipient of a MIME Calendaring and Scheduling Content Type should
assume the calendar object is for an _event/request_. The data type
for this property is STRING.
3.1.5.2 Calendar Scale 1967-1973 last Sun in April, 02:00 -0400 EST
This property is identified by the property name CALENDAR. This 1974-1974 Jan 6, 02:00 -0400 EST
1975-1975 Feb 23, 02:00 -0400 EST
1976-1986 last Sun in April, 02:00 -0400 EST
1987-* first Sun in April, 02:00 -0400 EST
Dawson/Stenerson 26 Expires September 1997
Interoperability between two calendaring and scheduling applications,
especially for recurring events and to-dos, 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.
The Time Zone Calendar Component is a grouping of component
properties that define a time zone description. The time zone
description specifies the effective Standard Time or Daylight Savings
Time rules for a particular time zone. The Timezone Component can not
be nested within other Calendar Components. The Time Zone Component
may be specified multiple times. If the Time Zone Component is
missing, the recipient should assume all local times are relative to
the recipient's time zone. The Time Zone Component should be
specified in the iCalendar Object before any other Calendar
Components.
A Time Zone Component is defined by the following notation:
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
*tzprop
"END" ":" "VTIMEZONE" CRLF
tzprop = [created] [daylight] [dtend] dtstart [rdate / rrule]
[tzname] tzoffset [tztrans] [uid]
The Time Zone component is especially important for correct
interpretation of recurring events and to-dos. If the iCalendar
Object contains an event or to-do component that has a recurring date
pattern (i.e., includes the RRULE property) or a list of date and
local time values (i.e., includes the RDATE property), one or more
Time Zone components must be specified, such that for the given range
of the recurrence (i.e., the earliest instance to latest instance),
there is valid time zone information for all instances. In other
words, if all of the instances of the pattern is entirely within one
offset observance, (e.g., all are in Standard Time), only one Time
Zone Calendar Component need be present. If a time zone transition is
crossed, then other Time Zone Components are needed. Further, if
there are known changes to the rules for the time zone, even more
Time Zone Components are needed.
Each Time Zone Component consists of several properties. The CREATED
property is a DATE-TIME value that indicates when the time zone
description was created; the DAYLIGHT property is a BOOLEAN value
indicating Standard Time (FALSE) or Daylight Savings Time (TRUE); the
DSTART property is a DATE-TIME value indicating the effective start
for the time zone information; the DTEND property is a DATE-TIME
value indicating the effective end date for the time zone
information; the TZOFFSET property is a UTC-OFFSET value indicating
the UTC offset for the time zone (Standard Time or Daylight Savings
Time); the TZTRANS property is a TIME value indicating the time of
day after which the transition to the time zone occurs; the TZNAME
property is the customary name for the time zone; the RRULE property
is a TEXT property indicating the recurrence rule for the transition
Dawson/Stenerson 27 Expires September 1997
to this time zone or alternatively, the RDATE property is a DATE-TIME
property indicating the individual dates and times that the
transition takes effect; and the UID is a TEXT value indicating a
globally unique identifier for the time zone.
The default for DAYLIGHT is FALSE or Standard Time.
The following are examples of the Time Zone Calendar Component:
BEGIN:VTIMEZONE
DAYLIGHT:FALSE
DTSTART:19670101T000000
RRULE;BYDAY=-1SU;BYMONTH=10:YEARLY
TZTRANS:020000
TZOFFSET:-0500
TZNAME:EST
END:VTIMEZONE
BEGIN:VTIMEZONE
DAYLIGHT:TRUE
DTSTART:19870101T000000
RRULE;BYDAY=1SU;BYMONTH=4:YEARLY
TZTRANS:020000
TZOFFSET:-0400
TZNAME:EDT
END:VTIMEZONE
5.4.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
properties and prior to any Calendar Component.
5.4.7.1 Calendar Scale
This property is identified by the property name CALSCALE. This
property defines the calendar scale used for the calendar information property defines the calendar scale used for the calendar information
specified in the iCalendar Object. This specification is based on the specified in the iCalendar Object. This specification is based on the
Gregorian calendar scale. The Gregorian calendar scale is assumed if Gregorian calendar scale. The Gregorian calendar scale is assumed if
this property is not specified in the iCalendar Object. It is this property is not specified in the iCalendar Object. It is
expected that other calendar scales will be defined in other expected that other calendar scales will be defined in other
specifications or by future versions of this specification. specifications or by future versions of this specification.
The following is an example of this property: The property is defined by the following notation:
CALENDAR:GREGORIAN
The data type for this property is STRING.
3.1.5.3 Daylight Savings Rule calscale = "CALSCALE" ":" calvalue CRLF
This property is identified by the property name DAYLIGHT. This calvalue = "GREGORIAN" / iana-scale
property defines the effective daylight savings time rule for
calendar information specified in the iCalendar Object. More than one
DAYLIGHT properties can be specified for a series of future DST rules
for the time zone.
Many locations adjust their standard time forward or backward by one iana-scale = <Any other designator for a calendar scale
hour, in order to accommodate seasonal changes in number of daylight registered with IANA>
hours. Some locations adjust their time by a fraction of an hour.
Standard time is also known as Winter Time. Daylight savings time is
also known as Advanced Time, Summer Time, or Legal Time in certain
countries.
The property value consists of a sequence of components that define a The following is an example of this property:
rule for the observance of daylight savings time. The value consists
of effective start date for the DST rule, followed by the daylight
savings time flag, followed by the daylight savings time offset from
UTC, followed by the date and time of the transition from standard
time to daylight savings time, followed by the date and time of the
transition from daylight savings time to standard time, followed by
the customary standard time designation, followed by the customary
daylight savings time designation. The effective start date for the
DST rule allows for the specification of a series of future DST rules
for a given time zone. The daylight savings time flag is TRUE if
daylight savings time is observed, otherwise it is FALSE and no other
components are specified. The daylight savings time offset value is
specified in a manner consistent with ISO 8601. The property value is
a signed numeric indicating the number of hours and possibly minutes
from UTC. The date and time that the daylight savings time begins and
ends is specified in a manner consistent with ISO 8601 date and time
Dawson/Stenerson 24 Expires August 1997 Dawson/Stenerson 28 Expires September 1997
format. The standard time and daylight savings time designations CALSCALE:GREGORIAN
correspond to the customary character designations.
The following are examples of this property: The data type for this property is TEXT.
DAYLIGHT:19960407;TRUE;-06;19960407T025959;19961027T010000;EST;EDT 5.4.7.2 Geographic Position
DAYLIGHT:FALSE This property is identified by the property name GEO. This property
specifies information related to the global position of the entity
represented by the iCalendar Object. The property value specifies
longitude and latitude. The longitude represents the location east
and west of the prime meridian as a positive or negative real number,
respectively. The latitude represents the location north and south of
the equator as a positive or negative real number, respectively.
DAYLIGHT:19960407;TRUE;-09;19960407T115959;19961027T100000;PST;PDT The property is defined by the following notation:
This property is optional for MIME entities conforming to this geo = "GEO" ":" geovalue CRLF
content type. In the event that this property is not specified, the
recipient of a MIME Calendaring and Scheduling Content Type should
assume the same daylight savings time rule as the recipient location.
The data type for this property is DST-RULE.
3.1.5.4 Geographic Position geovalue = (float ";" float )/ url
This property is identified by the property name GEO. This property The following is an example of this property:
specifies information related to the global position of the _home_
system that created the MIME calendar object. The property value
specifies longitude and latitude. The longitude represents the
location east and west of the prime meridian as a positive or
negative real number, respectively. The latitude represents the
location north and south of the equator as a positive or negative
real number, respectively. The following is an example of this
property:
GEO:37.24,-17.87 GEO:37.24,-17.87
This property is optional for MIME entities conforming to this The default data type for this property is FLOAT. Optionally, the
content type. The default data type for this property is FLOAT-LIST. data type for this property may be URL. The URL is the resource
Optionally, the data type for this property may be URL. The URL is location for the geographical position value.
the resource location for the geographical position value.
3.1.5.5 Product Identifier 5.4.7.3 Product Identifier
This property is identified by the property name PRODID. This This property is identified by the property name PRODID. This
property specifies the identifier for the product that created the property specifies the identifier for the product that created the
MIME calendar object. The vendor of the implementation should assure iCalendar Object. The vendor of the implementation should assure that
that this is a globally unique identifier; using some technique such this is a globally unique identifier; using some technique such as an
as an ISO 9070 FPI value. The following is an example of this ISO 9070 FPI value. This calendar property must be specified in the
property: iCalendar Object but can only appear once.
The property is defined by the following notation:
prodid = "prodid" ":" pidvalue CRLF
pidvalue = (text / url)
;Any text that describes the product and version
;and that is generally assured of being unique.>
The following is an example of this property:
PRODID:-//ABC Corporation//NONSGML My Product//EN PRODID:-//ABC Corporation//NONSGML My Product//EN
This property is required for MIME entities conforming to this The default data type for this property is TEXT. Optionally, the data
content type. The default data type for this property is STRING. type may be URL. The URL is the resource location for the product
Optionally, the data type may be URL. The URL is the resource identifier value.
location for the product identifier value.
Dawson/Stenerson 25 Expires August 1997 Dawson/Stenerson 29 Expires September 1997
3.1.5.6 Time Zone 5.4.7.4 Profile
This property is identified by the property name TZ. This property This property is identified by the property name PROFILE. This
specifies the standard time zone of the _home_ system that created property defines the usage profile associated with the calendar
the MIME calendar object. The property value is specified in a manner object. When used in a MIME message entity, the value of this
consistent with ISO 8601. The property value is a signed numeric property must be the same as the Content-Type profile parameter
indicating the number of hours and possibly minutes from UTC. Time value. This property can only appear once within the iCalendar
zones east of UTC are positive numbers. Time zones west of UTC are Object.
negative numbers. The following are examples of this property:
TZ:-0500 The property is defined by the following notation:
TZ:+05:30 profile = "PROFILE" ": profvalue CRLF
This property is optional for MIME entities conforming to this profvalue = " component "-" action
content type. If this property is missing, the recipient should
assume all local times are relative to the recipients time zone. The
data type for this property is TIME-OFFSET. Optionally, the data type
for this property may be STRING.
3.1.5.7 Version component = "EVENT" / "TODO" / "JOURNAL" / "FREEBUSY"
/ iana-component / x-token
action = <Any IANA registered iCalendar action type.>
iana-component = <Any other component registered with IANA>
The following is an example of this property when the iCalendar
Object is used to request a meeting:
PROFILE:EVENT-REQUEST
In the event that this property is not specified, the usage profile
is undefined. The data type for this property is TEXT.
5.4.7.5 Profile Version
This property is identified by the property name PROFILE-VERSION.
This property specifies the identifier corresponding to the highest This property specifies the identifier corresponding to the highest
version number of the MIME Calendaring and Scheduling Content Type version number of the usage profile that was used in constructing the
specification supported by the implementation that created the MIME iCalendar Object. Values for this property are to be defined by
calendar object. The value of this property must be 2.0 to correspond registering an iCalendar usage profiles.
to this specification..
This property is identified by the property name VERSION. The The property is defined by the following notation:
following is an example of this property:
VERSION:2.0 prof-version = "PROFILE-VERSION" ":" profvalue CRLF
This property is required for MIME entities conforming to this profvalue = iana-prfver / x-token
content type. This property must appear within the MIME calendar
object. The data type for this property is FLOAT.
3.1.6 Event and To-do Component Properties iana-prfver = <A IANA registered iCalendar profile identifier>
The following properties apply to either an event or to-do calendar The following is an example of this property:
object component.
3.1.6.1 Attachment PROFILE-VERSION:IPCS-1.0
This property is identified by the property name ATTACH. The property The data type for this property is TEXT.
defines an attached object to the MIME calendar object. For example,
a document to be reviewed at a scheduled event or the process steps
for a to-do. The property value can be a text string, a reference to
another message body part or a reference to a URL corresponding to a
document.
Multiple attachments may be specified by including multiple ATTACH Dawson/Stenerson 30 Expires September 1997
properties within the MIME calendaring entity.
Dawson/Stenerson 26 Expires August 1997 5.4.7.6 Source
The following are examples of this property:
ATTACH;VALUE=CONTENT-ID:<jsmith.part3.960817T083000. This property is identified by the property name SOURCE. This
xyzMail@host1.com> property is defined by the [MIME DIR] specification. The property
identifies the URL for the source of the iCalendar Object. The source
will usually be a resource on a calendaring and scheduling service.
ATTACH;VALUE=URL:file://xyzCorp.com/pub/reports/r-960812.ps The property is defined by the following notation:
This property is optional for MIME entities conforming to this source = "SOURCE" ":" url CRLF
content type. The default data type for this property is MID. The
data type may alternatively be specified to be CID, URL, or STRING
value.
3.1.6.2 Attendee The following is an example of this property:
This property is identified by the property name ATTENDEE. The SOURCE:http://xyz.corp.com/corp-cals/1997-events.or4
property defines an attendee to a group event or to-do. The default
property value is an (RFC 822) address. The property may include
property parameters TYPE, for the type of attendee, ROLE, for the
role of the attendee in the event or to-do; STATUS, for the status of
the attendee's participation in the event or to-do, RSVP, for
indicating whether the favor of a reply is requested, EXPECT, to
indicate the expectation of the attendee's participation by the
originator, and MEMBER, to indicate the group that the attendee
belongs to.
Multiple attendees may be specified by including multiple ATTENDEE The data type for this property is URL.
properties within the MIME calendaring entity.
The property value may reference a vCard object. This provides a 5.4.7.7 Source Name
useful mechanism to allow more than just the address of the attendee
to be referenced.
The TYPE property parameter for each attendee can have the following This property is identified by the property name NAME. This property
values: is defined by the [MIME DIR] specification. The property identifies
the displayable, presentation name for the source of the iCalendar
Object. The source name is a useful text to associate in the user-
interface of an application with the value in the SOURCE property.
Dawson/Stenerson 27 Expires August 1997 The property is defined by the following notation:
Property Description
Value
INDIVIDUAL Indicates name = "NAME" ":" text CRLF
attendee is
an
individual.
GROUP Indicates The following is an example of this property:
attendee is a
group of
individuals.
RESOURCE Indicates NAME:1997 Events Calendar for XYZ Corporation
attendee is a
resource.
UNKNOWN Indicates The data type for this property is TEXT.
attendee type
is unknown.
The ROLE property parameter for each attendee can have the following 5.4.7.8 Version
values:
Property Description This property is identified by the property name VERSION. This
Value property specifies the identifier corresponding to the highest
version number of the MIME Calendaring and Scheduling Content Type
specification supported by the implementation that created the
iCalendar Object. The value of this property must be "2.0" to
correspond to this specification. This calendar property must appear
within the iCalendar Object but can only appear once.
ATTENDEE Indicates an The property is defined by the following notation:
attendee at
the event or
to-do
ORGANIZER Indicates version = "VERSION" ":" vervalue CRLF
organizer of
the event,
but not owner
OWNER Indicates vervalue = "2.0" / x-token
owner of the
event or to-
do.
Dawson/Stenerson 28 Expires August 1997 The following is an example of this property:
DELEGATE Indicates a
delegate of
another
attendee.
The default value for this property parameter is ATTENDEE. VERSION:2.0
The STATUS property parameter for each attendee can have the Dawson/Stenerson 31 Expires September 1997
following values: The data type for this property is TEXT.
Property Description 5.5 Component Properties
Value
ACCEPTED Indicates to- The following properties apply to either an event or to-do calendar
do was object component.
accepted by
attendee
NEEDS ACTION Indicates 5.5.1.1 Attachment
event or to-
do requires
action by
attendee
SENT Indicates This property is identified by the property name ATTACH. The property
event or to- provides the capability to associate an external object with a
do was sent calendar component. For example, a document to be reviewed at a
out to scheduled event or the description of the process steps for a to-do.
attendee The property may only be specified within event, to-do, or journal
calendar components. This property may be specified multiple times
within an iCalendar Object.
TENTATIVE Indicates The property is defined by the following notation:
event is
tentatively
accepted by
attendee
CONFIRMED Indicates attach = [group "."] "ATTACH" ":" url CRLF
attendee has
confirmed
their
attendance at
the event
DECLINED Indicates The following are examples of this property:
event or to-
Dawson/Stenerson 29 Expires August 1997 ATTACH:<jsmith.part3.960817T083000.xyzMail@host1.com>
do has been
rejected by
attendee
COMPLETED Indicates to- ATTACH://xyzCorp.com/pub/reports/r-960812.ps
do has been
completed by
attendee
DELEGATED Indicates The data type for this property is URL.
event or to-
do has been
delegated by
the attendee
to another
CANCELED Indicates the 5.5.1.2 Attendee
event or to-
do has been
canceled
and/or this
attendee has
been removed
from the list
of attendees.
The default value for this property parameter is NEEDS ACTION. This property is identified by the property name ATTENDEE. The
property defines an attendee within a calendar component. The
property may only be specified within the event, to-do and free/busy
calendar components.
The RSVP property parameter for each attendee can have the following The property has the property parameters TYPE, for the type of
values: attendee, ROLE, for the intended role of the attendee; STATUS, for
the status of the attendee's participation; RSVP, for indicating
whether the favor of a reply is requested; EXPECT, to indicate the
expectation of the attendee's participation by the originator; and
MEMBER, to indicate the group that the attendee belongs to.
Property Description Multiple attendees may be specified by including multiple ATTENDEE
Value properties within the MIME calendaring entity.
YES Indicates a The property data type default is RFC822-ADDRESS. The property data
reply is type may also be set to URL. This provides a useful mechanism to
requested allow more than just the address of the attendee to be referenced.
For example, the property value may refer to a URL.
NO Indicates a The property is defined by the following notation:
reply is not
requested.
The default value for this property parameter is NO. Dawson/Stenerson 32 Expires September 1997
attendee = [group "."] "ATTENDEE" [";" attparamlist] ":"
(rfc822-address / URL) CRLF
;Value must match default or explicit data type
Dawson/Stenerson 30 Expires August 1997 attparamlist = attparam / attparamlist ";" attparam
The EXPECT property parameter for each attendee can have the / paramlist / paramlist ";" attparam
following values: / paramlist ";" attparamlist ";" attparam
Property Description attparam = typeparm / roleparm / statusparm / rsvpparm
Value / expectparm / memberparm
FYI Indicates typeparm = "TYPE" "="
request is ("INDIVIDUAL" ; An individual
for your / "GROUP" ; A group of individuals
information. / "RESOURCE" ; A physical resource
/ "ROOM" ; A room resource
/ "UNKNOWN") ; Otherwise not known
;Default value is UNKNOWN
REQUIRE Indicates roleparm = "ROLE" "="
presence is ("ATTENDEE" ; Indicates a regular attendee
definitely / "OWNER" ; Indicates owner of event or to-do
required. / "ORGANIZER" ; Indicates organizer of event or to-do
/ "DELEGATE") ; Indicates delegate to event or to-do
;Default is ATTENDEE
REQUEST Indicates statusparm = "STATUS" "="
presence is ("NEEDS-ACTION" ; Indicates event or to-do needs action
being / "ACCEPTED" ; Indicates event or to-do accepted
requested / "DECLINED" ; Indicates event or to-do not accepted
/ "TENTATIVE" ; Indicates event or to-do tentatively
; accepted. Status may change in the future.
/ "COMPLETED" ; Indicates to-do was completed.
; COMPLETED property has date/time completed.
/ "DELEGATED" ; Indicateds event or to-do delegated
; to another ATTENDEE
/ "CANCELED") ; Indicates event or to-do canceled for
; ATTENDEE
;Default is NEEDS-ACTION
IMMEDIATE Indicates an rsvpparm = "RSVP" "=" ("YES" / "NO")
immediate ;Default is NO
response
needed.
The default value for this property parameter is FYI. expectparm = "EXPECT" "="
("FYI" ; Indicates request is for your info
/ "REQUIRE" ; Indicates presence is required
/ "REQUEST" ; Indicates presence is requested
/ "IMMEDIATE") ; Indicates an immediate response needed
;Default is FYI
The MEMBER property parameter value is an (RFC 822) address that memberparm = rfc822-address ; Indicates a group or mailing list
represents the group or distribution list.
The following is an example of this property's use for a to-do: The following is an example of this property's use for a to-do:
Dawson/Stenerson 33 Expires September 1997
ATTENDEE;ROLE=OWNER;STATUS=COMPLETED:jsmith@host1.com ATTENDEE;ROLE=OWNER;STATUS=COMPLETED:jsmith@host1.com
The following is an example of this property used for specifying The following is an example of this property used for specifying
multiple attendees to an event: multiple attendees to an event:
ATTENDEE;ROLE=OWNER;STATUS=CONFIRMED:John Smith <jsmith@host1.com> ATTENDEE;ROLE=OWNER;STATUS=CONFIRMED:John Smith <jsmith@host1.com>
ATTENDEE;ROLE=ATTENDEE;STATUS=TENTATIVE:Henry Cabot ATTENDEE;ROLE=ATTENDEE;STATUS=TENTATIVE:Henry Cabot
<hcabot@host2.com> <hcabot@host2.com>
ATTENDEE;ROLE=DELEGATE;STATUS=CONFIRMED:Jane Doe <jdoe@host1.com> ATTENDEE;ROLE=DELEGATE;STATUS=CONFIRMED:Jane Doe <jdoe@host1.com>
The following is an example of this property with the value specified The following is an example of this property with the value specified
as an URL reference to a vCard that contains the information about as an URL reference to a vCard that contains the information about
the attendee: the attendee:
Dawson/Stenerson 31 Expires August 1997
ATTENDEE;ROLE=ATTENDEE;STATUS=CONFIRMED;VALUE=URL: ATTENDEE;ROLE=ATTENDEE;STATUS=CONFIRMED;VALUE=URL:
http://www.xyz.com/~myvcard.vcf http://www.xyz.com/~myvcard.vcf
This property is optional for MIME entities conforming to this The default data type for this property is RFC822-ADDRESS. The data
content type. The default data type for this property is RFC822- type may be reset to URL; in which case the value is a location or
ADDRESS. Optionally, the data type for this property may be URL, MID, message that contains the information that is to be used to specify
or CID; in which case the value is a location or message that the attendee address.
contains information that is to be used to specify the attendee.
3.1.6.3 Audio Reminder
This property is identified by the property name AALARM. The property
defines an audio reminder for the MIME calendar object. An audio
reminder is an alarm that is sounded for a calendar component..
The value for the audio reminder consists of the Run Time, or the
date and time that the reminder is to be executed; Snooze Time, or
the duration of time after the Run Time that the reminder is to be
dormant prior to being repeated; Repeat Count, or the number of times
that the reminder is to be repeated; and the Audio Content, or the
digital sound to be played when the reminder is executed.
The following are some examples of this property:
AALARM;TYPE=WAVE;VALUE=URL:19960415T235959; ; ;
file:///mmedia/taps.wav
AALARM;TYPE=WAVE;VALUE=CONTENT-
ID:19960903T060000;PT15M;4;<jsmith.part2.=
960901T083000.xyzMail@host1.com>
The property has the following additional property parameters:
Property Description
Parameter
Values
TYPE
- - Any IANA Indicates a 5.5.1.3 Categories
registered MIME audio
audio content
content type type.
value - -
WAVE Indicates This property is identified by the property name CATEGORIES. This
the WAVE property defines the categories for a calendar component. The
format for property may be specified within the event, to-do or journal calendar
audio component with an arbitrary text value. The property may also be
content. specified within the alarm property with a value of the alarm
category. More than one category may be specified as a list of
categories separated by the COMMA character (ASCII decimal 44).
Dawson/Stenerson 32 Expires August 1997 The properties is defined by the following notation:
AIFF Indicates
the AIFF
format for
audio
content.
The Reminder properties are primarily provided as a means for categories = "CATEGORIES" [";" paramlist] ":" catvalue CRLF
allowing the capture of alarm information when accessing a calendar
system. It may not be an appropriate property to send in an event or
to-do request.
This property is optional for MIME entities conforming to this catvalue = cat1value [,cat1value] / cat2value [, cat2value]
content type. The default data type for this property is AALARM.
Optionally, the data type may be specified to be CID, MID, or URL.
3.1.6.4 Categories cat1value = "APPOINTMENT" / "BUSINESS" / "EDUCATION" / "HOLIDAY"
/ "MEETING" / "MISCELLANEOUS" / "NON-WORKING HOURS"
/ "NOT IN OFFICE" / "PERSONAL" / "PHONE CALL"
/ "SICK DAY" / "SPECIAL OCCASION" / "TRAVEL"
/ "VACATION" / word
;Used in event and to-do components only
This property is identified by the property name CATEGORIES. This cat2value = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
property defines the categories for the MIME calendar component. More / x-token / iana-word
than one category may be specified as a list of categories separated ;Used in alarm component only
by the Semi-Colon character (ASCII decimal 59).
The following are some examples of this property: The following are examples of this property in an event, to-do or
journal calendar component:
CATEGORIES:APPOINTMENT;EDUCATION CATEGORIES:APPOINTMENT,EDUCATION
Dawson/Stenerson 34 Expires September 1997
CATEGORIES:MEETING CATEGORIES:MEETING
Some of the possible values for this property might include the The following are examples of this property in an alarm calendar
following: component:
Some Possible CATEGORIES:AUDIO,DISPLAY
Property Values CATEGORIES:PROCEDURE
APPOINTMENT The data type for this property is TEXT.
BUSINESS 5.5.1.4 Classification
EDUCATION This property is identified by the property name CLASS. This property
defines the access classification for a calendar component. The
property may only be specified in an event, to-do or journal calendar
component. The property may only be specified once.
HOLIDAY 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., user authorization, access rights, access role, etc.).
Hence, the semantics of the individual access classifications can not
be completely defined by this specification alone. Additionally, due
to the "blind" nature of most exchange processes using this
specification, these access classifications can not 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.
MEETING The property is defined by the following notation:
MISCELLANEOUS class = "CLASS" [";" paramlist] ":" classvalue CRLF
Dawson/Stenerson 33 Expires August 1997 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / x-token
NON-WORKING-HOURS ;Default is PUBLIC
NOT-IN-OFFICE The following is an example of this property:
PERSONAL CLASS:PUBLIC
PHONE CALL The data type for this property is TEXT.
SICK DAY 5.5.1.5 Date/Time Created
SPECIAL OCCASION This property is identified by the property name CREATED. This
property specifies the date and time that the calendar information
was created. The property may be specified in any of the calendar
components. The property may only be specified once. The date and
time is an UTC value.
TRAVEL Dawson/Stenerson 35 Expires September 1997
The property is defined by the following notation:
VACATION created = "CREATED" ":" date-time CRLF
This property is optional for MIME entities conforming to this The following is an example of this property:
content type. The data type for this property is STRING-LIST.
3.1.6.5 Classification CREATED:19960329T133000Z
This property is identified by the property name CLASS. This property The data type for this property is DATE-TIME.
defines the access classification for the MIME calendar component.
A calendar event/to-do access classification is only one component of 5.5.1.6 Date/Time Completed
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 MIME calendaring entity is
useful when measured along with the other security components of a
calendar system (e.g., user authorization, access rights, access
role, etc.). Hence, the semantics of the individual access
classifications can not be completely defined by this specification.
Additionally, due to the _blind_ nature of most exchange processes
using this specification, these entity classifications can not serve
as an enforcement statement for a system receiving a MIME calendar
object . Rather, they provide a method for capturing the intention of
the calendar owner for the access to the MIME calendar object
component.
The following is an example of this property: This property is identified by the property name COMPLETED. This
property defines the date and time that a to-do was actually
completed. The property may be specified once in a to-do component.
The date and time is a UTC value.
CLASS:PUBLIC The property is defined by the following notation:
The property can have the following values: completed = "COMPLETED" ":" date-time CRLF
Dawson/Stenerson 34 Expires August 1997 The following is an example of this property:
Property Description
Value
PUBLIC Indicates COMPLETED:19960401T235959Z
general,
public
access.
PRIVATE Indicates This property is optional for MIME entities conforming to this
restricted, content type. The data type for this property is DATE-TIME.
private
access.
CONFIDENTIAL Indicates 5.5.1.7 Daylight
very
restricted,
confidential
access.
The default value for this property is PUBLIC. This property is identified by the property name DAYLIGHT. This
property may only be specified in a Time Zone Calendar Component.
This property specifies whether Daylight Saving Time (i.e., value is
TRUE) or Standard Time (i.e., value is FALSE) is in effect for the
time zone. The default value is FALSE or Standard Time.
This property is optional for MIME entities conforming to this The property is defined by the following notation:
content type. The data type for this property is STRING.
3.1.6.6 Date/Time Created daylight = "DAYLIGHT" ":" boolean CRLF
;Default value is FALSE
This property is identified by the property name DCREATED. This The following is an example of this property:
property specifies the date and time that the MIME calendar component
was created within the originating calendar system. This is not
necessarily the same date and time that the MIME calendar object was
created. The date and time value is the local or UTC based time
expressed in the complete representation, basic or extended format as
specified in ISO 8601. The following is an example of this property:
DCREATED:19960329T083000-0500 DAYLIGHT:TRUE ;Specifies DST in effect in time zone
This property is optional for MIME entities conforming to this The data type for this property is BOOLEAN.
content type. The data type for this property is DATE-TIME.
3.1.6.7 Date/Time Completed 5.5.1.8 Description
This property is identified by the property name COMPLETED. This This property is identified by the property name DESCRIPTION. This
property defines the date and time that the to-do was actually property provides a more complete description of the calendar
completed. The date and time value is expressed in the complete component, than that provided by the SUMMARY property. The property
representation, basic or extended format as specified in ISO 8601. must be specified in the event, to-do and journal calendar
The time can either be in local or UTC based time. The following is
an example of this property:
Dawson/Stenerson 35 Expires August 1997 Dawson/Stenerson 36 Expires September 1997
COMPLETED:19960401T235959Z components. The property may be specified multiple times only within
a journal calendar component.
This property is optional for MIME entities conforming to this The property is defined by the following notation:
content type. The data type for this property is DATE-TIME.
3.1.6.8 Description description = "DESCRIPTION" [";" paramlist] text CRLF
This property is identified by the property name DESCRIPTION. This The following is an examples of the property with formatted line
property provides a more complete description of the MIME calendar breaks in the property value:
component, than that provided by the SUMMARY property. The following
is an examples of the property with formatted line breaks in the
property value:
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Meeting to provide technical= DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Meeting to provide technical=
review for _Phoenix_ design.=0D=0A= review for "Phoenix" design.=0D=0A=
Happy Face Conference Room. Phoenix design team= Happy Face Conference Room. Phoenix design team=
must attend this meeting. RSVP to team leader. must attend this meeting. RSVP to team leader.
The following is an examples of the property with folding of long The following is an examples of the property with folding of long
lines: lines:
DESCRIPTION:Last draft of the new novel is to be completed DESCRIPTION:Last draft of the new novel is to be completed
for the editor's proof today. for the editor's proof today.
This property is required for MIME entities conforming to this The data type for this property is TEXT.
content type. The data type for this property is STRING. Optionally,
the data type may be URL, MID, or CID.
3.1.6.9 Display Reminder
This property is identified by the property name DALARM. The property
defines a display reminder for the MIME calendar component. A display
reminder is an alarm that is popped up into the user interface or
otherwise visually displayed for a calendar component.
The value for the display reminder consists of the Run Time, or the 5.5.1.9 Due Date/Time
date and time that the reminder is to be executed; Snooze Time, or
the duration of time after the Run Time that the reminder is to be
dormant prior to being repeated; Repeat Count, or the number of times
that the reminder is to be repeated; and the Display String, or the
text to be displayed when the reminder is executed.
The following is an example of this property: This property is identified by the property name DUE. This property
defines the date and time that a to-do is expected to be completed.
The time can either be in local time, local time with UTC offset or
UTC time. The property must be specified in a to-do calendar
component, but may only be specified once.
DALARM:19960415T235000-0800;PT5M;2;Your Taxes Are Due !!! The property is defined by the following notation:
The Reminder properties are primarily provided as a means for due = "DUE" ":" date-time CRLF
allowing the capture of alarm information when accessing a calendar
system. It may not be an appropriate property to send in an event or
to-do request.
This property is optional for MIME entities conforming to this The following is an example of this property:
content type. The default data type for this property is DALARM.
Optionally, the data type may be specified to be CID, MID, or URL.
Dawson/Stenerson 36 Expires August 1997 DUE:19960401T235959Z
3.1.6.10 Due Date/Time The default data type for this property is DATE-TIME. The data type
may be reset to DURATION.
This property is identified by the property name DUE. This property 5.5.1.10 Duration
defines the date and time that the to-do is due to be completed. The
date and time value is expressed in the complete representation,
basic or extended format as specified in ISO 8601. The time can
either be in local or UTC based time. Alternatively, the value may be
a duration of time, expressed in the ISO 8601 format as specified in
section 3.1.3.8. In this case, the end is relative to the start of
the MIME calendar component. The following is an example of this
property:
DUE:19960401T235959Z This property is identified by the property name DURATION. The
property specifies a duration of time. The property may be specified
in an event calendar component in order to specify a duration of the
event, instead of an explicit end date/time. The property may be
specified in a free/busy calendar component in order to specify the
amount of free time being requested. The property may be specified in
an alarm calendar component in order to specify the period between
repeating alarms.
This property is required for MIME entities consisting of a to-do The property is defined by the following notation:
calendar component that conforms to this content type. The default
data type for this property is DATE-TIME. Optionally, the data type
may be specified as a DURATION.
3.1.6.11 Duration Dawson/Stenerson 37 Expires September 1997
duration = "DURATION" ":" duration CRLF
This property is identified by the property name DURATION. The The following is an example of this property that specifies an
property specifies an interval or duration of time. This property can interval of time of 1 hour and zero minutes and zero seconds:
be used with the DTSTART property to specify a relative duration for
an event (e.g., event starts at 8:00 am and lasts for one hour). The
property can also be used in constructing a free-busy time request
(e.g., find free time periods of 15 minute duration, or longer). The
following is an example of this property that specifies an interval
of time of 1 hour and zero minutes and zero seconds:
DURATION:PT1H0M0S DURATION:PT1H0M0S
The following is an example of this property that specifies an The following is an example of this property that specifies an
interval of time of 15 minutes. interval of time of 15 minutes.
DURATION:PT15M DURATION:PT15M
This property is optional for MIME entities conforming to this The data type for this property is DURATION.
content type. The data type for this property is DURATION.
3.1.6.12 End Date/Time 5.5.1.11 Start Date/Time
This property is identified by the property name DTSTART. This
property may be specified within the event, free/busy, and time zone
calendar components.
Within the event calendar component, this property defines the start
date and time for the event. The property is required in event
calendar components. The time can either be in local time, local time
with UTC offset or UTC time. The local time is only to be used to
specify date and time values that do not need to be fixed. A
recipient must assume their own time zone for data and time values
that do not include time zone information. Events may have a start
date/time but no end date/time. In that case, the event does not take
up any time.
Within the free/busy calendar component, this property defines the
start date and time for the free or busy time information. The time
must be specified in local time with UTC offset or UTC time.
Within the time zone calendar component, this property defines the
effective start date and time for a time zone specification. This
property is required within time zone calendar components. The time
must be specified as a UTC time.
The property is defined by the following notation:
dtstart = "DTSTART" ":" date-time CRLF
The following is an example of this property:
DTSTART:19960401T235959-0600
The data type for this property is DATE-TIME.
5.5.1.12 End Date/Time
This property is identified by the property name DTEND. This property This property is identified by the property name DTEND. This property
defines the date and time that the event component will end. The date may be specified within the event, free/busy, and time zone calendar
and time value is expressed in the complete representation, basic or components.
extended format as specified in ISO 8601. The time can either be in
local or UTC based time. Alternatively, the value may be a duration Dawson/Stenerson 38 Expires September 1997
of time, expressed in the ISO 8601 format as specified in section Within the event calendar component, this property defines the end
3.1.3.8. In this case, the end is relative to the start of the MIME date and time for the event. The property is required in event
calendar component. Events may have an end date/time but no start calendar components. The time can either be in local time, local time
date/time. In that case, the event does not take up any time. The with UTC offset or UTC time. The local time is only to be used to
following is an example of this property: specify date and time values that do not need to be fixed. A
recipient must assume their own time zone for data and time values
that do not include time zone information. Events may have an end
date/time but no start date/time. In that case, the event does not
take up any time.
Within the free/busy calendar component, this property defines the
end date and time for the free or busy time information. The time
must be specified in local time with UTC offset or UTC time.
Within the time zone calendar component, this property defines the
effective end date and time for a time zone specification. This
property is required within time zone calendar components. The time
must be specified as a UTC time.
The property is defined by the following notation:
dtend = "DTEND" ":" date-time CRLF
The following is an example of this property:
DTEND:19960401T235959Z DTEND:19960401T235959Z
Dawson/Stenerson 37 Expires August 1997 The data type for this property is DATE-TIME.
This property is required for MIME entities conforming to this
content type. The default data type for this property is DATE-TIME.
The data type may alternatively be specified as a DURATION.
3.1.6.13 Exception Date/Times 5.5.1.13 Exception Date/Times
This property is identified by the property name EXDATE. This This property is identified by the property name EXDATE. This
property defines the list of date/time exceptions for a recurring property defines the list of date/time exceptions for a recurring
MIME calendar component. The date and time values is expressed in the event or to-do component. The times can either be in local time,
complete representation, basic format as specified in ISO 8601. The local time with UTC offset or UTC time.
times can either be in local or UTC based time. The following is an
example of this property: The property is defined by the following notation:
exdate = "EXDATE" ":" date-time *["," date-time] CRLF
The following is an example of this property:
EXDATE:19960402T010000Z;19960403T010000Z;19960404T010000Z EXDATE:19960402T010000Z;19960403T010000Z;19960404T010000Z
This property is optional for MIME entities conforming to this The data type for this property is DATE-TIME.
content type. The data type for this property is D-T-LIST.
Optionally, the data type may be URL; in which case the value is the
location where a list of exception dates can be found. This latter
case is a useful method for conveying dynamic exceptions dates, such
as holidays, for a recurring event or to-do.
3.1.6.14 Exception Rule 5.5.1.14 Exception Rule
This property is identified by the property name EXRULE. This This property is identified by the property name EXRULE. This
property defines a rule or repeating pattern for an exception to a property defines a rule or repeating pattern for an exception to a
recurring MIME calendaring entity, based on the Basic Recurrence Rule recurring event or to-do. This property may only be specified in the
Grammar of the [XAPIA]. The value for the property is a pattern event and to-do calendar components.
specification for the recurrence exception. The following are some
examples of this property:
EXRULE:W2 TU TH #2 // Except every other week, on Tuesday Dawson/Stenerson 39 Expires September 1997
// and Thursday for 4 occurrences This property is defined by the same property values and parameters
as specified for the RRULE property. The property is defined by the
following notation:
EXRULE:D1 #10 // Except daily for 10 occurrences exrule = "EXRULE" [";" rparamlist] ":" rvalue CRLF
EXRULE:YM1 6 7 #8 // Except yearly in June and July for 8 The following are examples of this property. Except every other week,
// occurrences on Tuesday and Thursday for 4 occurrences:
This property is optional for MIME entities conforming to this EXRULE;COUNT=4;INTERVAL=2;BYDAY=TU,TH:WEEKLY
content type. The data type for this property is RRULE.
3.1.6.15 Last Modified Except daily for 10 occurrences:
This property is identified by the property name LAST-MODIFIED. The EXRULE;COUNT=10:DAILY
property specifies the date and time that the MIME calendar component
was last revised. The following is an example of this property:
LAST-MODIFIED:19960817T133000Z Except yearly in June and July for 8 occurrences:
This property is optional for MIME entities conforming to this EXRULE;COUNT=8;BYMONTH=6,7:YEARLY
content type. The data type for this property is DATE-TIME.
Dawson/Stenerson 38 Expires August 1997 The data type for this property is TEXT.
3.1.6.16 Location 5.5.1.15 Free/Busy Time
This property is identified by the property name LOCATION. The This property is identified by the property name FREEBUSY. The
property defines the intended location for the MIME calendar property defines one or more free or busy time intervals. These time
component. periods may be specified as either a start and end date-time or a
start date-time and duration.
The property value may reference a vCard object. This provides a The date and time is either local time with UTC offset or a UTC
useful mechanism to specify a location in terms of its electronic value.
business card.
The FREEBUSY property may include the TYPE property parameter to
specify the information defines a free or busy time interval. The
property may also include the STATUS property parameter to specify
the type of busy time. The STATUS parameter may be utilized by the
application reading the busy time information in order to provide a
richer view of the information.
The property is defined by the following notation:
freebusy = "FREEBUSY" [";" fbparmlist] ":" fbvalue CRLF
fbparmlist = fbparam / paramlist ";" fbparam
/ fbparam ";" fbparmlist
fbparam = fbtype / fbstatus
fbtype = "TYPE" "=" ("FREE" or "BUSY")
;Default is BUSY
fbstatus = "STATUS" "="
"BUSY" ;Represents busy time interval
/ "OUT" ;Represents out-of-office, non-working
;hours, or other unavailable interval
Dawson/Stenerson 40 Expires September 1997
/ "PRIVATE" ;Represents private unavailable time
/ "CONFIDENTIAL" ;Represents confidential unavailable
;time
;Default is BUSY
fbvalue = period *["," period]
;Value must match default or explicit data type
The following are some examples of this property: The following are some examples of this property:
LOCATION:Conference Room - F123, Bldg. 002 // or FREEBUSY;STATUS=OUT:19970308T160000Z/PT8H30M
LOCATION;VALUE=URL:http://www.xyzcorp.com/~jsmith.vcf FREEBUSY;TYPE=FREE:19970308T160000Z/PT3H, 19970308T200000Z/PT1H
This property is optional for MIME entities conforming to this FREEBUSY properties within the Free/Busy Calendar Component should be
content type. The default data type for this property is STRING. sorted in ascending order, based on start time and then end time,
Optionally the data type may URL, MID, or CID. with the earliest periods first.
3.1.6.17 Mail Reminder The FREEBUSY property may specify more than one value, separated by
the COMMA character (ASCII decimal 44). In such cases, the FREEBUSY
property values should all be of the same STATUS (e.g., all values of
a particular STATUS listed together in a single property).
This property is identified by the property name MALARM. The property The data type for this property is PERIOD.
defines an email address that is to be sent a reminder for the MIME
calendar component. A mail reminder is an electronic mail address
that will be sent a display string as an alarm for a calendar
component.
The value for the procedure reminder consists of the Run Time, or the 5.5.1.16 Last Modified
date and time that the reminder is to be executed; Snooze Time, or
the duration of time after the Run Time that the reminder is to be
dormant prior to being repeated; Repeat Count, or the number of times
that the reminder is to be repeated; Email Address, or the (RFC 822)
email address that is to be sent the reminder, Subject, or the
textual subject of the note, and the Note, or the textual reminder
string that is to be sent to the email address.
The following is an example of this property: This property is identified by the property name LAST-MODIFIED. The
property specifies the date and time that the calendar information
was last revised. The property value may include multiple "date-time"
values in order to capture the sequence of modifications made to the
calendar information. This property may be specified in the event,
to-do, journal or free/busy calendar components. The data and time
must be a UTC value.
MALARM:19960416T000000-0500;PT1H;24;IRS@us.gov;My Payment; The property is defined by the following notation:
The Check Is In The Mail!
The Reminder properties are primarily provided as a means for last-mod = "LAST-MODIFIED" ":" date-time ["," date-time] CRLF
allowing the capture of alarm information when accessing a calendar
system. It may not be an appropriate property to send in an event or
to-do request.
This property is optional for MIME entities conforming to this The following is an example of this property:
content type. The default data type for this property is MALARM.
Optionally, the data type may be URL, MID, or CID.
Dawson/Stenerson 39 Expires August 1997 LAST-MODIFIED:19960817T133000Z
3.1.6.18 Number Recurrences The data type for this property is DATE-TIME.
This property is identified by the property name RNUM. The property 5.5.1.17 Location
defines the number of times the calendar entry will reoccur. The
value is equal to the number of recurrences that are specified by the
union of the Recurrence Dates, Recurrence Rule, Exception Dates, and
Exception Rule property values. The following is an example of this
property:
RNUM:3 This property is identified by the property name LOCATION. The
property defines the intended location for the event or to-do
calendar component. The property may only be specified within an
event or to-do calendar component.
In the event that this value does not match the computed number of The property is defined by the following notation:
recurrences, it will be ignored and the computed number of
recurrences will be used.
This property is optional for MIME entities conforming to this Dawson/Stenerson 41 Expires September 1997
content type. The data type for this property is INTEGER. location = "LOCATION [";" paramlist] ":" locavalue CRLF
3.1.6.19 Priority locavalue = text / url ;The value must be the same type as the
;default or explicit data type.
This property is identified by the property name PRIORITY. The The following are some examples of this property:
property defines the priority for the MIME calendar component. The
value is an alphanumeric. A value of zero (ASCII decimal 48)
specifies an undefined priority. A value of one (ASCII decimal 49) is
the highest priority. A value of two (ASCII decimal 50) is the second
highest priority. Subsequent numbers specify a decreasing ordinal
priority. The following is an example of this property:
PRIORITY:2 LOCATION:Conference Room - F123, Bldg. 002
This property is optional for MIME entities conforming to this LOCATION;VALUE=URL:http://www.xyzcorp.com/~jsmith.vcf
content type. The default data type for this property is STRING.
Optionally the data type may be specified to be INTEGER.
3.1.6.20 Procedure Reminder The default data type for this property is TEXT. The data type may be
reset to URL. In the case of the data type being URL, the property
value may reference a vCard object. This provides a useful mechanism
to specify a location in terms of its electronic business card.
This property is identified by the property name PALARM. The property 5.5.1.18 Priority
defines a procedure reminder for the MIME calendar component. A
procedure reminder is a procedure, or application executable that
will be run as an alarm for a calendar component.
While this property has many useful purposes, implementers should be This property is identified by the property name PRIORITY. The
aware of the security implications of sending a MIME calendaring property defines the priority for event or to-do. The property may
entity containing this property. The security implications are only be specified within an event or to-do calendar component. The
similar to those associated with active messages within electronic value is an integer. A value of zero (ASCII decimal 48) specifies an
mail. undefined priority. A value of one (ASCII decimal 49) is the highest
priority. A value of two (ASCII decimal 50) is the second highest
priority. Subsequent numbers specify a decreasing ordinal priority.
The value for the procedure reminder consists of the Run Time, or the The property is specified by the following notation:
date and time that the reminder is to be executed; Snooze Time, or
the duration of time after the Run Time that the reminder is to be
dormant prior to being repeated; Repeat Count, or the number of times
that the reminder is to be repeated; and the Procedure Name, or the
path to the procedure to be run when the reminder is executed.
Parameters are passed to the procedure by concatenating to the
Dawson/Stenerson 40 Expires August 1997 priority = "PRIORITY" ":" integer CRLF
Procedure Name value a Question-Mark (ASCII decimal 63) followed by a ;Default is zero
string representation of the parameters.
The following is an example of this property: The following is an example of this property:
PALARM;VALUE=URL:19960415T235000-0500;PT5M;2;file:///myapps/ PRIORITY:2
shockme.exe?HARD
The Reminder properties are primarily provided as a means for
allowing the capture of alarm information when accessing a calendar
system. It may not be an appropriate property to send in an event or
to-do request.
This property is optional for MIME entities conforming to this The data type for this property is INTEGER.
content type. The default data type for this property is PALARM.
Optionally, the data type may be URL, MID, or CID.
3.1.6.21 Related To 5.5.1.19 Related To
This property is identified by the property name RELATED-TO. The This property is identified by the property name RELATED-TO. The
property is used to represent relationships or references between property is used to represent relationships or references between one
this MIME calendar component and another. The property value consists calendar component and another. The property may only be specified in
of the persistent, globally unique identifier of another MIME the event, to-do and journal calendar components. The property value
calendar component. This value would be represented in a MIME consists of the persistent, globally unique identifier of another
MIME calendar component. This value would be represented in a MIME
calendar component by the UID property. calendar component by the UID property.
A linked relationship can be specified by a series of components that A linked relationship can be specified by a series of components that
each, in turn, refer to their parent component. A group relationship each, in turn, refer to their parent component. A group relationship
can be specified by a number of components that all refer to one can be specified by a number of components that all refer to one
common parent component. common parent component.
Changes to a calendar component referenced by this property may Changes to a calendar component referenced by this property may
impact the related calendar component. For example, if a group event impact the related calendar component. For example, if a group event
Dawson/Stenerson 42 Expires September 1997
changes its start or end date or time, then the related, dependent 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 events will need to have their start and end dates changed in a
corresponding way. This property is intended only to provide corresponding way. This property is intended only to provide
information on the relationship of calendar components. It is up to information on the relationship of calendar components. It is up to
the target calendar system to maintain this relationship. the target calendar system to maintain any property implications of
this relationship.
The property is defined by the following notation:
related = "RELATED-TO" [";" paramlist] ":" relvalue CRLF
relvalue = text / url ;Value must be the same type as
;default or explicit data type
The following is an example of this property: The following is an example of this property:
RELATED-TO:<jsmith.part7.19960817T083000.xyzMail@host3.com> RELATED-TO:<jsmith.part7.19960817T083000.xyzMail@host3.com>
RELATED-TO:19960401-080045-4000F192713-0052 RELATED-TO:19960401-080045-4000F192713-0052
This property is optional for MIME entities conforming to this The default data type for this property is TEXT. The data type may be
content type. The default data type for this property is STRING. reset to URL.
Optionally, the data type may be URL, MID, or CID.
3.1.6.22 Recurrence Date/Times 5.5.1.20 Recurrence Date/Times
This property is identified by the property name RDATE. This property This property is identified by the property name RDATE. This property
defines the list of date/times for a recurring MIME calendar defines the list of date/times for a recurring event, to-do or time
component. This property may appear along with the RRULE property to zone calendar component. This property may appear along with the
RRULE property to define an aggregate set of repeating occurrences.
When they both appear in an iCalendar Object, the recurring events
are defined by the union of occurrences defined by both the RDATE and
RRULE. The times can either be in local time, local time with UTC
offset or UTC based time. If local time is used, the TIMEZONE
component must be included in the iCalendar Object, otherwise the
local time value will be interpreted relative to the time zone of the
recipient. The period values for RDATE are specified using a specific
start and a specific end basic format (period-explicit) or the period
with a specific start and a specific duration basic format (period-
start).
Dawson/Stenerson 41 Expires August 1997 The property is define by the following notation:
define an aggregate set of repeating occurrences. When they both
appear in an iCalendar Object, the recurring events are defined by
the union of occurrences defined by both the RDATE and RRULE. The
date and time values is expressed in the complete representation,
basic format as specified in ISO 8601. The times can either be in
local or UTC based time. The number of recurring date/times is
specified by the Number Recurrences property. The following is an
example of this property:
RDATE:19960402T010000Z;19960403T010000Z;19960404T010000Z rdate = "RDATE" ":" rdvalue *["," rdvalue] CRLF
This property is optional for MIME entities conforming to this rdvalue = date-time / period
content type. The default data type for this property is D-T-LIST. ;Value must match the default or explicit data type
Optionally, the data type may be URL; in which case the value is the
location where a list of recurring dates can be found. This latter
case is a useful method for conveying dynamic recurring dates, such
as schedules, for a recurring event or to-do.
3.1.6.23 Recurrence Rule The following is an example of this property:
RDATE:19960403T020000Z/19960403T040000Z, 19960404T010000Z/PT3H
The default data type for this property is DATE-TIME. The value may
be reset to PERIOD.
Dawson/Stenerson 43 Expires September 1997
5.5.1.21 Recurrence Rule
This property is identified by the property name RRULE. This property This property is identified by the property name RRULE. This property
defines a rule or repeating pattern for a recurring MIME calendar defines a rule or repeating pattern for a recurring events, to-dos,
component, based on the Basic Recurrence Rule Grammar of [XAPIA]. The or time zone definitions. The property may be specified in the event,
value for the property is a pattern specification for the recurrence. to-do, or time zone calendar components.
This property may appear along with the RDATE property to define an
aggregate set of repeating occurrences. When they both appear in an
iCalendar Object, the recurring events are defined by the union of
occurrences defined by both the RDATE and RRULE. The following are
examples of this property:
RRULE:W2 TU TH // Every other week, on Tuesday The property value identifies the type of recursion rule. Valid
// and Thursday property values include 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.
RRULE:D1 #10 // Daily for 10 occurrences The property includes property parameters that further qualify the
recurrence rule.
RRULE:YM1 6 7 #8 // Yearly in June and July for 8 The INTERVAL property parameter contains a positive integer
// occurrences representing how often the RRULE repeats. The default value is "1" or
every hour for a 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 a HOURLY rule, the value may also be expressed as
a duration value, specifying hours and minutes for the repeat
interval. For example, PT1H30M, would represent a 1 hour and 30
minute repeat interval.
This property is optional for MIME entities conforming to this The UNTIL property parameter defines a date-time value which bounds
content type. The data type for this property is RRULE. the RRULE. If not present, and the COUNT property parameter is also
not present, the RRULE is considered to repeat forever.
3.1.6.24 Resources The COUNT property parameter defines the number of occurrences at
which to bound the RRULE. This property parameter is ignored if the
UNTIL property parameter is also present.
This property is identified by the property name RESOURCES. This The BYDAY property parameter specifies a COMMA character (ASCII
property defines the equipment or resources needed in the MIME decimal 44) separated list of days of the week; MO, indicates Monday;
calendar component. TU, indicates Tuesday; WE, indicates Wednesday; TH, indicates
Thursday; FR, indicates Friday; SA, indicates Saturday; SU, indicates
Sunday.
Some of the values that the property may have include the following: Each of these parameter values may also be preceded by a positive
(+n) or negative (-n) integer. If present, this indicates the nth
occurrence of the specific day within the MONTHLY or YEARLY RRULE.
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.
Some Possible The BYMONTHDAY property parameter specifies a COMMA character (ASCII
decimal 44) separated list of days of the month. Valid values are 1
to 31 or -31 to -1.
Dawson/Stenerson 42 Expires August 1997 The BYYEARDAY property parameter specifies a COMMA character (ASCII
Property Values decimal 44) separated list of days of the year. Valid values are 1 to
CATERING Dawson/Stenerson 44 Expires September 1997
366 or -366 to -1. For example, -1 represents the last day of the
year (December 31st).
CHAIRS The BYSETPOS property parameter specifies a COMMA character (ASCII
decimal 44) separated list of values which corresponds to the nth
occurrence within the set of events specified by the rule. Valid
values are 1 to 366 or -366 to -1. It must only be used in
conjunction with another Byxxx property parameter. For example "the
last work day of the month" could be represented as:
COMPUTER PROJECTOR RRULE;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1:MONTHLY
EASEL The BYWEEKNO property parameter specifies a comma separated list of
weeks of the year. Valid values are 1 to 52. This corresponds to
weeks according to week numbering as defined in [ISO 8601]. That is,
a week as "A seven day period within a calendar year, starting on a
Monday and identified by its ordinal number within the year; the
first calendar week of the year is the one that includes the first
Thursday of that year." This property parameter is only valid for
YEARLY rules.
OVERHEAD PROJECTOR The BYMONTH property parameter specifies a comma separated list of
months of the year. Valid values are 1 to 12.
SPEAKER PHONE The WKST property parameter specifies the day on which the workweek
starts. Valid values are MO, TU, WE, TH, FR, SA and SU. This is
significant when a WEEKLY RRULE has an interval greater than 1. The
default value is MO.
TABLE If two different Byxxx property parameters are specified within the
RRULE, the recurrence occurrence must meet both criteria.
TV If Byxxx property parameter values are found which are beyond the
available scope (ie, BYMONTHDAY=-30 in February), they are simply
ignored. If a positive range limit is beyond the available scope, it
will be interpreted as -1. Likewise, if a negative range limits
beyond the available scope, it will be interpreted as +1.
VCR The RRULE property requires referencing the DTSTART, DTEND or
DURATION properties in the iCalendar object to calculate the Event or
To-do instances.
VIDEO PHONE The DTSTART and DTEND pair or DTSTART and DURATION pair, specified
within the iCalendar object defines the first instance of the
recursion. When used with a recurrence rule, the DTSTART and DTEND
properties must be specified in local time and the appropriate set of
TIMEZONE components must be included. For detail on the usage of the
TIMEZONE component, see the Time Zone Calendar Component definition.
VEHICLE Any duration associated with the iCalendar Object applies to all
members of the generated recursion. Any modified duration for
specific recurrences would have to be explicitly specified using the
RDATE property.
The following is an example of this property: Dawson/Stenerson 45 Expires September 1997
This property is defined by the following notation:
RESOURCES:EASEL;PROJECTOR;VCR rrule = "RRULE" [rparamlist] ":" rvalue CRLF
This property is optional for MIME entities conforming to this rparamlist = rparam / rparamlist ";" rparam / paramlist
content type. The default data type for this property is STRING-LIST. / paramlist ";" rparam
The data type may alternatively be specified to be STRING. / paramlist ";" rparamlist ";" rparam
3.1.6.25 Response Sequence Number rparam = "UNTIL" "=" enddate
/ "COUNT" "=" interval
/ "INTERVAL" "=" rinterval
/ "BYDAY" "=" bdweekdaylist
/ "BYMONTHDAY" "=" bmdaylist
/ "BYYEARDAY" "=" bydaylist
/ "BYSETPOS" "=" bsplist
/ "BYWEEKNO" "=" bwdaylist
/ "BYMONTH" "=" bmlist
/ "WKST" "=" weekday
/ "X-" word "=" word
This property is identified by the property name RESPONSE-SEQUENCE. rvalue = "HOURLY" / "DAILY" / "WEEKLY" / "YEARLY"
This property defines the instance of the MIME calendar component in
a revision sequence of responses. This property is needed to properly
handle the receipt and processing of a sequence of MIME calendar
components that have been delivered out of order. Such is the case
for store-and-forward based transports. When a response to an
original MIME calendaring entity is created its sequence number is
zero (ASCII decimal 48). It is incremented each time it is revised.
The following is an example of this property:
RESPONSE-SEQUENCE:1 rinterval = interval ; For any rvalue
/ duration ; Only for rvalue = HOURLY
This property is optional for MIME entities conforming to this DIGIT =<any ASCII decimal digit> ;0-9
content type. The data type for this property is INTEGER.
Dawson/Stenerson 43 Expires August 1997 digits = 1*DIGIT
3.1.6.26 Sequence Number interval = digits
This property is identified by the property name SEQUENCE. This enddate = date ;A UTC value
property defines the instance of the MIME calendar component in a
sequence of revisions. This property is needed to properly handle the
receipt and processing of a sequence of MIME calendar components that
have been delivered out of order. Such is the case for store-and-
forward based transports. When a MIME calendaring entity is created
its sequence number is zero (ASCII decimal 48). It is incremented
each time it is revised by the OWNER and/or ORGANIZER. The following
is an example of this property:
SEQUENCE:1 plus = "+"
This property is optional for MIME entities conforming to this minus = "-"
content type. The data type for this property is INTEGER.
3.1.6.27 Start Date/Time ordmoday = 1*2digits ;1 to 31
This property is identified by the property name DTSTART. This ordwk = 1*2digits ;1 to 52
property defines the date and time that the calendar component will
start. The date and time value is expressed in the complete
representation, basic format as specified in ISO 8601. The time can
either be in local or UTC based time. Alternatively, the value may be
a duration of time, expressed in the ISO 8601 format as specified in
section 3.1.3.8. In this case, the start is relative to another MIME
calendar component specified by the RELATED-TO property. Events may
have a start date/time but no end date/time. In that case, the event
does not take up any time. The following is an example of this
property:
DTSTART:19960401T235959-0600 ordyrday = 1*3digits ;1 to 366
This property is optional for MIME entities conforming to this daynumber = (plus / minus) ordmoday
content type. The default data type for this property is DATE-TIME.
Optionally, the data type may be DURATION.
3.1.6.28 Status weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" >
This property is identified by the property name STATUS. This bdweekdaynum = [daynumber] weekday
property defines the status associated with the MIME calendar
component. This property can only be used when the ATTENDEE property
is either not supported or not needed. The following is an example of
this property:
STATUS:TENTATIVE bdweekdaylist = bdweekdaynum / bdweekdaynum "," *(bdweekdaynum)
The property can have the following values: bmposday = [plus] ordmoday
Description Property bmnegday = minus ordmoday
Dawson/Stenerson 44 Expires August 1997 Dawson/Stenerson 46 Expires September 1997
Value bmdaylist = bmposday *("," bmposday / bmnegday)
/ bmnegday *("," bmnegday / bmposday)
Indicates to-do ACCEPTED byposday = [plus] ordyrday
was accepted
Indicates event NEEDS ACTION bynegday = minus ordyrday
or to-do
requires action
Indicates event SENT bydaylist = byposday *("," byposday / bynegday)
or to-do was / bynegday *("," bynegday / byposday)
sent out.
Indicates event TENTATIVE bsplist = byposday *("," byposday / bynegday)
is tentatively / bynegday *("," bynegday / byposday)
accepted
Indicates event CONFIRMED bwposday = [plus] ordwk
is confirmed
Indicates event DECLINED bwnegday = minus ordwk
or to-do has
been declined
Indicates to-do COMPLETED bwdaylist = bwposday *("," bwposday / bwnegday)
has been / bwnegday *("," bwnegday / bwposday)
completed
Indicates event DELEGATED bmposmon = 1*2digits ;1 to 12
or to-do has
been delegated
Indicates the CANCELED bmlist = bmposmon *("," bmposmon)
event or to-do
has been
canceled and/or
this attendee
has been
removed from
the list of
attendees.
The default value for this property is NEEDS ACTION. Examples of this property include the following. Daily for 10
occurrences:
This property is required for MIME entities containing a to-do RRULE;COUNT=10:DAILY
calendar component conforming to this content type. This property is
optional for MIME entities containing an event calendar component
conforming to this content type. The data type for this property is
STRING.
Dawson/Stenerson 45 Expires August 1997 Daily until 12/24/94:
3.1.6.29 Summary RRULE;UNTIL=19941224T000000Z:DAILY
This property is identified by the property name SUMMARY. This Every other day - forever:
property defines a short summary or subject of the MIME calendar
component. The following is an example of this property:
SUMMARY:Department Party RRULE;INTERVAL=2:DAILY
This property is required for MIME entities conforming to this Every 10 days, 5 occurrences:
content type. The data type for this property is STRING.
3.1.6.30 Time Transparency RRULE;COUNT=5;INTERVAL=10:DAILY
This property is identified by the property name TRANSP. This Weekly for 10 occurrences
property defines whether the event is transparent to free time
searches. The value of this property is a number. A value of zero
(ASCII decimal 48) guarantees that the entry will blocks time and
will be factored into a free time search. A value of one (ASCII
decimal 49) specifies that the entry will not block time and will not
be factored into a free time search. Any values greater than _1_ will
provide implementation specific transparency semantics. Some
implementations may treat values greater than one as non-blocking or
transparent events. Other implementations may use the numeric value
to provide a layering of levels of transparency. The default value is
zero (ASCII decimal 48), the event is not transparent and will block
free time searches. The following is an example of this property:
TRANSP:0 RRULE;COUNT=10:WEEKLY
This property is optional for MIME entities conforming to this Weekly until 12/24/94
content type. The data type for this property is INTEGER.
3.1.6.31 Uniform Resource Locator RRULE;UNTIL=19941224T000000Z:WEEKLY
This property is identified by the property name URL. This property Every other week - forever:
defines a Uniform Resource Locator for an Internet location that can
be used to obtain real-time information associated with the MIME
calendar component. Valid values for this property are a string
conforming to [RFC 1738]. The following is an example of this
property:
URL:http://abc.com/pub/calendars/jsmith/mytime.or3 RRULE;INTERVAL=2;WKST=SU:WEEKLY
This property is optional for MIME entities conforming to this Weekly on Tuesday and Thursday for 5 weeks:
content type. The data type for this property is URL.
3.1.6.32 Unique Identifier Dawson/Stenerson 47 Expires September 1997
RRULE;INTERVAL=5;WKST=SU;BYDAY=TU,TH:WEEKLY
This property is identified by the property name UID. This property Every other week on Monday, Wednesday and Friday until 12/24/94:
defines a persistent, globally unique identifier associated with the
MIME calendar component. Some examples of forms of unique identifiers
would include ISO 9070 formal public identifiers (FPI), X.500
distinguished names, machine-generated _random_ numbers with a
statistically high likelihood of being globally unique and Uniform
Dawson/Stenerson 46 Expires August 1997 RRULE;INTERVAL=2;WKST=SU;BYDAY=MO,WE,FR;=UNTIL=19941224T000000Z:
Resource Locators (URL). If an URL is specified, it is suggested that WEEKLY
the URL reference a service which can provide an updated version of
the MIME calendar component. The following is an example of this
property:
UID:19960401-080045-4000F192713-0052 Every other week on Tuesday and Thursday, for 8 occurrences:
This property is an important method for group scheduling RRULE;INTERVAL=2;WKST=SU;COUNT=8;BYDAY=TU,TH:WEEKLY
applications to match calendar entities with later modification or
deletion requests. Calendaring and scheduling applications that do
not generate this property in MIME calendar components may be
limiting their interoperability with other group scheduling
applications.
This property is optional for MIME entities conforming to this Monthly on the 1st Friday for ten occurrences:
content type. The default data type for this property is STRING.
Optionally, the data type may be URL, MID, or CID.
3.1.6.33 Non-standard Properties RRULE;COUNT=10;BYDAY=1FR:MONTHLY
The MIME Calendaring and Scheduling Content Type provides a _standard Monthly on the 1st Friday until 12/24/94:
mechanism for doing non-standard things_. This extension support is
provided for implementers to _push the envelope_ on the existing
version of the specification. Extension properties are specified by
property and/or property parameter names that have the initial sub-
string of X- (the two character sequence: Capital X character
followed by the Dash character). It is recommended that vendors
concatenate onto this sentinel an added short sub-string 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 may ignore
them. The following might be the ABC vendor's extension for an audio-
clip form of subject property:
X-ABC-MMSUBJ;TYPE=WAVE; VALUE=URL: http://load.noise.org/mysubj.wav RRULE;UNTIL=19941224T000000Z;BYDAY=1FR:MONTHLY
At present, there is no registration authority for names of extension Every other month on the 1st and last Sunday of the month for
properties and property parameters. The data type for this property 10occurrences:
is STRING. Optionally, the data type may be any of the other valid
data types.
3.2 Formal Definition RRULE;COUNT=10;BYDAY=1SU,-1SU:MONTHLY
The following modified Backus-Naur Notation (BNF) is provided to Monthly on the second to last Monday of the month for 6 months:
assist developers in building parsers for the properties of this MIME
content type..
This syntax is written according to the form described in RFC RRULE;COUNT=6;BYDAY=-2MO:MONTHLY
822,but it references just this small subset of RFC 822 literals:
CR = <ASCII CR, carriage return> ; ( 15, 13.) Monthly on the third to the last day of the month, forever:
LF = <ASCII LF, linefeed> ; ( 12, 10.) RRULE;BYMONTHDAY=-3:MONTHLY
Dawson/Stenerson 47 Expires August 1997 Monthly on the 2nd and 15th of the month for 10 occurrences:
CRLF = CR LF
SPACE = <ASCII SP, space> ; ( 40, 32.) RRULE;COUNT=10;BYMONTHDAY=2,15:MONTHLY
HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.) Monthly on the first and last day of the month for 10 occurrences:
All literal property names are valid as upper, lower, or mixed RRULE;COUNT=10;BYMONTHDAY=1,-1:MONTHLY
case.
ws = 1*(SPACE / HTAB) Every 18 months on the 10th thru 15th of the month for 10
occurrences:
; _whitespace,_ one or more spaces or tabs RRULE;COUNT=10;INTERVAL=18;BYMONTHDAY=10,11,12,13,14,15:MONTHLY
wsls = 1*(SPACE / HTAB / CRLF) Monthly on the second to the last day for 5 months. So, if the start
date is August 1996, the event would repeat on 8/30/96, 9/29/96,
10/30/96, 11/29/96, and 12/30/96:
; whitespace with line separators RRULE;COUNT=5;BYMONTHDAY=-2:MONTHLY
value = 7bit / 8bit / quoted-printable / base64 Yearly in June and July for 10 occurrences:
; The value must be in the encoding type specified for the RRULE;COUNT=10;BYMONTH=6,7:YEARLY
; property value.
7bit = <7bit us-ascii printable chars, excluding CR LF> Dawson/Stenerson 48 Expires September 1997
Every other year on January, February, and March for 10 occurrences:
8bit = <MIME RFC 2045 8-bit text> RRULE;COUNT=10;INTERVAL=2;BYMONTH=1,2,3:YEARLY
quoted-printable = <MIME RFC 2045 quoted-printable text> Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
base64 = <MIME RFC 2045 base64 text> RRULE;COUNT=10;INTERVAL=3;BYYEARDAY=1,100,200:YEARLY
; the end of the text is marked with two CRLF sequences Every 20th Monday of the year, forever:
; this results in one blank line before the start of the next RRULE;BYDAY=20MO:YEARLY
; property Monday of Week No. 20, forever:
word = <any printable 7bit us-ascii except []=:., > RRULE;BYWEEKNO=20;BYDAY=MO:YEARLY
vcal_file = [wsls] vcal [wsls] Every Thursday in March, forever:
vcal = _BEGIN_ [ws] _:_ [ws] _VCALENDAR_ [ws] RRULE;BYDAY=TH;BYMONTH=3:YEARLY
1*CRLF
calprop calentities [ws] *CRLF Every Thursday, but only in the summer, forever:
_END_ [ws] _:_ [ws] _VCALENDAR_ [ws] 1*CRLF RRULE;BYDAY=TH;BYMONTH=6,7,8:YEARLY
calentities = calentities *CRLF calentity Every Friday the 13th, forever:
/ calentity RRULE;BYDAY=FR;BYMONTHDAY=13:MONTHLY
calentity = evententity The first Saturday that follows the first Sunday of the month,
forever:
/ todoentity RRULE;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13:MONTHLY
Dawson/Stenerson 48 Expires August 1997 Every four years, the first Tuesday after a Monday in November,
evententity = _BEGIN_ [ws] _:_ [ws] _VEVENT_ [ws] 1*CRLF forever (U.S. Election day):
entprops [ws] *CRLF RRULE;INTERVAL=4;BYDAY=TU;BYMONTHDAY=7,8,9,10,11,12,13:YEARLY
_END_ [ws] _:_ [ws] _VEVENT_ [ws] 1*CRLF The 3rd instance into the month of any of Tuesday, Wednesday or
Thursday, for the next 3 months:
todoentity = _ _ BEGIN [ws] _:_ [ws] _VTODO_ [ws] 1*CRLF RRULE;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3:MONTHLY
entprops [ws] *CRLF The 2nd to last weekday of the month"
_END_ [ws] _:_ [ws] _VTODO_ [ws] 1*CRLF RRULE;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2:MONTHLY
calprops = calprops *CRLF calprop The data type for this property is TEXT.
/ calprop 5.5.1.22 Resources
calprop = _PROFILE_ This property is identified by the property name RESOURCES. This
property defines the equipment or resources needed for the event or
to-do. The property value is an arbitrary text. The property may only
[parms] _:_ value CRLF Dawson/Stenerson 49 Expires September 1997
be specified in the event or to-do calendar component. More than one
resource may be specified as a list of resources separated by the
COMMA character (ASCII decimal 44).
/ _DAYLIGHT_ The property is defined by the following notation:
[params] _:_ value CRLF resource = "RESOURCES" [";" paramlist] ":" resvalist CRLF
/ _CALENDAR_ resvalist = resvalue / resvalue "," resvalist
[params] _:_ _GREGORIAN_ CRLF resvalue = "CATERING" / "CHAIRS" / "COMPUTER PROJECTOR"
/ "EASEL" / "OVERHEAD PROJECTOR" / "SPEAKER PHONE"
/ "TABLE" / "TV" / "VCR" / "VIDEO PHONE" / "VEHICLE"
/ word
/ _GEO_ The following is an example of this property:
[params] _:_ value CRLF RESOURCES:EASEL,PROJECTOR,VCR
/ _PRODID_ The data type for this property is TEXT.
[params] _:_ value CRLF 5.5.1.23 Response Sequence Number
/ _TZ_ This property is identified by the property name RESPONSE-SEQUENCE.
This property defines the revision sequence of the calendar
component. The property may only be specified in an event, to-do,
journal or free/busy calendar component. This property is needed to
properly handle the receipt and processing of a sequence of MIME
calendar components that have been delivered out of order. Such is
the case for store-and-forward based transports. The first response
to an a request is created with response sequence number of "0"
(ASCII decimal 48). If the value is non-zero, it must be specified.
It is incremented each time another reply is sent.
[params] _:_ value CRLF The property is defined by the following notation:
/ _VERSION_ _:_ _1.0_ CRLF respseq = "RESPONSE-SEQUENCE" ":" integer CRLF
;Default is "0".
; The VERSION calendar property MUST appear in the MIME Calendar The following is an example of this property:
; Object.
entprops = entprops *CRLF entprop RESPONSE-SEQUENCE:1
/ entprop The data type for this property is INTEGER.
entprop = [ws] simprop 5.5.1.24 Sequence Number
[params] _:_ value CRLF This property is identified by the property name SEQUENCE. This
property defines the revision sequence of the calendar component used
in a request. The property may only be specified in an event, to-do,
journal or free/busy calendar component. This property is needed to
properly handle the receipt and processing of a sequence of MIME
calendar components that have been delivered out of order. Such is
the case for store-and-forward based transports. The first request is
/ [ws] _AALARM_ Dawson/Stenerson 50 Expires September 1997
created with a sequence number of "0" (ASCII decimal 48). It is
incremented each time the ORGANIZER or OWNER issues a revision to the
request.
Dawson/Stenerson 49 Expires August 1997 The property is defined by the following notation:
[params] _:_ aalarmparts CRLF
/ [ws] _CATEGORIES_ sequence = "SEQUENCE" ":" integer CRLF
;Default is "0".
[params] _:_ 1*catvals CRLF The following is an example of this property:
/ [ws] _CLASS_ SEQUENCE:1
[params] _:_ classvals CRLF The data type for this property is INTEGER.
/ [ws] _DALARM_ 5.5.1.25 Status
[params] _:_ dalarmparts CRLF This property is identified by the property name STATUS. This
property defines the overall status for the calendar component. This
property may only be specified in the event and to-do calendar
components. When specified in an event calendar component, the
property is used to specify the general consensus for the meeting.
The property may only be specified in the to-do calendar component
when the ATTENDEE property is not specified. For group scheduled
events and to-dos, the status is specified on an individual basis in
the ATTENDEE property.
/ [ws] _EXDATE_ The property is defined by the following notation:
[params] _:_ xdatevals CRLF status = "STATUS" [";" paramlist] ":" statvalue CRLF
/ [ws] _MALARM_ statvalue = "NEEDS ACTION" ;Indicates to-do needs action.
/ "COMPLETED" ;Indicates to-do completed
/ "TENTATIVE" ;Indicates event is being
;tentatively scheduled
/ "CONFIRMED" ;Indicates event is definite
/ "CANCELLED" ;Indicates event was canceled
[params] _:_ malarmparts CRLF The following is an example of this property:
/ [ws] _PALARM_ STATUS:TENTATIVE
[params] _:_ palarmparts CRLF The data type for this property is TEXT.
/ [ws] _RDATE_ 5.5.1.26 Summary
[params] _:_ rdatevals CRLF This property is identified by the property name SUMMARY. This
property defines a short summary or subject for the calendar
component. The property may only be specified in the event, to-do and
alarm calendar component.
/ [ws] _RESOURCES_ The property is defined by the following notation:
[params] _:_ 1*resvals CRLF summary = "SUMMARY" [";" paramlist] ":" text CRLF
/ [ws] _STATUS_ Dawson/Stenerson 51 Expires September 1997
The following is an example of this property:
[params] _:_ statvals CRLF SUMMARY:Department Party
simprop = _ATTACH_ / _ATTENDEE_ / _DCREATED_ / _COMPLETED_ The data type for this property is TEXT.
/ _DESCRIPTION / _ _DTSTART_ / _DUE_ / _DTEND_ / _EXRULE_ 5.5.1.27 Time Transparency
/ _LAST-MODIFIED_ / _LOCATION_ / _RNUM_ / _PRIORITY_ This property is identified by the property name TRANSP. This
property defines whether an event is transparent or not to free/busy
time searches. This property may only be specified in an event
calendar component.
/ _RELATED-TO_ / _RESPONSE-SEQUENCE_ / _RRULE_ The property is specified by the following notation:
/ _SEQUENCE_ / _SUMMARY_ / _TRANSP_ / _URL_ / _UID_ transp = "TRANSP" [";" paramlist] ":" transvalue CRLF
/ _X-_ word transvalue = "BUSY" ;Opaque/blocks on free/busy searches
;Default value is BUSY
/ "OUT" ;Opaque/blocks on free/busy searches
/ "PRIVATE" ;Opaque/blocks on free/busy searches
/ "CONFIDENTIAL" ;Opaque/blocks on free/busy searches
/ "TRANSPARENT" ;Transparent on free/time searches
aalarmparts = 0*3(strnosemi _;_) strnosemi The following is an example of this property for an event that is
transparent or does not block on free/busy time searches:
; runTime, snoozeTime, repeatCount, audioContent TRANSP:TRANSPARENT
Dawson/Stenerson 50 Expires August 1997 The following is an example of this property for an event that is
catvals = _APPOINTMENT_ / _BUSINESS_ / _EDUCATION_ / _HOLIDAY_ opaque or blocks on free/busy time searches:
/ _MEETING_ / _MISCELLANEOUS_ / _NOT-IN-OFFICE_ TRANSP:BUSY
/ _NON-WORKING-HOURS_ / _PERSONAL_ / _PHONE CALL_ The data type for this property is TEXT.
/ _SICK DAY_ / _SPECIAL OCCASION_ / _TRAVEL_ 5.5.1.28 Time Zone Name
/ _VACATION_ / _X-_ word / value This property is identified by the property name TZNAME. This
property specifies the customary designation for a time zone
descripiton. This property may only be specified in the Time Zone
Calendar Component.
classvals = _PUBLIC_ / _PRIVATE_ / _CONFIDENTIAL_ / _X-_ word This property is defined by the following notation:
/ value tzname = "TZNAME" [";" paramlist] ":" text CRLF
dalarmparts = 0*3(strnosemi _;_) strnosemi The following are examples of this property:
; runTime, snoozeTime, repeatCount, displayString TZNAME: EST
malarmparts = 0*5(strnosemi _;_) strnosemi TZNAME: PDT
; runTime, snoozeTime, repeatCount, addressString, The data type for this property is TEXT.
; subjectstring, noteString
palarmparts = 0*3(strnosemi _;_) strnosemi Dawson/Stenerson 52 Expires September 1997
; runTime, snoozeTime, repeatCount, procedureName 5.5.1.29 Time Zone Offset
rdatevals = 1*value This property is identified by the property name TZOFFSET. This
property specifies the offset from UTC for a time zone. This property
may only be specified in a Time Zone Calendar Component. A Time Zone
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 represents time zones east, or ahead of
UTC. Negative numbers represents time zones west of, or behind UTC.
; One or more date/time values The property is defined by the following notation:
resvals = _CATERING_ / _CHAIRS_ / _EASEL_ / _PROJECTOR_ / _VCR_ tzoffset = "TZOFFSET" ":" utc-offset CRLF
/ _VEHICLE_ / _X-_ word / value The following are examples of this property:
statvals = _ACCEPTED_ / _NEEDS ACTION_ / _SENT_ / _TENTATIVE_ TZOFFSET:-0500
/ _CONFIRMED_ / _DECLINED_ / _COMPLETED_ / _DELEGATED_ TZOFFSET:+0530
/ _X-_ word / value The data type for this property is UTC-OFFSET.
params = _;_ [ws] paramlist 5.5.1.30 Time Zone Transition Time
paramlist = paramlist [ws] _;_ [ws] param This property is identified by the property name TZTRANS. This
property specifies the time of day when a time zone transitions to
the specified time observance (e.g., into daylight savings time).
/ param The property is defined by the following notation:
param = _TYPE_ [ws] _=_ [ws] ptypeval tztrans = "TZTRANS" ":" time CRLF
/ [_VALUE_ [ws] _=_ [ws]] pvalueval The following are examples of this property:
/ [_ENCODING_ [ws] _=_ [ws]] pencodingval TZTRANS:020000
/ _CHARSET_ [ws] _=_ [ws] charsetval The data type for this property is TIME.
Dawson/Stenerson 51 Expires August 1997 5.5.1.31 Uniform Resource Locator
/ _DATATYPE_ [ws] _=_ [ws] dtypeval
/ _LANGUAGE_ [ws] _=_ [ws] langval This property is identified by the property name URL. This property
defines a Uniform Resource Locator (URL) associated with the
iCalendar Object. This property may be specified in the event, to-do,
journal, free/busy, and alarm calendar components.
/ _MEMBER_ [ws] _=_ [ws] <RFC 822 address specification> The property is defined by the following notation:
/ _ROLE_ [ws] _=_ [ws] roleval url = "URL" ":" url CRLF
/ _STATUS_ [ws] _=_ [ws] statuval The following is an example of this property:
/ _X-_ word [ws] _=_ [ws] word URL:http://abc.com/pub/calendars/jsmith/mytime.or3
/ knowntype The data type for this property is URL.
ptypeval = knowntype / attendtype / _X-_ word Dawson/Stenerson 53 Expires September 1997
knowntype = _ _ BASIC / _WAVE_ / _X-_ word / value 5.5.1.32 Unique Identifier
attendtype = _INDIVIDUAL_ / _GROUP_ / _RESOURCE_ / _UNKNOWN_ This property is identified by the property name UID. This property
defines the persistent, globally unique identifier for the calendar
component. The property may be specified in the event and to-do
calendar components.
pvalueval = _INLINE_ / _URL_ / _CONTENT-ID_ / _CID_ / The property is defined by the following notation:
/ _MESSAGE-ID_ / _MID_ / _X-_ word uid = "UID" [";" paramlist] ":" text CRLF
pencodingval = _7BIT_ / 8BIT _ _ / _QUOTED-PRINTABLE_ / _BASE64_ The following is an example of this property:
/ _X-_ word UID:19960401-080045-4000F192713-0052
charsetval = <a character set string as defined in RFC 2046> This property is an important method for group scheduling
applications to match requests with later replies, modifications or
deletion requests. Calendaring and scheduling applications that do
not generate this property in event and to-do calendar components may
be limiting their interoperability with other group scheduling
applications.
dtypeval = _AALARM_ / _BOOLEAN_ / _CID_ / _DALARM_ / _DATE-TIME_ The data type for this property is TEXT.
/ _DST-RULE_ / _D-T-LIST_ / _DURATION_ / _FLOAT_ 5.5.1.33 Non-standard Properties
/ _FLOAT-LIST_ _ / INTEGER_ / _INTEGER-LIST_ / _MALARM_ 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 specification. Extension properties are specified by
property and/or property parameter names that have the prefix text of
"X-" (the two character sequence: LATIN CAPITAL LETTER X character
followed by the HYPEN-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
may ignore them.
/ _MID / _ _ PALARM_ / RFC822-ADDRESS _ _ / _RRULE_ The property is defined by the following notation:
/ _STRING_ / _STRING-LIST_ / _TIME-OFFSET_ / _URL_ extension = "X-" [vendorid] word [";" paramlist] ":" value
/ _X-_ word vendorid = 1*char "-" ;Vendor identification prefix text
langval = <a language string as defined in RFC 1766> The following might be the ABC vendor's extension for an audio-clip
form of subject property:
roleval = _ATTENDEE_ / _ORGANIZER_ / _OWNER_ / _X-_ word X-ABC-MMSUBJ;TYPE=WAVE; VALUE=URL: http://load.noise.org/mysubj.wav
statusval = _ACCEPTED_ / _ _ / NEEDS ACTION _SENT_ / _TENTATIVE_ At present, there is no registration authority for names of extension
properties and property parameters. The data type for this property
/ _CONFIRMED_ / _DECLINED_ / _COMPLETED_ / _DELEGATED_ Dawson/Stenerson 54 Expires September 1997
is TEXT. Optionally, the data type may be any of the other valid data
types.
/ _X-_ word 5.6 Complete Format Definition
strnosemi = *(*nonsemi (_\;_ / _\_ CRLF)) *nonsemi The following modified Backus-Naur Notation (BNF) is provided to
assist developers in building parsers for the properties of this
content type.
Dawson/Stenerson 52 Expires August 1997 CHAR = <Any character in the selected character set>
; To include a semicolon in this string, it must be escaped DIGIT = <Any ASCII decimal digit> ;0-9
CTL = <Any control character in the selected character set>
CR = <ASCII CR, carriage return, ASCII decimal 13>
LF = <ASCII LF, line feed, ASCII decimal 10>
SPACE = <ASCII SP, space, ASCII decimal 32>
HTAB = <ASCII HT, horizontal tab, ASCII decimal 9>
CLRF = CR LF
LWSP-char = SPACE / HTAB ;Semantics equals SPACE
linear-white-space = 1*(CRLF LWSP-char)
;Semantics is SPACE CRLF, which indicates folding
WORD = ATOM / quoted-string
quoted-string = <"> *(qtext/quoted-pair) <"> ; Regular qtext or
; quoted chars.
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including linear-white-space>
quoted-pair ="\" CHAR ; may quote any char
ATOM = 1*<any CHAR except specials, SPACE and CTLs>
; with a _\_ character. ;
;Definition of a line of content information
;
contentline = [group "."] name [";" paramlist] ":" value CRLF
;Folding permitted on content lines.
nonsemi = <any non-control ASCII except _;_> group = atom ;As defined in [RFC 822]
3.3 Basic Recurrence Rule Grammar name = x-name / iana-name ;An iCalendar attribute/property
The specification of recurring events can be simplified by the use of x-name = <The two characters "X-" or "x-" followed, with no
a grammar or rule notation. This specification makes use of the Base intervening white space, by any atom>
Recurrence Rule Grammar from the [XAPIA].
A recurrence rule is a string or clear-text encoding of a recurrence iana-name = <A publicly defined name, registered with IANA>
specification. A recurrence rule is composed of several components. A
rule begins with a frequency which describes the type of repeating
event (e.g., daily, weekly, etc.). This is followed by an interval
which indicates how often the frequency repeats (i.e., daily, every
third day, etc.). This can be followed by optional frequency modifier
information and either an end date or a duration.
Below is the form of a typical rule. This example causes events to be paramlist = parameter / paramlist ";" parameter
generated every other week on Tuesday and Thursday, for 8
occurrences:
W2 TU TH #4 parameter = encodingparm
/ valuetypeparm ;If not present => inline value
/ charsetparm
/ languageparm
/ [parmtype "="] parmvalues
Where, W is the Frequency, 2 is the Interval, TU and TH are the encodingparm = "encoding" "=" encodetype
optional Frequency Modifiers, and #4 is the Duration.
The basic recurrence rule grammar supports six types of repetition. Dawson/Stenerson 55 Expires September 1997
The six types follow the same form with only the frequency name and encodetype = "8bit" ;From [RFC 2045]
optional modifier information changing from one type of frequency to / "7bit" ;From [RFC 2045]
the next. / "base64" ;From [RFC 2045]
/ "quoted-printable" ;From [RFC 2045]
3.3.1 Daily Rule valuetypeparm = "value" "=" valuetype
The daily rule is used for specifying repeating events based on an valuetype = "url"
interval of a day or more. These can range from every day to every / "text"
200th day and beyond. The daily rule begins with the letter D / "date"
followed by an interval (representing days) and an optional duration / "time"
or end date. / "date-time"
/ "period"
/ "duration"
/ "boolean"
/ "integer"
/ "float"
/ "rfc822-address"
/ "utc-offset"
/ x-token
/ iana-value
Some examples follow: iana-value = <A publicly defined extension value type, registered
with IANA, as specified by this document>
Daily for 10 occurrences: charsetparm = "charset" "=" charset ;As defined in [RFC 2047]
D1 #10
Daily until 12/24/94: languageparm = "language" "=" language ;As defined in [RFC 1766]
D1 19941224T000000Z
Every other day - forever: parmtype = x-token / iana-ptype
D2 #0
Dawson/Stenerson 53 Expires August 1997 iana-ptype = <A publicly defined extension parameter type,
Every 10 days, 5 occurrences: registered with IANA, as specified by this document>
D10 #5
3.3.2 Weekly Rule parmvalues = parmvalue / parmvalues "," parmvalue
The weekly rule is used for specifying repeating events based on an parmvalue = x-name / iana-pvalue
interval of a week or more. The basic weekly rule has the same form
as the daily rule except that the rule begins with a W and can
contain an optional list of weekdays the events are generated on. For
weekly rules, the interval represents weeks. Some examples follow:
Weekly for 10 occurrences: iana-pvalue = <A publicly defined extension parameter value,
W1 #10 registered with IANA, as specified by this document>
Weekly until 12/24/94: value = url / text / date / time/ date-time / period /
W1 19941224T000000Z / duration / boolean / integer / float / rfc822-address
/ utc-offset / iana-value
Every other week - forever: iana-value = <A publicly defined property value data type,
W2 #0 registered with IANA, as defined in this document>
Weekly on Tuesday and ;
Thursday for 5 weeks: ;Data Types
W1 TU TH #5 ;
url = <As defined by [RFC 1738]>
Every other week on Monday Wednesday and Friday until 12/24/94: Dawson/Stenerson 56 Expires September 1997
W2 MO WE FR 19941224T000000Z text = <Any CHAR include a bare CR or a bare LF but
not a CRLF sequence>
3.3.3 Monthly Rule date-fullyear = 4DIGIT
date-month = 2DIGIT ;01-12
date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
;based on month/year
full-date = date-fullyear date-month date-mday
date = fulldate *["," fulldate]
The monthly rule is used for specifying repeating events base on an time-hour = 2DIGIT ;00-24
interval of a month or more. There are two types of monthly time-minute = 2DIGIT ;00-60
recurrence rules. One for by-position and one for by-day. The by- time-second = 2DIGIT ;00-59
position rule allows weekdays in the month to be specified in time-numzone = ("+" / "-") time-hour time-minute
relation to their occurrence in the month. An example would be to time-zone = "Z" / time-numzone
specify the third Sunday of the month or the last Friday of the full-time = time-hour time-minute time-second [time-zone]
month. An occurrence specifier may be used in monthly by-position time = fulltime *["," fulltime]
rules. The occurrence specifiers control which occurrence of a
weekday in a month an event occurs on:
1+, 2+, ... 5+ for the first occurrence, second, ...fifth date-time = date "T" time ;As specified above in date and time
occurrence of the month.
1-, 2-, ... 5- for the last occurrence, second to last occurrence, dur-second = 1*DIGIT "S"
etc. dur-minute = 1*DIGIT "M" [dur-second]
dur-hour = 1*DIGIT "H" [dur-minute]
dur-time = "T" (dur-hour / dur-minute / dur-second)
A 2+ FR SA would indicate the second occurrence of Friday and dur-week = 1*DIGIT "W"
Saturday in the month. A 1- MO would indicate the first occurrence of dur-day = 1*DIGIT "D"
Monday working from the end of the month backwards (i.e., the last dur-month = 1*DIGIT "M" [dur-day]
occurrence). A 2- MO would be the second to the last Monday of the dur-year = 1*DIGIT "Y" [dur-month]
month. dur-date = (dur-day / dur-month / dur-year) [dur-time]
A by-day rule allows actual day numbers to be specified such as the duration = "P" (dur-date / dur-time / dur-week)
12th day or 29th day.
Dawson/Stenerson 54 Expires August 1997 period-explicit = date-time "/" date-time
The by-position rule begins with a MP and the by-day rule begins with ;ISO 8601 complete representation basic format for a period of time
a MD. The interval in monthly rules represents months. Some examples ;consisting of a start and end. The start must be before the end.
follow:
Monthly on the 1st Friday for ten occurrences: period-start = date-time "/" duration
MP1 1+ FR #10 ;ISO 8601 complete representation basic format for a period of time
;consisting of a start and duration of time.
period = period-explicit / period-start
Monthly on the 1st Friday until 12/24/94: boolean = "TRUE" / "FALSE"
MP1 1+ FR 19941224T000000Z
Every other month on the 1st and last integer = ["+" / "-"] *DIGIT
Sunday of the month for 10 occurrences:
MP2 1+ SU 1- SU #10
Every six months on the 2nd Monday float = ["+" / "-"] *DIGIT ["." *DIGIT]
through Friday for 10 occurrences:
MP6 2+ MO TU WE TH FR #10
Monthly on the second last Monday of the month for 6 months: rfc822-address = addr-spec / [phrase] "<" addr-spec ">"
MP1 2- MO #6 addr-spec = local-part "@" domain ;RFC 822 address
local-part = WORD *("." WORD)
domain = domain-ref *("." domain-ref)
Monthly on the third to the last day of the month, forever: Dawson/Stenerson 57 Expires September 1997
domain-ref = ATOM
phrase = 1*WORD
MD1 3- #0 utc-offset = time-numzone ;As defined above in time
Monthly on the 2nd and 15th of the month for 10 occurrences: ;
MD1 2 15 #10 ;Definition of an iCalendar Object
;
icalobject = "BEGIN" ":" "VCALENDAR" CRLF
icalbody
"END" ":" "VCALENDAR" CRLF [icalobject]
In the next example LD refers to _LastDay_ in a monthly recurrence ;
rule. Monthly on the 1st and last day of the month for 10 ;Definition of an iCalendar Property
occurrences: ;
MD1 1 LD #10 or MD1 1 1- #10 property = [group "."] propname [";" parmlist] ":" value CRLF
Every 18 months on the 10th through 15th of the month for 10 propname = <any properties defined in this document>
occurrences: / iana-prop / x-token
MD18 10 11 12 13 14 15 #10
Monthly on the second to the last day for 5 months. So, if the x-token = <The two characters "X-" or "x-" followed, with no
start date is August 1996, the event would repeat on 8/30/96, intervening white space, by any atom>
9/29/96, 10/30/96, 11/29/96, and 12/30/96:
MD1 2- #5
3.3.4 Yearly Rule iana-prop = <A publicly defined extension property, registered
with IANA, as specified by this document>
The yearly rule is used for specifying repeating events based on an ;
interval of a year or more. There are two types of yearly recurrence ;Definition of the Calendar Components and Calendar Properties
rules. One for by-month and one for by-day. The by-month rule allows ;
specific months out of the year to be specified. The by-day allows icalbody = calprops 1*component
specific days to be specified. In the by-month rule, the day in the
month the rule is to occur on is determined from the initial
appointment.
Dawson/Stenerson 55 Expires August 1997 calprops = [calscale] [geo] prodid [profile] [prof-version]
The by-month rule begins with a YM and the by-day rule begins with a [source] [name] version
YD. The interval in yearly rules represents years. Some examples
follow:
Yearly in June and July for 10 occurrences: component = 1*(eventc / todoc / journalc / freebusyc /
YM1 6 7 #10 / timezonec)
Every other year on January, Feb, and March for 10 occurrences: ;Event Component
YM2 1 2 3 #10 eventc = "BEGIN" ":" "VEVENT" CRLF
*eventprop *alarmc
"END" ":" "VEVENT" CRLF
Every 3rd year on the 1st, 100th and 200th day for 10 occurrences: eventprop = *attach *attendee *categories [class]
YD3 1 100 200 #10 / [created] description dtend dtstart *exdate
/ *exrule *last-mod [location] [priority]
/ *related *resources *rdate *rrule
/ [resp-seq] / [seq] [status] [summary] [transp]
/ [uid] *url
3.3.5 Grammar ;To-do Component
todoc = "BEGIN" ":" "VTODO" CRLF
*todoprop *alarmc
"END" ":" "VTODO" CRLF
[Editor's Note: The format of this BNF will be changed to the Dawson/Stenerson 58 Expires September 1997
RFC 822 ABNF in the next version of the draft.] todoprop = *attach *attendee *categories [class] [completed]
/ [created] description dtstart due *exdate
/ *exrule *last-mod [location] priority
/ *related *resources *rdate *rrule [resp-seq]
/ [seq] [status] [summary] [transp] [uid] *url
{} 0 or more ;Journal Component
journalc = "BEGIN" ":" "VJOURNAL" CRLF
*jourprop
"END" ":" "VJOURNAL" CRLF
[] 0 or 1 jourprop = *attach *categories [class] [created] description
/ dtstart *last-mod *related [resp-seq] [seq] [uid] *url
start ::= <daily> [<enddate>] | ;Free/Busy Component
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
*fbprop
"END" ":" "VFREEBUSY" CRLF
<weekly> [<enddate>] | fbprop = *attendee [created] [duration] [dtend] [dtstart]
/ *freebusy *last-mod *related [resp-seq] [seq] [uid]
/ *url
<monthlybypos> [<enddate>] | ;Alarm Component
alarmc = "BEGIN" ":" "VALARM" CRLF
*alarmprop
"END" ":" "VALARM" CRLF
<monthlybyday> [<enddate>] | alarmprop = *attach [created] [description] dtstart duration
/ *last-mod *related repeat [summary] *url
<yearlybymonth> [<enddate>] | ;Time Zone Component
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
*tzprop
"END" ":" "VTIMEZONE" CRLF
<yearlybyday> [<enddate>] tzprop = [created] [daylight] [dtend] dtstart [rdate / rrule]
[tzname] tzoffset [tztrans] [uid]
digit ::= <0|1|2|3|4|5|6|7|8|9> ;
;Definition of the Calendar Properties
;
calscale = "CALSCALE" ":" calvalue CRLF
calvalue = "GREGORIAN" / iana-scale
iana-scale = <Any other designator for a calendar scale
registered with IANA>
digits ::= <digit> {<digits>} geo = "GEO" ":" geovalue CRLF
geovalue = (float ";" float )/ url
enddate ::= ISO 8601_date_time value(e.g., 19940712T101530Z) prodid = "prodid" ":" pidvalue CRLF
pidvalue = (guid-text / url)
;Any text that describes the product and version
;and that is generally assured of being unique.>
interval ::= <digits> Dawson/Stenerson 59 Expires September 1997
profile = "PROFILE" ": profvalue CRLF
profvalue = " component "-" action
component = "EVENT" / "TODO" / "JOURNAL" / "FREEBUSY"
/ iana-component / x-token
action = <Any IANA registered iCalendar action type.>
iana-component = <Any other component registered with IANA>
duration ::= #<digits> prof-version = "PROFILE-VERSION" ":" profvalue CRLF
profvalue = iana-prfver / x-token
iana-prfver = <A IANA registered iCalendar profile identifier>
lastday ::= LD source = "SOURCE" ":" url CRLF
plus ::= + name = "NAME" ":" text CRLF
minus ::= - version = "VERSION" ":" vervalue CRLF
vervalue = "2.0" / x-token
daynumber ::= <1-31> [<plus>|<minus>]| <lastday> ;Component Properties
attach = [group "."] "ATTACH" ":" url CRLF
daynumberlist ::= daynumber {<daynumberlist>} attendee = [group "."] "ATTENDEE" [";" attparamlist] ":"
(rfc822-address / url) CRLF
Dawson/Stenerson 56 Expires August 1997 attparamlist = attparam / attparamlist ";" attparam
month ::= <1-12> / paramlist / paramlist ";" attparam
/ paramlist ";" attparamlist ";" attparam
monthlist ::= <month> {<monthlist>} attparam = typeparm / roleparm / statusparm / rsvpparm
/ expectparm / memberparm
day ::= <1-366> typeparm = "TYPE" "="
("INDIVIDUAL" ; An individual
/ "GROUP" ; A group of individuals
/ "RESOURCE" ; A physical resource
/ "ROOM" ; A room resource
/ "UNKNOWN") ; Otherwise not known
;Default value is UNKNOWN
daylist ::= <day> {<daylist>} roleparm = "ROLE" "="
("ATTENDEE" ; Indicates a regular attendee
/ "OWNER" ; Indicates owner of event or to-do
/ "ORGANIZER" ; Indicates organizer of event or to-do
/ "DELEGATE") ; Indicates delegate to event or to-do
;Default is ATTENDEE
occurrence ::= <1-5><plus> | <1-5><minus> statusparm = "STATUS" "="
("NEEDS-ACTION" ; Indicates event or to-do needs action
/ "ACCEPTED" ; Indicates event or to-do accepted
/ "DECLINED" ; Indicates event or to-do not accepted
/ "TENTATIVE" ; Indicates event or to-do tentatively
; accepted. Status may change in the future.
/ "COMPLETED" ; Indicates to-do was completed.
; COMPLETED property has date/time completed.
weekday ::= <SU|MO|TU|WE|TH|FR|SA> Dawson/Stenerson 60 Expires September 1997
/ "DELEGATED" ; Indicateds event or to-do delegated
; to another ATTENDEE
/ "CANCELED") ; Indicates event or to-do canceled for
; ATTENDEE
;Default is NEEDS-ACTION
weekdaylist ::= <weekday> {<weekdaylist>} rsvpparm = "RSVP" "=" ("YES" / "NO")
;Default is NO
occurrenceweekday ::= [<occurrence>] <weekday> expectparm = "EXPECT" "="
("FYI" ; Indicates request is for your info
/ "REQUIRE" ; Indicates presence is required
/ "REQUEST" ; Indicates presence is requested
/ "IMMEDIATE") ; Indicates an immediate response needed
;Default is FYI
occurenceweekdaylist ::= <occurenceweekday> memberparm = rfc822-address ; Indicates a group or mailing list
{<occurenceweekdaylist>} categories = "CATEGORIES" [";" paramlist] ":" catvalue CRLF
daily ::= D<interval> [<duration>] catvalue = cat1value [,cat1value] / cat2value [, cat2value]
weekly ::= W<interval> [<weekdaylist>] [<duration>] cat1value = "APPOINTMENT" / "BUSINESS" / "EDUCATION" / "HOLIDAY"
/ "MEETING" / "MISCELLANEOUS" / "NON-WORKING HOURS"
/ "NOT IN OFFICE" / "PERSONAL" / "PHONE CALL"
/ "SICK DAY" / "SPECIAL OCCASION" / "TRAVEL"
/ "VACATION" / word
;Used in event and to-do components
cat2value = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
/ x-token / iana-word
;Used in alarm component
monthlybypos ::= MP<interval> [<occurrenceweekdaylist>] class = "CLASS" [";" paramlist] ":" classvalue CRLF
classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / x-token
;Default is PUBLIC
[<duration>] created = "CREATED" ":" date-time CRLF
monthlybyday ::= MD<interval> [<daynumberlist>] [<duration>] completed = "COMPLETED" ":" date-time CRLF
yearlybymonth ::= YM<interval> [<monthlist>] [<duration>] daylight = "DAYLIGHT" ":" boolean CRLF
;Default value is FALSE
yearlybyday ::= YD<interval> [<daylist>] [<duration>] description = "DESCRIPTION" [";" paramlist] text CRLF
3.3.6 Grammar Glossary due = "DUE" ":" date-time CRLF
enddate Controls when a repeating event terminates. The enddate duration = "DURATION" ":" duration CRLF
is the last time an event can occur.
Interval Defines the frequency in which a rule repeats. dtstart = "DTSTART" ":" date-time CRLF
duration Controls the number of events a rule generates. dtend = "DTEND" ":" date-time CRLF
Lastday Can be used as a replacement to daynumber to indicate exdate = "EXDATE" ":" date-time *["," date-time] CRLF
the last day of the month.
daynumber A number representing a day of the month. Dawson/Stenerson 61 Expires September 1997
exrule = "EXRULE" [";" rparamlist] ":" rvalue CRLF
month A number representing a month of the year. freebusy = "FREEBUSY" [";" fbparmlist] ":" fbvalue CRLF
day A number representing a day of the year. fbparmlist = fbparam / paramlist ";" fbparam
/ fbparam ";" fbparmlist
fbparam = fbtype / fbstatus
occurrence Controls which week of the month a particular weekday fbtype = "TYPE" "=" ("FREE" or "BUSY")
event occurs. ;Default is BUSY
Dawson/Stenerson 57 Expires August 1997 fbstatus = "STATUS" "="
weekday A symbol representing a day of the week. "BUSY" ;Represents busy time interval
/ "OUT" ;Represents out-of-office, non-working
;hours, or other unavailable interval
/ "PRIVATE" ;Represents private unavailable time
/ "CONFIDENTIAL" ;Represents confidential unavailable
;time
;Default is BUSY
daily Defines a rule that repeats on a daily basis.