Internet DRAFT - draft-dawson-csct
draft-dawson-csct
Network Working Group Frank Dawson
Internet Draft IBM Corporation
<draft-dawson-csct-01.txt> November 26, 1996
Expires June 1997
MIME Calendaring and Scheduling Content Type
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months. Internet-Drafts may be updated, replaced, or made obsolete by
other documents at any time. It is not appropriate to use Internet-
Drafts as reference material or to cite them other than as a "working
draft" or "work in progress".
To learn the current status of any Internet-Draft, please check the
1id-abstracts.txt listing contained in the Internet-Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net
(Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
Rim).
Distribution of this document is unlimited.
Abstract
There is a clear need to provide and deploy interoperable calendaring
and scheduling services for the Internet. Current group scheduling
and Personal Information Management (PIM) products are being extended
for use across the Internet, today, in proprietary ways. This
document has been defined to provide the a definition of a MIME
message format for openly exchanging calendaring and scheduling
information across the Internet.
This memo is meant to serve as the basis for registration of such a
MIME media type per [RFC1521]. The proposed media type value is
"TEXT/CALENDAR". This string would label a media type containing
calendaring and scheduling information encoded as text characters
formatted in a manner outlined below.
This MIME media type provides a standard content type for capturing
calendar event and todo information. It also can be used to convey
free/busy time information. The content type is suitable as a MIME
message entity that can be transferred over MIME based email systems
or using HTTP. In addition, the content type is useful as an object
for interactions between desktop applications using the operating
system clipboard, drag/drop or file systems capabilities.
It is expected that additional documents will be created for this
content type that define usage profiles for specific sets of
Dawson 1 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
calendaring and scheduling capabilities. The format for these profile
documents is also defined by this document.
The document is also intended to serve as a standard for message
profiles that will provide an interoperability method for exchanging
over the Internet event-requests, reply to event-requests,
modification notices for event requests, cancellation notices for
event-requests, todo-requests, reply to todo-requests, modification
notices for todo requests, cancellation notices for todo-requests,
requesting free/busy time and replying to free/busy time requests
between different calendaring and scheduling products. This is the
subject of another Internet Draft.
Table of Contents
1. Introduction........................................................4
2. TEXT/CALENDAR Registration Information..............................5
3. Intended Use........................................................6
3.1 Published specification ..........................................6
3.1.1 Existing Message Header Fields ................................6
3.1.1.1 Content-Type Header Field .................................6
3.1.1.1.1 CHARSET Header Field Parameter .........................6
3.1.1.2 Content-ID Header Field ...................................7
3.1.1.3 Content-Language ..........................................7
3.1.1.4 Message-ID Header Field ...................................7
3.1.1.5 Transfer-Encoding Header Field ............................7
3.1.2 Additional Content Type Parameter .............................7
3.1.2.1 Profile ...................................................7
3.1.3 Content Syntax Considerations .................................8
3.1.3.1 Property ..................................................8
3.1.3.2 Delimiters ................................................9
3.1.3.3 Property Value Transfer Encoding .........................10
3.1.3.4 Property Value Character Set .............................10
3.1.3.5 Property Value Language ..................................11
3.1.3.6 Property Value Data Type .................................11
3.1.3.7 Date and Time ............................................14
3.1.3.8 Time Duration ............................................15
3.1.3.9 Value Location ...........................................16
3.1.3.10 Binary Property Values ..................................17
3.1.3.11 Recurrence Rule Grammar .................................17
3.1.4 Body Delimiter Properties ....................................17
3.1.4.1 Calendar Object ..........................................17
3.1.4.2 Event Component ..........................................18
3.1.4.3 Todo Component ...........................................18
3.1.5 Calendar Object Properties ...................................19
3.1.5.1 Calendar Content Profile .................................19
3.1.5.2 Daylight Savings Rule ....................................21
3.1.5.3 Geographic Position ......................................22
3.1.5.4 Product Identifier .......................................22
3.1.5.5 Time Zone ................................................23
3.1.5.6 Version ..................................................23
3.1.6 Event and Todo Component Properties ..........................23
3.1.6.1 Attachment ...............................................23
3.1.6.2 Attendee .................................................24
Dawson 2 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
3.1.6.3 Audio Reminder ...........................................28
3.1.6.4 Categories ...............................................30
3.1.6.5 Classification ...........................................31
3.1.6.6 Date/Time Created ........................................32
3.1.6.7 Date/Time Completed ......................................32
3.1.6.8 Description ..............................................32
3.1.6.9 Display Reminder .........................................33
3.1.6.10 Due Date/Time ...........................................33
3.1.6.11 Duration ................................................33
3.1.6.12 End Date/Time ...........................................34
3.1.6.13 Exception Date/Times ....................................34
3.1.6.14 Exception Rule ..........................................34
3.1.6.15 Last Modified ...........................................35
3.1.6.16 Location ................................................35
3.1.6.17 Mail Reminder ...........................................35
3.1.6.18 Number Recurrences ......................................36
3.1.6.19 Priority ................................................36
3.1.6.20 Procedure Reminder ......................................36
3.1.6.21 Related To ..............................................37
3.1.6.22 Recurrence Date/Times ...................................38
3.1.6.23 Recurrence Rule .........................................38
3.1.6.24 Resources ...............................................38
3.1.6.25 Response Sequence Number ................................39
3.1.6.26 Sequence Number .........................................40
3.1.6.27 Start Date/Time .........................................40
3.1.6.28 Status ..................................................40
3.1.6.29 Summary .................................................42
3.1.6.30 Time Transparency .......................................42
3.1.6.31 Uniform Resource Locator ................................42
3.1.6.32 Unique Identifier .......................................42
3.1.6.33 Non-standard Properties .................................43
3.2 Formal Definition ...............................................43
3.3 Basic Recurrence Rule Grammar ...................................49
3.3.1 Daily Rule ...................................................49
3.3.2 Weekly Rule ..................................................50
3.3.3 Monthly Rule .................................................50
3.3.4 Yearly Rule ..................................................51
3.3.5 Grammar ......................................................52
3.3.6 Grammar Glossary .............................................53
3.3.7 Policies .....................................................54
4. Registration of Content Type Profiles..............................55
4.1 Define the profile ..............................................55
4.2 Post the profile definition .....................................56
4.3 Allow a comment period ..........................................56
4.4 Submit the profile for approval .................................56
4.5 Profile Change Control ..........................................56
4.6 Registration of New Content Type Properties .....................57
4.6.1 Define the property ..........................................57
4.6.2 Post the Property definition .................................58
4.6.3 Allow a comment period .......................................58
4.6.4 Submit the property for approval .............................58
4.7 Content Type Property Change Control ............................58
5. File extension.....................................................59
6. Macintosh File Type Code...........................................59
Dawson 3 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
7. Bibliography.......................................................59
8. Acknowledgments....................................................60
9. Author's Address...................................................60
10. Examples..........................................................61
11. Extended Recurrence Grammar.......................................62
11.1 Rule Introduction ..............................................62
11.2 Grammar ........................................................64
11.3 Glossary .......................................................65
11.4 Policies .......................................................66
11.5 Examples .......................................................68
1. Introduction
The use of mail enabled applications such as calendaring and
scheduling has grown considerably in the last decade. Enterprise and
inter-enterprise business has become dependent on rapid scheduling of
events and actions using this information technology. The store-and-
forward characteristic of electronic messaging technologies has been
shown to be complementary to the asynchronous nature of group
communications. However, the longer term growth of mail enabled
applications, such as calendaring and scheduling, is currently
limited by the lack of Internet standards for the message content
types that are central to these groupware applications. This
specification is intended to progress the level of interoperability
possible between dissimilar calendaring and scheduling applications
that communicate using an SMTP or MIME transport.
This specification defines a MIME content type for exchanging
electronic calendaring and scheduling information. The MIME
Calendaring and Scheduling Content Type allows for the capture and
exchange of information normally stored within a calendaring and
scheduling application; such as a Personal Information Manager or a
Group Scheduling product.
The format is suitable as an exchange format between applications or
systems. The format is defined in terms of a MIME content type. The
primary transport for this exchange is expected to be a MIME
electronic messaging system. However, other transports such as HTTP,
a file system, desktop interactive protocols such as the use of a
memory-based clipboard or drag/drop interactions, point-to-point
asynchronous communication, wired-network transport, or some form of
unwired transport such as infrared might also be used.
The specification also provides for the definition of usage profiles
that will map this content type to a set of messages for supporting
calendaring and scheduling operations such as requesting, replying
to, modifying, and canceling meetings or appointments and todos. The
usage profiles can be used to define other calendaring and scheduling
operations such a requesting for and replying with free/busy time
data.
Dawson 4 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The specification also includes a formal grammar for the content type
to aid in the implementation of parsers and to serve as the
definitive reference when ambiguities or questions arise in
interpreting the descriptive prose definition of the specification.
2. TEXT/CALENDAR Registration Information
To: ietf-types@uninett.no
Subject: Registration of MIME content type text/calendar.
MIME media type name: text
MIME subtype name: calendar
Required parameters: PROFILE
Optional parameters: CHARSET
Additional required content header fields: CONTENT-ID, MESSAGE-ID
Optional content header fields: CONTENT-LANGUAGE, TRANSFER-ENCODING
Encoding considerations: This MIME content type does not introduce
any new encoding considerations beyond those defined in [RFC 1521].
Security considerations: The calendaring and scheduling information
based on this MIME content type may include references to Uniform
Resource Locators that may be programmed resources. In addition,
this information may contain direct references to executable
programs intended to be used as program-based alarms for an event
or todo. Implementers and users of this specification should be
aware of the network security implications of accepting and parsing
such information.
Interoperability considerations: This MIME content type is intended
to provide interoperability between calendaring and scheduling
products. It is heavily based on the prior [VCAL] specification in
order to assure interoperability with implementations conforming to
this industry specification.
Intended Usage: COMMON
Published specification: This document.
Person & email address to contact for further information:
Frank Dawson
IBM Corporation
3039 Cornwallis Road
RTP, NC 27709
919-254-5861 (Telephone)
919-543-6822 (Facsimile)
fdawson@raleigh.ibm.com (Internet Mail)
Dawson 5 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
3. Intended Use
This memo is meant to serve as the basis for registration of a MIME
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
calendaring and scheduling information encoded primarily as text
characters formatted in a manner outlined below.
A subtype of the standard MIME _TEXT_ media type was chosen as the
form for this content type because it provides a known and reasonable
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
independent content type in order that it can be conveyed 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, todo,
or free/busy time information.
3.1 Published specification
The following characteristics are specific to this MIME content type.
3.1.1 Existing Message Header Fields
The MIME Calendar Content Type may utilize any of the message header
fields defined by [RFC 822], [RFC 1521], and [RFC 1766]. A number of
these message header fields are especially useful to the MIME
Calendaring and Scheduling Content Type. These include the following
header fields defined in either [RFC 822], [RFC 1521], and [RFC
1766].
3.1.1.1 Content-Type Header Field
The [RFC 1521] Content-Type header field is used to identify the MIME
Calendaring and Scheduling Content Type. 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 6 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The [RFC 1521] CHARSET Content-Type header field parameter is used to
identify an alternate character set to the default US-ASCII used by
the MIME Calendaring and Scheduling Content Type. This header field
parameter is optional for MIME entities conforming to this content
type.
3.1.1.2 Content-ID Header Field
The [RFC 1521] Content-ID header field is used to provide a
persistent, globally unique identifier for a MIME Calendar Object
within a MIME message entity. This header field is required for MIME
entities conforming to this content type.
3.1.1.3 Content-Language
The [RFC 1766] Content-Language header field is used to provide an
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
The [RFC 1521] Message-ID header field is used to provide a
persistent, globally unique identifier for a MIME message containing
a single body part consisting of a MIME Calendaring and Scheduling
Content Type. This header field is required for a single body part
MIME message conforming to this content type.
3.1.1.5 Transfer-Encoding Header Field
The [RFC 1521] Transfer-Encoding header filed is used to provide an
alternate transfer encoding for the MIME Calendaring and Scheduling
Content Type. The default transfer encoding is _7BIT_. This header
field is optional for a MIME entity conforming to this content type.
3.1.2 Additional Content Type Parameter
In addition to the existing content type parameters defined by [RFC
1521] and [RFC 1766], this document defines an additional content
type parameter to be used by the MIME Calendaring and Scheduling
Content Type.
3.1.2.1 Profile
The MIME Calendar Object defines the Profile content type parameter.
This parameter is used to specify a usage profile for the MIME
Calendaring and Scheduling Content Type. The value of this parameter
consists of a type and a subtype value pair. The type value is used
to specify either a EVENT, TODO, 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. The EVENT and TODO type
values may have a subtype value of REQUEST, to convey an event or
todo request message, REPLY, to convey an event or todo reply
message, MODIFY, to convey an event or todo modification message,
Dawson 7 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
CANCEL, to convey an event or todo cancellation message, DELEGATE, to
convey an event or todo delegation message. The BUSY-FREE type value
may have a subtype value of REQUEST, to convey a free-busy time
request message , or REPLY, to convey a free-busy time data message.
The parameter value is defined by the following BNF:
profile := ((_EVENT /
_ _ _
TODO ) _/_ type1) / (_FREE-BUSY_ _/_ type2)
type1 := _REQUEST_ / _REPLY_ / _MODIFY_ / _CANCEL_ / _DELEGATE_
type2 := _REQUEST_ / _REPLY_
The following is an example of this content type parameter for
specifying an event request message, such as in a request for a
meeting or appointment:
CONTENT-TYPE:TEXT/CALENDAR;PROFILE=EVENT/REQUEST
The following is an example of this content type parameter for
specifying a todo delegation message, such as delegating a task to
another individual:
CONTENT-TYPE:TEXT/CALENDAR;TODO/DELEGATE
The following is an example of this content type parameter for
specifying a free-busy time request, such as when searching for a
free time for a meeting:
CONTENT-TYPE:TEXT/CALENDAR;PROFILE=FREE-BUSY/REQUEST
This content type parameter is required for MIME entities conforming
to this content type.
3.1.3 Content Syntax Considerations
The following general considerations are specific to the syntax used
to format the text of the body information for this content type.
3.1.3.1 Property
A property is the definition of an individual attribute describing an
event or a todo associated with the MIME Calendar Object. A property
takes the following form:
property := propname *(_;_ propparm) _:_ propvalue
as shown in the following example:
DTSTART:19960415T083000
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
Dawson 8 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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_ is the ISO 8601
formatted value for the Start Date/Time property.
The property parameter expressions are specified as either a
name=value or a value string. The parameter value string can be
specified alone in those cases where the value is unambiguous. For
example a complete property parameter specification might be:
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Don't forget to order Girl=
Scout cookies from Stacey today!
A valid short version of the same property parameter specification
might be:
DESCRIPTION;QUOTED-PRINTABLE:Don't forget to order Girl=
Scout cookies from Stacey today!
3.1.3.2 Delimiters
Individual lines within the MIME Calendaring and Scheduling Content
Type body are delimited by 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.
Can be represented as:
DESCRIPTION:This is a long description
that exists on a long line.
The process of moving from this folded multiple-line representation
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
breaks in structured components of the property definition.
A formatted text line break in a property value, must also be
specified by a (RFC 822) line break, which is a CRLF sequence.
However, since the CRLF sequence is used to delimit a line, property
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 1521].
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
Dawson 9 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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
Conference Room - 3B
Come Prepared.
Would be represented in a Quoted-Printable encoding as:
DESCRIPTION; QUOTED-PRINTABLE:Project XYZ Final Review=0D=0A=
Conference Room - 3B=0D=0A=
Come Prepared.
Property parameter sub-strings are delimited by a field delimiter,
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,
specified by the Semi-colon character (ASCII decimal 59). A Semi-
colon character in a component of a compound property value must be
escaped with a Backslash character (ASCII decimal 92).
3.1.3.3 Property Value Transfer Encoding
The default transfer encoding for the MIME Calendaring and Scheduling
Content Type is _7BIT_. The 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
default transfer encoding other than 7BIT (e.g., 8BIT).
3.1.3.4 Property Value Character Set
The default character set for a MIME Calendaring and Scheduling
Content Type is ASCII. The default character set can be overridden
for an individual property value by using the _CHARSET_ property
parameter. This property parameter may be used on any property.
However, the use of this parameter on some properties may not make
sense.
Any character set registered with the Internet Assigned Numbers
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:...
Dawson 10 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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
The default language for a MIME Calendaring and Scheduling Content
Type is _en-US_ (US English). 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 MIME LANGUAGE parameter on the CONTENT-TYPE header field can be
used to specify a default language other than US English (e.g., fr-
CA).
3.1.3.6 Property Value Data Type
In order to more fully specify the semantics of this content type and
to facilitate its automated processing, the specification of each
property defined by the MIME Calendaring and Scheduling Content Type
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
If the DATATYPE property parameter is not specified on a property,
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:
Description Property Data
Type
Indicates an AALARM
audio alarm
value, as
specified by
this document.
Dawson 11 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Indicates a BOOLEAN
Boolean value
string of
either TRUE or
FALSE.
Indicates a
string
identifier
value for the
content
identifier of
another MIME
entity within
the current
CID
message.
Indicates a DALARM
display alarm
value, as
specified by
this document.
Indicates an
ISO 8601
formatted
date/time
DATE-TIME
string value.
Indicates a DST-RULE
daylight saving
time rule value
as specified in
this document.
Indicates a D-T-LIST
list of ISO
8601 formatted
date/time
string values.
Indicates an DURATION
ISO 8601
formatted
duration or
period of time
value.
Indicates a FLOAT
string
representation
of a floating
point value.
Dawson 12 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Indicates a FLOAT-LIST
list of string
representations
of floating
point values.
Indicates a INTEGER
numeric string
representation
of an integer
value.
Indicates a INTEGER-LIST
list of numeric
string
representations
of an integer
value.
Indicates a MALARM
mail alarm
value, as
specified by
this document.
Indicates a MID
string
identifier
value for an
external
message.
Indicates a PALARM
procedure alarm
value, as
specified by
this document.
Indicates a RFC RFC822-
822 formatted ADDRESS
address
specification
string value.
Indicates a RRULE
recurrence rule
grammar string
value as
specified in
this document.
Indicates a STRING
text string
Dawson 13 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
value in the
current
character set.
Indicates a
list of text
string values
in the current
STRING-LIST
character set.
Indicates an TIME-OFFSET
ISO 8601
formatted time
offset value
Indicates a RFC URL
1738 formatted
Uniform
Resource
Locator string.
The property values consisting of lists of a particular data type
(i.e., STRING-LIST) are semi-colon separated string of list items.
3.1.3.7 Date and Time
The date and time values for all MIME Calendaring and Scheduling
Content Type properties are formatted as a string consistent with the
ISO 8601 representation for combinations of dates and times. Either
the basic or extended format 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 = 1*(date / time / (date time))
date = year month day
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)
hour = <digits representing a period of time of 60 minutes>
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>
Dawson 14 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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
separator nor the _:_ time separator. The extended complete
representation does include the separators.
For example, 8:30 AM on April 15, 1996 local time EST would be
written as:
19960415T083000-05:00
And the same time in UTC based time would be written as:
19960415T133000Z
The same date and time represented in the extended completed
representation would be written as:
1996-04-15T08:30:00-05:00
And the same time in UTC based time would be written as:
1996-04-15T13:30:00Z
Where a value needs to specify a sequence of date and time values,
then the property value is a string made up of a list of date and
time values, separated by the field separator, a Semi-Colon (ASCII
decimal 59). For example:
19960101T090000Z;19960201T090000Z;19960301T090000Z;...
3.1.3.8 Time Duration
The values for time duration or periods of time for all MIME
Calendaring and Scheduling Content Type properties are formatted as a
string consistent with the ISO 8601 representation for duration of
time. A given duration of a 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))
;Duration needs to include at least one component of year or
;time periods
Dawson 15 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
yr-period = [yr-parm] [mo-parm] / wk-parm
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]
hr-parm = _H_ <digits representing the number of hours>
mn-parm = _M_ <digits representing the number of minutes>
sc-parm = _S_ <digits representing the number of seconds>
For example:
P6W
represents a period of six weeks;
PT15M
represents a period of 15 minutes;
PT1H30M
represents a period of 1 hour and thirty minutes; or
P2Y10M15DT10H30M20S
represents a period of 2 years, 10 months, 15 days, 10 hours, 30
minutes, and 20 seconds.
3.1.3.9 Value Location
The default location of the property values is inline with the
property. However, for some properties, such as those that specify
multimedia values, it is more efficient in a MIME message to organize
the property value as a separate MIME entity. The property parameter
_VALUE_ can be specified to override the _INLINE_ location of the
property value. In the case of the MIME Calendaring and Scheduling
Content Type 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 16 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
ATTACH;VALUE=URL:http://www.abc.com/dir_photos/my_photo.gif
The following specifies a value located out in the content of another
message:
ATTACH;VALUE=MID:<960120.aaCB@host1.com>
3.1.3.10 Binary Property Values
The MIME Calendaring and Scheduling Content Type supports inclusion
of binary information, such as computer graphic images (e.g.,
IMAGE/JPEG), digital audio (e.g., 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 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
Recurring events within the MIME Calendaring and Scheduling Content
Type may be specified as either a list of discrete date and time
values or as a recurrence rule using a grammar. The basic recurrence
rule grammar used by this specification is defined in a separate
section of this specification. The grammar defines a recurrence rule
that that is based on the prior work of the X.400 API Association's
Calendaring and Scheduling Subcommittee. It is also based on prior
work of the IETF Chronos Working Group. Refer to section 3.3.
3.1.4 Body Delimiter Properties
The body information of a MIME Calendaring and Scheduling Content
Type is defined by a series of body fields or properties. This
section defines the properties that can be used in MIME entities
conforming to this content type.
3.1.4.1 Calendar Object
The body of the MIME Calendaring and Scheduling Content Type is
identified within the body of a MIME entity by the appearance of the
Begin Calendar Object Delimiter:
BEGIN:VCALENDAR
The sentinel string must appear as the first characters in the body
of the MIME entity and as the first characters on a line.
The body information of the MIME Calendaring and Scheduling Content
Type is terminated by the appearance of the End Calendar Object
Delimiter as the first characters on a line:
END:VCALENDAR
Dawson 17 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The MIME Calendaring and Scheduling Content Type is a container for
calendar components. These can include either event or todo
components. The body of a MIME Calendaring and Scheduling Content
Type will generally contain a single calendar event or todo
component. However, the body may include multiple event or todo
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
in a MIME entity conforming to this content type. The default data
type for these properties is a STRING.
3.1.4.2 Event Component
An Event Component is a grouping of calendaring and scheduling
properties that defines a component that represents a scheduled
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
and Scheduling Content Type by the appearance of the delimiter:
BEGIN:VEVENT
The sentinel string must appear as the first characters on a line.
The Event Component is terminated with the appearance of the
following delimiter string as the first characters on a line
END:VEVENT
The Event Component can not be nested within another Event or Todo
Component. If Event components need to be related to each other or to
a Todo Component, they can specify a relationship with the RELATED-TO
property.
The Begin and End Event Component Delimiter properties are required
for a MIME entity containing an event component and conforming to
this content type. The default data type for these properties is a
STRING.
3.1.4.3 Todo Component
A Todo Component is a grouping of calendaring and scheduling
properties that define a component that represents an action-item or
assignment. For example, it may be an item of work assigned to an
individual; such as _turn in travel expense today_.
An individual Todo Component is identified within a MIME Calendaring
and Scheduling Content Type by the appearance of the delimiter:
BEGIN:VTODO
Dawson 18 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The sentinel string must appear as the first characters on a line.
The Todo Component is terminated with the appearance of the following
delimiter string as the first characters on a line
END:VTODO
The Todo Component can not be nested within another Todo or Event
Component. If Todo components need to be related to each other or to
an Event Component, they can specify a relationship with the RELATED-
TO property.
The Begin and End Todo Component Delimiter properties are required
for a MIME entity containing a todo component and conforming to this
content type. The default data type for these properties is a STRING.
3.1.5 Calendar Object Properties
The following properties may appear between the Begin Calendar Object
Delimiter and either the Begin Event Component Delimiter or the Begin
Todo Component Delimiter. These properties define body field values
that apply to the complete calendar object.
3.1.5.1 Calendar Content Profile
This property is identified by the property name PROFILE. This
property defines the usage profile associated with the calendar
object. When used included in a MIME message entity, the value of
this property MUST be the same as the Content-Type profile parameter
value.
The calendar property value may include the following usage profile
values:
Profile Parameter Description
Type/Subtype Value
EVENT/REQUEST Make a request for an
event
EVENT/REPLY Reply to an event
request
EVENT/COUNTER Make a counter proposal
to the event request
EVENT/DECLINE- Decline the counter
COUNTER proposal to the event
Dawson 19 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
request
EVENT/MODIFY Modify a subset of the
details of an existing
event request
EVENT/REPLACE Replace the current
event request with a
complete set of
information
EVENT/CANCEL Cancel an existing
event request
EVENT/DELEGATE Delegate an existing
event request
EVENT/RESEND Request a duplicate of
the current event
request information
TODO/REQUEST Assign a todo
TODO/REPLY Reply to a todo
assignment
TODO/COUNTER Make a counter proposal
for the todo request
TODO/DECLINE-COUNTER Decline a counter
proposal for the todo
request
TODO/MODIFY Modify a subset of the
details of an existing
todo assignment
TODO/REPLACE Replace the current
todo request with a
complete set of
information
Dawson 20 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
TODO/CANCEL Cancel an existing todo
TODO/DELEGATE Delegate an existing
todo
TODO/RESEND Request a duplicate of
the current todo
request information
FREE-BUSY/REQUEST Free/busy time request
FREE-BUSY/REPLY Reply to an existing
free/busy time request
with free/busy time
data
Other values may be defined by other usage profiles of this content
type.
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 default
data type for this property is STRING.
3.1.5.2 Daylight Savings Rule
This property is identified by the property name DAYLIGHT. This
property defines the daylight savings time rule observed by the
_home_ calendar system that created the MIME calendar object.
Many locations adjust their standard time forward or backward by one
hour, in order to accommodate seasonal changes in number of daylight
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
rule for the observance of daylight savings time. The value consists
of the daylight savings time flag, followed by the daylight savings
time offset, followed by the date and time that the daylight savings
time begins, followed by the date and time that the daylight savings
time ends, followed by the standard time designation, followed by the
daylight savings time designation. The daylight savings time flag is
Dawson 21 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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 format. The standard time and daylight savings time
designations correspond to the customary character designations.
The following are examples of this property:
DAYLIGHT:TRUE;-06;19960407T025959;19961027T010000;EST;EDT
DAYLIGHT:FALSE
DAYLIGHT:TRUE;-09;19960407T115959;19961027T100000;PST;PDT
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 same daylight savings time rule as the recipient location.
The default data type for this property is DST-RULE.
3.1.5.3 Geographic Position
This property is identified by the property name GEO. 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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is FLOAT-LIST.
3.1.5.4 Product Identifier
This property is identified by the property name PRODID. This
property specifies the identifier for the product that created the
MIME calendar object. The vendor of the implementation should assure
that this is a globally unique identifier; using some technique such
as an ISO 9070 FPI value. The following is an example of this
property:
PRODID:-//ABC Corporation//NONSGML My Product//EN
This property is required for MIME entities conforming to this
content type. The default data type for this property is STRING.
Dawson 22 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
3.1.5.5 Time Zone
This property is identified by the property name TZ. This property
specifies the standard time zone of the _home_ system that created
the MIME calendar object. The property 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. Time
zones east of UTC are positive numbers. Time zones west of UTC are
negative numbers. The following are examples of this property:
TZ:-0500
TZ:+05:30
This property is optional for MIME entities conforming to this
content type. If this property is missing, the recipient should
assume all local times are relative to the recipients time zone. The
default data type for this property is TIME-OFFSET.
3.1.5.6 Version
This 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 MIME
calendar object. The value of this property must be 1.0 to correspond
to this specification..
This property is identified by the property name VERSION. The
following is an example of this property:
VERSION:1.0
This property is required for MIME entities conforming to this
content type. This property must appear within the MIME calendar
object. The default data type for this property is FLOAT.
3.1.6 Event and Todo Component Properties
The following properties apply to either an event or todo calendar
object component.
3.1.6.1 Attachment
This property is identified by the property name ATTACH. The property
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 todo. 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
properties within the MIME calendaring entity.
The following are examples of this property:
Dawson 23 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
ATTACH;VALUE=CONTENT-ID:<jsmith.part3.960817T083000.
xyzMail@host1.com>
ATTACH;VALUE=URL:file://xyzCorp.com/pub/reports/r-960812.ps
This property is optional for MIME entities conforming to this
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
This property is identified by the property name ATTENDEE. The
property defines an attendee to a group event or todo. 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 todo; STATUS, for the status of
the attendee's participation in the event or todo, 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
properties within the MIME calendaring entity.
The property value may reference a vCard object. This provides a
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
values:
Dawson 24 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Description Property
Value
Indicates INDIVIDUAL
attendee is an
individual.
Indicates GROUP
attendee is a
group of
individuals.
Indicates RESOURCE
attendee is a
resource.
Indicates UNKNOWN
attendee type
is unknown.
The ROLE property parameter for each attendee can have the following
values:
Description Property
Value
Indicates an ATTENDEE
attendee at the
event or todo
Indicates ORGANIZER
organizer of
the event, but
not owner
Indicates owner OWNER
of the event or
todo.
Indicates a DELEGATE
delegate of
another
attendee.
Dawson 25 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The default value for this property parameter is ATTENDEE.
The STATUS property parameter for each attendee can have the
following values:
Description Property
Value
Indicates todo ACCEPTED
was accepted by
attendee
Indicates event NEEDS ACTION
or todo
requires action
by attendee
Indicates event SENT
or todo was
sent out to
attendee
Indicates event TENTATIVE
is tentatively
accepted by
attendee
Indicates CONFIRMED
attendee has
confirmed their
attendance at
the event
Indicates event DECLINED
or todo has
been rejected
by attendee
Indicates todo COMPLETED
has been
completed by
attendee
Indicates event DELEGATED
or todo has
been delegated
by the attendee
to another
Dawson 26 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Indicates the CANCELED
event or todo
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.
The RSVP property parameter for each attendee can have the following
values:
Description Property
Value
Indicates a YES
reply is
requested
Indicates a NO
reply is not
requested.
The default value for this property parameter is NO.
The EXPECT property parameter for each attendee can have the
following values:
Description Property
Value
Indicates FYI
request is for
your
information.
Dawson 27 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Indicates REQUIRE
presence is
definitely
required.
Indicates
presence is
REQUEST
being requested
Indicates an IMMEDIATE
immediate
response
needed.
The default value for this property parameter is FYI.
The MEMBER property parameter value is an (RFC 822) address that
represents the group or distribution list.
The following is an example of this property's use for a todo:
ATTENDEE;ROLE=OWNER;STATUS=COMPLETED:jsmith@host1.com
The following is an example of this property used for specifying
multiple attendees to an event:
ATTENDEE;ROLE=OWNER;STATUS=CONFIRMED:John Smith <jsmith@host1.com>
ATTENDEE;ROLE=ATTENDEE;STATUS=TENTATIVE:Henry Cabot
<hcabot@host2.com>
ATTENDEE;ROLE=DELEGATE;STATUS=CONFIRMED:Jane Doe <jdoe@host1.com>
The following is an example of this property with the value specified
as an URL reference to a vCard that contains the information about
the attendee:
ATTENDEE;ROLE=ATTENDEE;STATUS=CONFIRMED;VALUE=URL:
http://www.xyz.com/~myvcard.vcf
This property is optional for MIME entities conforming to this
content type. The default data type for this property is RFC822-
ADDRESS.
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
Dawson 28 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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:
Description Property
Parameter
Values
TYPE
Indicates the BASIC
MIME basic
audio content
type.
Indicates the WAVE
WAVE format for
audio content.
Indicates the AIFF
AIFF format for
audio content.
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
todo request.
This property is optional for MIME entities conforming to this
content type. The default data type for this property is AALARM. The
data type may alternatively be specified to be CID, MID, or URL.
Dawson 29 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
3.1.6.4 Categories
This property is identified by the property name CATEGORIES. This
property defines the categories for the MIME calendar component. More
than one category may be specified as a list of categories separated
by the Semi-Colon character (ASCII decimal 59).
The following are some examples of this property:
CATEGORIES:APPOINTMENT;EDUCATION
CATEGORIES:MEETING
Some of the possible values for this property might include the
following:
Some Possible
Property Values
APPOINTMENT
BUSINESS
EDUCATION
HOLIDAY
MEETING
MISCELLANEOUS
NON-WORKING-HOURS
NOT-IN-OFFICE
PERSONAL
PHONE CALL
SICK DAY
SPECIAL OCCASION
TRAVEL
VACATION
Dawson 30 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
This property is optional for MIME entities conforming to this
content type. The default data type for this property is STRING-LIST.
3.1.6.5 Classification
This property is identified by the property name CLASS. This property
defines the access classification for the MIME calendar component.
A calendar event/todo 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 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:
CLASS:PUBLIC
The property can have the following values:
Description Property
Value
Indicates PUBLIC
general, public
access.
Indicates PRIVATE
restricted,
private access.
Indicates very CONFIDENTIAL
restricted,
confidential
access.
The default value for this property is PUBLIC.
Dawson 31 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
This property is optional for MIME entities conforming to this
content type. The default data type for this property is STRING.
3.1.6.6 Date/Time Created
This property is identified by the property name DCREATED. This
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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is DATE-TIME.
3.1.6.7 Date/Time Completed
This property is identified by the property name COMPLETED. This
property defines the date and time that the todo was actually
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. The following is
an example of this property:
COMPLETED:19960401T235959Z
This property is optional for MIME entities conforming to this
content type. The default data type for this property is DATE-TIME.
3.1.6.8 Description
This property is identified by the property name DESCRIPTION. This
property provides a more complete description of the MIME calendar
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=
review for _Phoenix_ design.=0D=0A=
Happy Face Conference Room. Phoenix design team=
must attend this meeting. RSVP to team leader.
The following is an examples of the property with folding of long
lines:
DESCRIPTION:Last draft of the new novel is to be completed
for the editor's proof today.
This property is required for MIME entities conforming to this
content type. The default data type for this property is STRING.
Dawson 32 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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
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:
DALARM:19960415T235000-0800;PT5M;2;Your Taxes Are Due !!!
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
todo request.
This property is optional for MIME entities conforming to this
content type. The default data type for this property is DALARM. The
data type may alternatively be specified to be CID, MID, or URL.
3.1.6.10 Due Date/Time
This property is identified by the property name DUE. This property
defines the date and time that the todo 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 required for MIME entities consisting of a todo
calendar component that conforms 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.11 Duration
This property is identified by the property name DURATION. The
property specifies an interval or duration of time. The following is
an example of this property that specifies an interval of time of 1
hour and zero minutes and zero seconds:
DURATION:P1H0M0S
Dawson 33 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The following is an example of this property that specifies an
interval of time of 24 hours.
DURATION:P24H
This property is optional for MIME entities conforming to this
content type. The default data type for this property is DURATION.
3.1.6.12 End Date/Time
This property is identified by the property name DTEND. This property
defines the date and time that the event component will end. 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. Events may have an end date/time but no start
date/time. In that case, the event does not take up any time. The
following is an example of this property:
DTEND:19960401T235959Z
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
This property is identified by the property name EXDATE. This
property defines the list of date/time exceptions for a recurring
MIME calendar component. 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 following is an
example of this property:
EXDATE:19960402T010000Z;19960403T010000Z;19960404T010000Z
This property is optional for MIME entities conforming to this
content type. The default data type for this property is D-T-LIST.
3.1.6.14 Exception Rule
This property is identified by the property name EXRULE. This
property defines a rule or repeating pattern for an exception to a
recurring MIME calendaring entity, based on the Basic Recurrence Rule
Grammar of the [XAPIA]. The value for the property is a pattern
specification for the recurrence exception. The following are some
examples of this property:
EXRULE:W2 TU TH #2 // Except every other week, on Tuesday
// and Thursday for 4 occurrences
EXRULE:D1 #10 // Except daily for 10 occurrences
Dawson 34 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
EXRULE:YM1 6 7 #8 // Except yearly in June and July for 8
// occurrences
This property is optional for MIME entities conforming to this
content type. The default data type for this property is RRULE.
3.1.6.15 Last Modified
This property is identified by the property name LAST-MODIFIED. The
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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is DATE-TIME.
3.1.6.16 Location
This property is identified by the property name LOCATION. The
property defines the intended location for the MIME calendar
component.
The property value may reference a vCard object. This provides a
useful mechanism to specify a location in terms of its electronic
business card.
The following are some examples of this property:
LOCATION:Conference Room - F123, Bldg. 002 // or
LOCATION;VALUE=URL:http://www.xyzcorp.com/~jsmith.vcf
This property is optional for MIME entities conforming to this
content type. The default data type for this property is STRING. The
data type may alternatively be specified to be CID, MID, or URL.
3.1.6.17 Mail Reminder
This property is identified by the property name MALARM. The property
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
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.
Dawson 35 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
The following is an example of this property:
MALARM:19960416T000000-0500;PT1H;24;IRS@us.gov;My Payment;
The Check Is In The Mail!
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
todo request.
This property is optional for MIME entities conforming to this
content type. The default data type for this property is MALARM. The
data type may alternatively be specified to be CID, MID, or URL.
3.1.6.18 Number Recurrences
This property is identified by the property name RNUM. The property
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
In the event that this value does not match the computed number of
recurrences, it will be ignored and the computer number of
recurrences will be used.
This property is optional for MIME entities conforming to this
content type. The default data type for this property is INTEGER.
3.1.6.19 Priority
This property is identified by the property name PRIORITY. The
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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is STRING. The
data type may alternatively be specified to be INTEGER.
3.1.6.20 Procedure Reminder
This property is identified by the property name PALARM. The property
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.
Dawson 36 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
While this property has many useful purposes, implementers should be
aware of the security implications of sending a MIME calendaring
entity containing this property. The security implications are
similar to those associated with active messages within electronic
mail.
The value for the procedure 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 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
Procedure Name value a Question-Mark (ASCII decimal 63) followed by a
string representation of the parameters.
The following is an example of this property:
PALARM;VALUE=URL:19960415T235000-0500;PT5M;2;file:///myapps/
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
todo request.
This property is optional for MIME entities conforming to this
content type. The default data type for this property is PALARM. The
data type may alternatively be specified to be CID, MID, or URL.
3.1.6.21 Related To
This property is identified by the property name RELATED-TO. The
property is used to represent relationships or references between
this MIME calendar component and another. The property value 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.
A linked relationship can be specified by a series of components that
each, in turn, refer to their parent component. A group relationship
can be specified by a number of components that all refer to one
common parent component.
Changes to a calendar component referenced by this property may
impact the related calendar component. For example, if a group event
changes its start or end date or time, then the related, dependent
events will need to have their start and end dates changed in a
corresponding way. This property is intended only to provide
information on the relationship of calendar components. It is up to
the target calendar system to maintain this relationship.
The following is an example of this property:
Dawson 37 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
RELATED-TO:<jsmith.part7.19960817T083000.xyzMail@host3.com>
RELATED-TO:19960401-080045-4000F192713-0052
This property is optional for MIME entities conforming to this
content type. The default data type for this property is STRING. The
data type may alternatively be specified to be CID, MID, or URL.
3.1.6.22 Recurrence Date/Times
This property is identified by the property name RDATE. This property
defines the list of date/times for a recurring MIME calendar
component. 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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is D-T-LIST.
3.1.6.23 Recurrence Rule
This property is identified by the property name RRULE. This property
defines a rule or repeating pattern for a recurring MIME calendar
component, based on the Basic Recurrence Rule Grammar of [XAPIA]. The
value for the property is a pattern specification for the recurrence.
The following is an example of this property:
RRULE:W2 TU TH // Every other week, on Tuesday
// and Thursday
RRULE:D1 #10 // Daily for 10 occurrences
RRULE:YM1 6 7 #8 // Yearly in June and July for 8
// occurrences
This property is optional for MIME entities conforming to this
content type. The default data type for this property is RRULE.
3.1.6.24 Resources
This property is identified by the property name RESOURCES. This
property defines the equipment or resources needed in the MIME
calendar component.
Some of the values that the property may have include the following:
Dawson 38 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Some Possible
Property Values
CATERING
CHAIRS
COMPUTER PROJECTOR
EASEL
OVERHEAD PROJECTOR
SPEAKER PHONE
TABLE
TV
VCR
VIDEO PHONE
VEHICLE
The following is an example of this property:
RESOURCES:EASEL;PROJECTOR;VCR
This property is optional for MIME entities conforming to this
content type. The default data type for this property is STRING-LIST.
The data type may alternatively be specified to be STRING.
3.1.6.25 Response Sequence Number
This property is identified by the property name RESPONSE-SEQUENCE.
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
Dawson 39 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
This property is optional for MIME entities conforming to this
content type. The default data type for this property is INTEGER.
3.1.6.26 Sequence Number
This property is identified by the property name SEQUENCE. This
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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is INTEGER.
3.1.6.27 Start Date/Time
This property is identified by the property name DTSTART. This
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
This property is optional 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 to be DURATION.
3.1.6.28 Status
This property is identified by the property name STATUS. This
property defines the status associated with the MIME calendar
component. This property can also be used when the ATTENDEE property
is either not supported or not needed. The following is an example of
this property:
STATUS:TENTATIVE
The property can have the following values:
Dawson 40 Expires June rming to this
content type. The default data type for this property is STRING.
3.1.6.30 Time Transparency
This property is identified by the property name TRANSP. This
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
This property is optional for MIME entities conforming to this
content type. The default data type for this property is INTEGER.
3.1.6.31 Uniform Resource Locator
This property is identified by the property name URL. This property
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 [IETF RFC 1738]. The following is an example of this
property:
URL:http://abc.com/pub/calendars/jsmith/mytime.or3
This property is optional for MIME entities conforming to this
content type. The default data type for this property is URL.
3.1.6.32 Unique Identifier
This property is identified by the property name UID. This property
defines a persistent, globally unique identifier associated with the
MIME calendar component. Some examples of forms of unique identifiers
Dawson 42 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
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
Resource Locators (URL). If an URL is specified, it is suggested that
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
This property is an important method for group scheduling
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
content type. The default data type for this property is STRING. The
data type may alternatively be specified to be CID, MID, or URL.
3.1.6.33 Non-standard Properties
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 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
At present, there is no registration authority for names of extension
properties and property parameters. The default data type for this
property is STRING.
3.2 Formal Definition
The following modified Backus-Naur Notation (BNF) is provided to
assist developers in building parsers for the properties of this MIME
content type..
This syntax is written according to the form described in RFC
822,but it references just this small subset of RFC 822 literals:
CR = <ASCII CR, carriage return> ; ( 15, 13.)
Dawson 43 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
LF = <ASCII LF, linefeed> ; ( 12, 10.)
CRLF = CR LF
SPACE = <ASCII SP, space> ; ( 40, 32.)
HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.)
All literal property names are valid as upper, lower, or mixed
case.
ws = 1*(SPACE / HTAB)
; _whitespace,_ one or more spaces or tabs
wsls = 1*(SPACE / HTAB / CRLF)
; whitespace with line separators
value = 7bit / 8bit / quoted-printable / base64
; The value must be in the encoding type specified for the
; property value.
7bit = <7bit us-ascii printable chars, excluding CR LF>
8bit = <MIME RFC 1521 8-bit text>
quoted-printable = <MIME RFC 1521 quoted-printable text>
base64 = <MIME RFC 1521 base64 text>
; the end of the text is marked with two CRLF sequences
; this results in one blank line before the start of the next
; property
word = <any printable 7bit us-ascii except []=:., >
vcal_file = [wsls] vcal [wsls]
vcal = _BEGIN_ [ws] _:_ [ws] _VCALENDAR_ [ws]
1*CRLF
calprop calentities [ws] *CRLF
_END_ [ws] _:_ [ws] _VCALENDAR_ [ws] 1*CRLF
calentities = calentities *CRLF calentity
/ calentity
calentity = evententity
Dawson 44 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
/ todoentity
evententity = _BEGIN_ [ws] _:_ [ws] _VEVENT_ [ws] 1*CRLF
entprops [ws] *CRLF
_END_ [ws] _:_ [ws] _VEVENT_ [ws] 1*CRLF
todoentity = _ _
BEGIN [ws] _:_ [ws] _VTODO_ [ws] 1*CRLF
entprops [ws] *CRLF
_END_ [ws] _:_ [ws] _VTODO_ [ws] 1*CRLF
calprops = calprops *CRLF calprop
/ calprop
calprop = _PROFILE_
[parms] _:_ value CRLF
/ _DAYLIGHT_
[params] _:_ value CRLF
/ _GEO_
[params] _:_ value CRLF
/ _PRODID_
[params] _:_ value CRLF
/ _TZ_
[params] _:_ value CRLF
/ _VERSION_ _:_ _1.0_ CRLF
; The VERSION calendar property MUST appear in the MIME Calendar
; Object.
entprops = entprops *CRLF entprop
/ entprop
entprop = [ws] simprop
[params] _:_ value CRLF
/ [ws] _AALARM_
[params] _:_ aalarmparts CRLF
Dawson 45 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
/ [ws] _CATEGORIES_
[params] _:_ 1*catvals CRLF
/ [ws] _CLASS_
[params] _:_ classvals CRLF
/ [ws] _DALARM_
[params] _:_ dalarmparts CRLF
/ [ws] _EXDATE_
[params] _:_ xdatevals CRLF
/ [ws] _MALARM_
[params] _:_ malarmparts CRLF
/ [ws] _PALARM_
[params] _:_ palarmparts CRLF
/ [ws] _RDATE_
[params] _:_ rdatevals CRLF
/ [ws] _RESOURCES_
[params] _:_ 1*resvals CRLF
/ [ws] _STATUS_
[params] _:_ statvals CRLF
simprop = _ATTACH_ / _ATTENDEE_ / _DCREATED_ / _COMPLETED_
/ _DESCRIPTION_ / _DTSTART_ / _DUE_ / _DTEND_ / _EXRULE_
/ _LAST-MODIFIED_ / _LOCATION_ / _RNUM_ / _PRIORITY_
/ _RELATED-TO_ / _RESPONSE-SEQUENCE_ / _RRULE_
/ _SEQUENCE_ / _SUMMARY_ / _TRANSP_ / _URL_ / _UID_
/ _X-_ word
aalarmparts = 0*3(strnosemi _;_) strnosemi
; runTime, snoozeTime, repeatCount, audioContent
catvals = _APPOINTMENT_ / _ _ /
BUSINESS _EDUCATION_ / _HOLIDAY_
Dawson 46 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
/ _MEETING_ / _MISCELLANEOUS_ / _NOT-IN-OFFICE_
/ _NON-WORKING-HOURS_ / _PERSONAL_ / _PHONE CALL_
/ _SICK DAY_ / _SPECIAL OCCASION_ / _TRAVEL_
/ _VACATION_ / _X-_ word / value
classvals = _PUBLIC_ / _PRIVATE_ / _CONFIDENTIAL_ / _X-_ word
/ value
dalarmparts = 0*3(strnosemi _;_) strnosemi
; runTime, snoozeTime, repeatCount, displayString
malarmparts = 0*5(strnosemi _;_) strnosemi
; runTime, snoozeTime, repeatCount, addressString,
; subjectstring, noteString
palarmparts = 0*3(strnosemi _;_) strnosemi
; runTime, snoozeTime, repeatCount, procedureName
rdatevals = 1*value
; One or more date/time values
resvals = _CATERING_ / _CHAIRS_ / _EASEL_ / _PROJECTOR_ / _VCR_
/ _VEHICLE_ / _X-_ word / value
statvals = _ACCEPTED_ / _NEEDS ACTION_ / _SENT_ / _TENTATIVE_
/ _CONFIRMED_ _
/ DECLINED_ / _COMPLETED_ / _DELEGATED_
/ _X-_ word / value
params = _;_ [ws] paramlist
paramlist = paramlist [ws] _;_ [ws] param
/ param
param = _TYPE_ [ws] _=_ [ws] ptypeval
/ [_VALUE_ [ws] _=_ [ws]] pvalueval
/ [_ENCODING_ [ws] _=_ [ws]] pencodingval
/ _CHARSET_ [ws] _=_ [ws] charsetval
/ _DATATYPE_ [ws] _=_ [ws] dtypeval
Dawson 47 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
/ _LANGUAGE_ [ws] _=_ [ws] langval
/ _MEMBER_ [ws] _=_ [ws] <RFC 822 address specification>
/ _ROLE_ [ws] _=_ [ws] roleval
/ _STATUS_ [ws] _=_ [ws] statuval
/ _X-_ word [ws] _=_ [ws] word
/ knowntype
ptypeval = knowntype / attendtype / _X-_ word
knowntype = _BASIC_ / _WAVE_ / _X-_ word / value
attendtype = _INDIVIDUAL_ / _GROUP_ / _RESOURCE_ / _UNKNOWN_
pvalueval = _INLINE_ / _URL_ / _CONTENT-ID_ / _CID_ /
/ _MESSAGE-ID_ / _MID_ / _X-_ word
pencodingval = _7BIT_ / _8BIT_ / _QUOTED-PRINTABLE_ / _BASE64_
/ _X-_ word
charsetval = <a character set string as defined in Section 7.1 of
RFC 1521>
dtypeval = _AALARM_ / _BOOLEAN_ / _CID_ / _DALARM_ / _DATE-TIME_
/ _DST-RULE /
_ _D-T-LIST_ / _DURATION_ / _FLOAT_
/ _FLOAT-LIST_ / INTEGER
_ _ / _INTEGER-LIST_ / _MALARM_
/ _MID_ _
/ PALARM_ / _RFC822-ADDRESS_ / _RRULE_
/ _STRING_ / _STRING-LIST_ / _TIME-OFFSET_ / _URL_
/ _X-_ word
langval = <a language string as defined in RFC 1766>
roleval = _ATTENDEE_ / _ORGANIZER_ / _OWNER_ / _X-_ word
statusval = _ _
ACCEPTED / _NEEDS ACTION_ / _SENT_ / _TENTATIVE_
/ _CONFIRMED_ / _DECLINED_ / _COMPLETED_ / _DELEGATED_
/ _X-_ word
strnosemi = *(*nonsemi (_\;_ / _\_ CRLF)) *nonsemi
; To include a semicolon in this string, it must be escaped
Dawson 48 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
; with a _\_ character.
nonsemi = <any non-control ASCII except _;_>
3.3 Basic Recurrence Rule Grammar
The specification of recurring events can be simplified by the use of
a grammar or rule notation. This specification makes use of the Base
Recurrence Rule Grammar from the [XAPIA].
A recurrence rule is a string or clear-text encoding of a recurrence
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
generated every other week on Tuesday and Thursday, for 8
occurrences:
W2 TU TH #4
Where, W is the Frequency, 2 is the Interval, TU and TH are the
optional Frequency Modifiers, and #4 is the Duration.
The basic recurrence rule grammar supports six types of repetition.
The six types follow the same form with only the frequency name and
optional modifier information changing from one type of frequency to
the next.
3.3.1 Daily Rule
The daily rule is used for specifying repeating events based on an
interval of a day or more. These can range from every day to every
200th day and beyond. The daily rule begins with the letter D
followed by an interval (representing days) and an optional duration
or end date.
Some examples follow:
Daily for 10 occurrences:
D1 #10
Daily until 12/24/94:
D1 19941224T000000Z
Every other day - forever:
D2 #0
Every 10 days, 5 occurrences:
D10 #5
Dawson 49 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
3.3.2 Weekly Rule
The weekly rule is used for specifying repeating events based on an
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:
W1 #10
Weekly until 12/24/94:
W1 19941224T000000Z
Every other week - forever:
W2 #0
Weekly on Tuesday and
Thursday for 5 weeks:
W1 TU TH #5
Every other week on Monday Wednesday and Friday until 12/24/94:
W2 MO WE FR 19941224T000000Z
3.3.3 Monthly Rule
The monthly rule is used for specifying repeating events base on an
interval of a month or more. There are two types of monthly
recurrence rules. One for by-position and one for by-day. The by-
position rule allows weekdays in the month to be specified in
relation to their occurrence in the month. An example would be to
specify the third Sunday of the month or the last Friday of the
month. An occurrence specifier may be used in monthly by-position
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
occurrence of the month.
1-, 2-, ... 5- for the last occurrence, second to last occurrence,
etc.
A 2+ FR SA would indicate the second occurrence of Friday and
Saturday in the month. A 1- MO would indicate the first occurrence of
Monday working from the end of the month backwards (i.e., the last
occurrence). A 2- MO would be the second to the last Monday of the
month.
A by-day rule allows actual day numbers to be specified such as the
12th day or 29th day.
The by-position rule begins with a MP and the by-day rule begins with
a MD. The interval in monthly rules represents months. Some examples
follow:
Dawson 50 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Monthly on the 1st Friday for ten occurrences:
MP1 1+ FR #10
Monthly on the 1st Friday until 12/24/94:
MP1 1+ FR 19941224T000000Z
Every other month on the 1st and last
Sunday of the month for 10 occurrences:
MP2 1+ SU 1- SU #10
Every six months on the 2nd Monday
thru Friday for 10 occurrences:
MP6 2+ MO TU WE TH FR #10
Monthly on the second last Monday of the month for 6 months:
MP1 2- MO #6
Monthly on the third to the last day of the month, forever:
MD1 3- #0
Monthly on the 2nd and 15th of the month for 10 occurrences:
MD1 2 15 #10
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
occurrences:
MD1 1 LD #10 or MD1 1 1- #10
Every 18 months on the 10th thru 15th of the month for 10
occurrences:
MD18 10 11 12 13 14 15 #10
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:
MD1 2- #5
3.3.4 Yearly Rule
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
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
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.
The by-month rule begins with a YM and the by-day rule begins with a
YD. The interval in yearly rules represents years. Some examples
follow:
Dawson 51 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Yearly in June and July for 10 occurrences:
YM1 6 7 #10
Every other year on January, Feb, and March for 10 occurrences:
YM2 1 2 3 #10
Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
YD3 1 100 200 #10
3.3.5 Grammar
{} 0 or more
[] 0 or 1
start ::= <daily> [<enddate>] |
<weekly> [<enddate>] |
<monthlybypos> [<enddate>] |
<monthlybyday> [<enddate>] |
<yearlybymonth> [<enddate>] |
<yearlybyday> [<enddate>]
digit ::= <0|1|2|3|4|5|6|7|8|9>
digits ::= <digit> {<digits>}
enddate ::= ISO 8601_date_time value(e.g., 19940712T101530Z)
interval ::= <digits>
duration ::= #<digits>
lastday ::= LD
plus ::= +
minus ::= -
daynumber ::= <1-31> [<plus>|<minus>]| <lastday>
daynumberlist ::= daynumber {<daynumberlist>}
month ::= <1-12>
monthlist ::= <month> {<monthlist>}
day ::= <1-366>
daylist ::= <day> {<daylist>}
Dawson 52 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
occurrence ::= <1-5><plus> | <1-5><minus>
occurrencelist ::= <occurrence> {<occurrencelist>}
weekday ::= <SU|MO|TU|WE|TH|FR|SA>
weekdaylist ::= <weekday> {<weekdaylist>}
daily ::= D<interval> [<duration>]
weekly ::= W<interval> [<weekdaylist>] [<duration>]
monthlybypos ::= MP<interval> [<occurrencelist>
<weekdaylist>] [<duration>]
monthlybyday ::= MD<interval> [<daynumberlist>] [<duration>]
yearlybymonth ::= YM<interval> [<monthlist>] [<duration>]
yearlybyday ::= YD<interval> [<daylist>] [<duration>]
3.3.6 Grammar Glossary
enddate Controls when a repeating event terminates. The enddate
is the last time an event can occur.
Interval Defines the frequency in which a rule repeats.
duration Controls the number of events a rule generates.
Lastday Can be used as a replacement to daynumber to indicate
the last day of the month.
daynumber A number representing a day of the month.
month A number representing a month of the year.
day A number representing a day of the year.
occurrence Controls which week of the month a particular weekday
event occurs.
weekday A symbol representing a day of the week.
daily Defines a rule that repeats on a daily basis.
weekly Defines a rule that repeats on a weekly basis.
monthlybypos Defines a rule that repeats on a monthly basis on a
relative day and week.
monthlybyday Defines a rule that repeats on a monthly basis on an
absolute day.
Dawson 53 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
yearlybymonth Defines a rule that repeats on specific months
of the year.
yearlybyday Defines a rule that repeats on specific days of the
year.
3.3.7 Policies
1.
The duration portion of a rule defines the total number of events
the rule generates, including the first event.
2.
Information, not contained in the rule, necessary to determine the
next event time and date is derived from the Start Time entry
attribute.
3.
If an end date and a duration is specified in the rule, the
recurring event ceases when the end date is reached or the number
of events indicated in the duration occur; whichever comes first.
4.
If the duration or an end date is not established in the rule
(e.g., D4) the event occurs twice. That is D4 is equivalent to D4
#2.
5.
A duration of #0 means repeat this event forever.
6.
Using the occurrence specifier 5+ (e.g. 5th Friday) or 5- (e.g.
5th from last Friday) in a month that does not contain 5 weeks
does not generate an event and thus does not count against the
duration. The same applies to providing a day of the month that
does not occur in the month. For example the 30th or 31st .
7.
The start time and date of an entry must be synchronized with one
of the repeating events defined by its recurrence rule. The
following is not allowed:
Initial Appt Date: 7/1/94 (Friday)
Recurrence Rule: W1 MO TH #5
The following is acceptable:
Initial Appt Date: 7/1/94 (Friday)
Recurrence Rule: W1 MO FR #5 or W1 #5
8.
If the optional <occurrencelist> and <weekdaylist> information is
missing from a <monthlybypos> occurrence the information is
derived from the entry attributes. The <occurrence> used in the
recurring event is a count from the beginning of the month to the
entry date and the <weekday> used is the day of the week the entry
is scheduled to occur on.
9.
If the <monthlybypos> occurrence or <monthlybyday> occurrence does
not list a week day (e.g., SU or day 10) in the rule, the week day
is established from the entry attribute information. As an example
the rule MP1 #3 used in an entry with a start date of 7/20/94
Dawson 54 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
(which is the third Wednesday of the month) repeats on 8/17/94
which is the third Wednesday of the month.
4. Registration of Content Type Profiles
This section defines procedures by which usage profiles for the MIME
Calendaring and Scheduling Content Type are registered with the IANA
and made available to the Internet community. Note that non-IANA
profiles may be used by bilateral agreement, provided the associated
profile names follow the "X-" convention defined above in Section
3.1.6.33.
The procedures defined here are designed to allow public comment and
review of new profiles, while posing only a small impediment to the
definition of new profiles.
Registration of a new profile is accomplished by the following steps.
4.1 Define the profile
A profile is defined by completing the following template.
To: ietf-calendar@imc.org
Subject: Registration of text/calendar MIME profile XXX
Profile name:
Profile purpose:
Profile type/subtype:
Profile special notes (optional):
Intended usage: (one of COMMON, LIMITED USE or OBSOLETE)
The explanation of what goes in each field in the template follows.
Profile name: The name of the profile as it will be generally
referred to in public. This name is required in the profile.
Profile purpose: The purpose of the profile (e.g., to schedule
document management updates, etc.). Give a short but clear
description. This description is required in the profile.
Profile type/subtype: The type/subtypes of the profile as they will
appear in the text/calendar MIME Content-Type Profile parameter. This
list of type/subtype values is required in the profile.
Profile properties: The list of MIME Calendaring and Scheduling
Content Type properties associated with the profile. This list of
properties that are included in the profile. If a property is
required by the profile, it should noted in this section. Other types
not mentioned in the profile definition may also be present. Note
Dawson 55 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
that any new properties referenced by the profile must be defined
separately as described in Section 4.6.
Profile special notes: Any special notes about the profile, how it is
to be used, etc. This section is not required in the profile.
4.2 Post the profile definition
The profile description must be posted to the IETF Calendaring and
Scheduling Working Group discussion list, ietf-calendar@imc.org.
4.3 Allow a comment period
Discussion on the new profile must be allowed to take place on the
list for a minimum of two weeks. Consensus must be reached on the
profile before submitting the profile for approval.
4.4 Submit the profile for approval
Once the two-week comment period has elapsed, and the proposer is
convinced consensus has been reached on the profile, the registration
application should be submitted to the Profile Reviewer for approval.
The Profile Reviewer is appointed to the Application Area Directors
and may either accept or reject the profile registration. An accepted
registration should be passed on by the Profile Reviewer to the IANA
for inclusion in the official IANA profile registry. The registration
may be rejected for any of the following reasons. 1) Insufficient
comment period; 2) Consensus not reached; 3) Technical deficiencies
raised on the list or elsewhere have not been addressed. The Profile
Reviewer's decision to reject a profile may be appealed by the
proposer to the IESG, or the objections raised can be addressed by
the proposer and the profile resubmitted.
4.5 Profile Change Control
Existing profiles may be changed using the same process by which they
were registered.
1.
Define the change
2.
Post the change
3.
Allow a comment period
4.
Submit the profile for approval
Note that the original author or any other interested party may
propose a change to an existing profile, but that such changes should
only be proposed when there are serious omissions or errors in the
published specification. The Profile Reviewer may object to a change
if it is not backwards compatible, but is not required to do so.
Dawson 56 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Profile definitions can never be deleted from the IANA registry, but
profiles which are no longer believed to be useful can be declared
OBSOLETE by a change to their "intended use" field.
4.6 Registration of New Content Type Properties
This section defines procedures by which new properties for the MIME
Calendaring and Scheduling Content Type are registered with the IANA.
Note that non-IANA properties may be used by bilateral agreement,
provided the associated properties names follow the "X-" convention
defined above in Section 3.1.6.33.
The procedures defined here are designed to allow public comment and
review of new properties, while posing only a small impediment to the
definition of new properties.
Registration of a new property is accomplished by the following
steps.
4.6.1 Define the property
A property is defined by completing the following template.
To: ietf-calendar@imc.org
Subject: Registration of text/calendar MIME property XXX
Property name:
Property purpose:
Property data type(s):
Property encoding:
Property special notes (optional):
Intended usage: (one of COMMON, LIMITED USE or OBSOLETE)
The meaning of each field in the template is as follows.
Property name: The name of the property, as it will appear in the
body of an text/calendar MIME Content-Type "property: value" line to
the left of the colon ":".
Property purpose: The purpose of the property (e.g., to indicate a
delegate for the event or todo, etc.). Give a short but clear
description.
Property data type(s): Any of the valid data types for the property
value needs to be specified. The default data type also needs to be
specified. If a new data type is specified, it needs to be declared
in this section.
Dawson 57 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Property encoding: The encodings permitted for the property value.
This description must be precise and must not violate the general
encoding rules defined in section 3.1.3.3of this document.
Property special notes: Any special notes about the property, how it
is to be used, etc.
4.6.2 Post the Property definition
The property description must be posted to the new property
discussion list, ietf-calendar@imc.org.
4.6.3 Allow a comment period
Discussion on the new property must be allowed to take place on the
list for a minimum of two weeks. Consensus must be reached on the
property before proceeding to step 4.
4.6.4 Submit the property for approval
Once the two-week comment period has elapsed, and the proposer is
convinced consensus has been reached on the property, the
registration application should be submitted to the Profile Reviewer
for approval. The Profile Reviewer is appointed to the Application
Area Directors and may either accept or reject the property
registration. An accepted registration should be passed on by the
Profile Reviewer to the IANA for inclusion in the official IANA
profile registry. The registration may be rejected for any of the
following reasons. 1) Insufficient comment period; 2) Consensus not
reached; 3) Technical deficiencies raised on the list or elsewhere
have not been addressed. The Profile Reviewer's decision to
reject a property may be appealed by the proposer to the IESG, or the
objections raised can be addressed by the proposer and the property
resubmitted.
4.7 Content Type Property Change Control
Existing properties may be changed using the same process by which
they were registered.
1.
Define the change
2.
Post the change
3.
Allow a comment period
4.
Submit the property for approval
Note that the original author or any other interested party may
propose a change to an existing property, but that such changes
should only be proposed when there are serious omissions or errors in
the published specification. The Profile Reviewer may object to a
Dawson 58 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
change if it is not backwards compatible, but is not required to do
so.
Property definitions can never be deleted from the IANA registry, but
properties which are no longer believed to be useful can be declared
OBSOLETE by a change to their "intended use" field.
5. File extension
The file extension of _vcs_ is to be used to designate a file
containing calendaring and scheduling information consistent with
this MIME content type.
6. Macintosh File Type Code
The file type code of _vcal_ is to be used in Apple MacIntosh
operating system environments to designate a file containing
calendaring and scheduling information consistent with this MIME
media type.
7. Bibliography
The following document are referred to within this document.
[ISO 630] ISO 639, Code for The Representation of names of languages,
International Organization for Standardization, April, 1988.
[ISO 3166] ISO 3166, Codes for The Representation of names of
countries, International Organization for Standardization, December,
1993.
[ISO 8601] ISO 8601, Data elements and interchange formats_
Information interchange_Representation of dates and times,
International Organization for Standardization, June, 1988.
[ISO 8601 CORR] ISO 8601, Technical Corrigendum 1, Data elements and
interchange formats_Information interchange_Representation of dates
and times, International Organization for Standardization, May, 1991.
[ISO 8859-1] ISO 8859-1, Information Processing_8-Bit single-byte
coded graphic character sets_Part 1: Latin Alphabet No. 1,
International Organization for Standardization, February, 1987.
[ISO 9070] ISO/IEC 9070, Information Technology_SGML Support
Facilities_Registration Procedures for Public Text Owner Identifiers,
Second Edition, International Organization for Standardization,
April, 1991.
[MIME-REG] Freed, N., Postel, J., "Multipurpose Internet Mail
Extensions (MIME) - Part Four: Registration Procedures", Internet-
Draft draft-ietf-822ext-mime-reg-02.txt, December 1995.
[RFC 1521] N. Borenstein and N. Freed, "MIME (Multipurpose Internet
Mail Extensions) Part One: Mechanisms for Internet Draft UTF-825 July
Dawson 59 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
1996 Specifying and Describing the Format of Internet Message
Bodies", RFC 1521, Bellcore, Innosoft, September 1993.
[RFC 1738] T. Berners-Lee and L. Masinter , _Universal Resource
Locator_, RFC 1738, Xerox Corporation, University of Minnesota,
December 1994.
[RFC 1766] H. Alvestrand, _Tags for the Identification of Languages_,
UNINETT, RFC 1766, March 1995.
[UNICODE] The Unicode Consortium, "The Unicode Standard --Worldwide
Character Encoding -- Version 1.0", Addison-Wesley, Volume 1, 1991,
Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4.
[US-ASCII] Coded Character Set--7-bit American Standard Code for
Information Interchange, ANSI X3.4-1986.
[VCAL] MIME calendaring entity - Calendaring and Scheduling Exchange
Format, Versit Consortium, September 18, 1996.
[XAPIA] XAPIA CSA, Calendaring and Scheduling Application
Programming Interface (CSA) Version 1.0, X.400 API Association,
November 15, 1994.
8. Acknowledgments
A hearty thanks to the IETF Calendaring and Scheduling Working Group
and also the following individuals who have participated in the
drafting, review and discussion of this memo:
Roland Alden, Harald T. Alvestrand, Denis Bigorgne, John Binici, Bill
Bliss, Andre Courtemanche, Dave Crocker, Alec Dun, Ross Finlayson,
Randell Flink, Ned Freed, Patrik Falstrom, Anik Ganguly, Chuck
Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Mark Horton,
Bruce Kahn, C. Harald Koch, Theodore Lorek, Keith Moore, Cecil
Rhodes, Chris Newman, Ralph Patterson, Pete Resnick, Keith Rhodes,
Robert Ripberger, Andras Salamar, Vinod Seraphin, Ken Shan, Andrew
Shuman, William P. Spencer, Mark Towfiq, Robert Visnov, James L.
Weiner, Mike Weston, William Wyatt.
9. Author's Address
The following address information is provided in a MIME-VCARD,
Electronic Business Card, format.
BEGIN:VCARD
FN:Frank Dawson
ORG:IBM Corporation
ADR;WORK;POSTAL;PARCEL:;APNA/CC-303/Bldg. 002;3039 Cornwallis Rd;
Research Triangle Park;NC;27709;USA
TEL;WORK;MSG:+1-919-254-5861
TEL;WORK;FAX:+1-919-543-6822
EMAIL;INTERNET,PREF:fdawson@raleigh.ibm.com
EMAIL;INTERNET:fdawson@earthlink.net
Dawson 60 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
URL:http://home.earthlink.net/~fdawson
END:VCARD
10. Examples
The following examples are provided as an informational source of
illustrative MIME entities containing data consistent with this MIME
content type.
The following is an example of a MIME message with a single entity
consisting of a text/calendar content type.
TO:jsmith@host1.com
FROM:jdoe@host1.com
MIME-VERSION:1.0
MESSAGE-ID:<19960704 08:30:00 EDT xyz@host1.com>
CONTENT-TYPE:text/calendar;PROFILE=request/event
BEGIN:VCALENDAR
PROFILE:event/request
VERSION:1.0
BEGIN:VEVENT
DTSTART:19960918T143000Z
DTEND:19960920T220000Z
CATEGORIES:CONFERENCE;PROJECT
SUMMARY:Networld+Interop Conference
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Networld+Interop Conference=
and Exhibit=0D=0A=
Atlanta World Congress Center=0D=0A=
Atlanta, Georgia
END:VEVENT
END:VCALENDAR
The following example message segment issues an event/request that
does not require any reply. The message is sent as a singular
_text/calendar_ content type, body part.
From: jsmith@host1.com
To: ietf-calendar@imc.org
Subject: First IETF-Calendar Working Group Meeting
MIME-Version: 1.0
Message-ID: <id1@host1.com>
Content-Type: text/calendar;Profile=event/request
BEGIN:VCALENDAR
PROFILE:event/request
DAYLIGHT:TRUE;-06:00;19960407T025959;19961027T010000;EST;EDT
PRODID:-//RDU Software//NONSGML HandCal//EN
TZ:-05:00
VERSION:1.0
BEGIN:VEVENT
ATTENDEE;EXPECT=REQUEST:ietf-calendar@imc.org
DESCRIPTION:First IETF-Calendaring and Scheduling Working Group
Meeting
Dawson 61 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
CATEGORIES:MEETING
CLASS:PUBLIC
DCREATED:19961022T083000
SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19961210T210000Z
DTEND:19961210T220000Z
LOCATION:San Jose, CA - Fairmont Hotel
UID:guid-1.host1.com
END:VEVENT
END:VCALENDAR
11. Extended Recurrence Grammar
The material in this section is provided as an informational
reference. It is copied, with permission of the XAPIA, from the
[XAPIA]. This section defines an extended recurrence rule grammar
that may be useful to implementations wishing to extend the
capability of the basic recurrence rule grammar defined by this
specification. The material is equally applicable to extended support
of the exception rules for repeating events.
11.1 Rule Introduction
A recurrence rule is made up of one or more recurrence frequencies.
The frequencies express the granularity of the repeating event. The
smallest granularity is based on minutes, the largest is based on
years. Each frequency is immediately followed by an interval. The
interval helps to define how often the frequency repeats (daily,
every third day, etc.):
D2
Where, where D is the Frequency and 2 is the Interval.
M5 Repeat every five minutes
D1 Repeat daily
D2 Repeat every other day
D3 Repeat every third day
W1 Repeat weekly
W2 Repeat every other week
W3 Repeat every third week
The meaning of the interval depends on the frequency. As an example,
the 5 in M5 is in minutes while the 3 in D3 is in days.
A rule can end with the duration symbol, #, followed by a number.
This defines the number of times the repetition occurs (including the
first time).
Dawson 62 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
D2 #5
Where, #5 is the Duration. In this example, the event occurs every
other day and the duration indicates it occur 5 times.
There may be other information between the frequency and the duration
that supplements the meaning of the rule:
D2 1200 1600 #5
In this example, the event occurs every other day at 1200 and 1600
for a total of 10 occurrences. The duration controls the number of
times the rule occurs. In this case the rule defines two occurrences
(1200 and 1600) so a total of 10 (2 x 5) occurrences are generated.
A rule can be made up of several recurrence rules:
MP6 1+ MO #5 D2 1200 1600 #5 M5 #3
This recurrence rule is made up of three recurrence rules. Every time
the first rule executes (every 6 months) it executes the next rule to
the right. If there is not a rule to the right an event is generated.
In this case there is a daily frequency rule to the right of the
monthly frequency rule. It executes twice a day; starting on the
first Monday of the month. The daily frequency rule executes a total
of ten times. Since there is a rule following the daily rule it
executes it each time the daily frequency rule executes. The minute
frequency rule is executed three times, every time the daily
frequency rule executes, for a total of six times a day. The above
rules generate a total of 150 (5 * (2 * 5) * 3) occurrences. An
occurrence specifier may be used in some rules. The occurrence
specifier controls which occurrence of a weekday in a month an event
occurs on:
1+, 2+, ... 5+ for the first occurrence, second, ...fifth
occurrence of the month.
1-, 2-...5- for the last occurrence, second to last occurrence, etc.
MP2 1+ 2- FR #3
Where, 1+ and 2- are Occurrence Specifiers.
This rule defines an event which happens every other month on the
first Friday and second to the last Friday of the month. It generates
a total of six occurrences. The end marker symbol $ can be used to
terminate a rule early:
W1 0100$ 0200 0300 #4
The above rule generates occurrences weekly for 4 weeks at 0100, 0200
and 0300. On the last (fourth week) an event is generated at 0100
only.
Dawson 63 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Recurrence rules are written from largest granularity to smallest.
11.2 Grammar
The following grammar defines the extended recurrence rule syntax.
{} 0 or more
[] 0 or 1
start ::= <minuteop> [<enddate>] |
<daily> [<enddate>] |
<weekly> [<enddate>] |
<monthlybypos> [<enddate>] |
<monthlybyday> [<enddate>] |
<yearlybymonth> [<enddate>] |
<yearlybyday> [<enddate>]
digit ::= <0|1|2|3|4|5|6|7|8|9>
digits ::= <digit> {<digits>}
endmarker ::= $
enddate ::= ISO 8601 (clause 5.4.1) string(e.g.
19940712T101530Z) in UTC
interval ::= <digits>
duration ::= #<digits>
lastday ::= LD
plus ::= +
minus ::= -
daynumber ::= <1-31>[<plus>|<minus>][<endmarker>] | <lastday>
daynumberlist ::= daynumber {<daynumber>}
month ::= <1-12>[<endmarker>]
monthlist ::= <month> {<monthlist>}
day ::= <1-366>[<endmarker>]
daylist ::= <day> {<daylist>}
Dawson 64 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
occurrence ::= <1-5><plus>[<endmarker>] | <1-5><minus>[<endmarker>]
occurrencelist ::= <occurrence> {<occurrencelist>}
weekday ::= <SU|MO|TU|WE|TH|FR|SA>[<endmarker>]
weekdaylist ::= <weekday> {<weekdaylist>}
time ::= <hhmm>[<endmarker>]
timelist ::= <time> {<timelist>}
daytime ::= <weekday> {<timelist>} {<daytime>}
weekdaytime ::= <occurrencelist> <weekdaylist> {<timelist>}
{<weekdaytime>}
minuteop ::= M<interval> [<duration>]
daily ::= D<interval> [<timelist>] [<duration>] [<minuteop>]
weekly ::= W<interval> <daytime> [<duration>] [<minuteop>]
monthlybypos ::= MP<interval> [<weekdaytime>]
[<duration>][<weekly> | <daily> | <minuteop>]
monthlybyday ::= MD<interval> [<daynumberlist>] [<duration>]
[<weekly> | <daily> | <minuteop>]
yearlybymonth ::= YM<interval> [<monthlist>] [<duration>]
[<monthlybyday> | <monthlybypos> | <weekly>
| <daily> | <minuteop>]
yearlybyday ::= YD<interval> [<daylist>] [<duration>]
[<monthlybyday> | <monthlybypos> | <weekly>
| <daily> | <minuteop>]
11.3 Glossary
enddate Controls when a repeating event terminates. The enddate
is the last time an event can occur.
enddate Controls when a repeating event terminates.
interval Defines the frequency in which a rule repeats.
duration Controls the number of occurrences a rule generates.
lastday Can be used as a replacement to daynumber to indicate
the last day of the month.
daynumber A number representing a day of the month.
month A number representing a month of the year.
Dawson 65 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
day A number representing a day of the year.
occurrence Controls which week of the month a particular weekday
event occurs.
weekday A symbol representing a day of the week.
time The time in hours and minutes using a 24 hour clock.
daytime Controls which days (and hours) of the week a weekly
event occurs.
weekdaytime Used in monthly occurrences to specify which weeks and
days an event occurs.
minuteop Defines a rule that repeats on a particular minute
interval.
daily Defines a rule that repeats on a daily basis.
weekly Defines a rule that repeats on a weekly basis.
monthlybypos Defines a rule that repeats on a monthly basis on a
relative day and week.
monthlybyday Defines a rule that repeats on a monthly basis on an
absolute day.
yearlybymonth Defines a rule that repeats on specific months
of the year.
yearlybyday Defines a rule that repeats on specific days of the
year.
11.4 Policies
1.
The duration portion of a rule defines the total number of
occurrences the rule generates, including the first event. As an
example, the rule MP1 #3 W1 #3 starting on 1/1/94 would generate
occurrences on 1/1/94, 1/8, 1/15, 2/5/94, 2/12, 2/19, 3/5/94,
3/12, 3/19.
2.
The duration granularity is defined by the recurrence frequency
immediately preceding the duration portion of the rule. For
example, D1 #5 M15 #4 establishes a repeating event which happens
for five days, four times per day.
3.
Information, not contained in the rule, necessary to determine the
next event time and date is derived from the event start time.
4.
If no specific time is indicated in the recurrence rule it is
taken from the event.
Dawson 66 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
5.
If an end date and a duration for the first rule in a nested rule
are specified in the rule, then the recurring event ceases when
the end date is reached or the number of occurrences indicated in
the duration occur; whichever comes first.
6.
If the duration or and end date is not established in the rule
(e.g. ``D2'') the event occurs twice. That is D2 is equivalent to
D2 #2.
7.
If an end-mark is used in a second or later rule of a nested rule,
then the end-mark is applied each time that rule is executed by
the previous rule. YM1 1 6 #1 MD1 7$ 14 generates occurrences on
1/7 1/14 2/7 6/7 6/14 7/7.
8.
If an end-mark is used on a day of the week which is followed by
several times (TU$ 1200 1300) or an end-mark is used on a week
occurrence that is followed by several weekdays (1+$ TU WE) the
repeating event stops after the last time or week day in the list
is executed.
9.
If a rule has an ambiguity with respect to whether it will repeat
on a specific day (12th of the month) versus on a relative day
(2nd Friday of the month), the specific day takes precedence. The
only exception to this policy is policy 14.
10.
A duration of #0 means repeat this event forever.
11.
Nested rules can not have a duration of 0. These are not allowed:
YM1 6 #10 MP1 1+ SA #0
D5 0600 0800 #5 M5 #0
12.
Using the occurrence specifier 5+ (e.g. 5th Friday) or 5- (e.g.
5th from last Friday) in a month that does not contain 5 weeks
does not generate an event and thus does not count against the
duration. The same applies to providing a day of the month that
does not occur in the month: 31st.
13.
The start time and date of an event must be in-sync with one of
the event slots defined by its occurrence rule. The following are
not allowed:
Initial Appt Time: 1300
Recurrence Rule: D1 1400 #5
Initial Appt Date: 7/1/94 (Friday)
Recurrence Rule: W1 MO TH #5
The following are acceptable:
Initial Appt Time: 1300
Recurrence Rule: D1 #5 or D1 1300 #5
Initial Appt Date: 7/1/94 (Friday)
Recurrence Rule: W1 MO FR #5 or W1 #5
Dawson 67 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
14.
If the optional <weekdaytime> information is missing from a
<monthlybypos> frequency, the information is derived from the
initial event. The <occurrence> used in the recurring event is a
count from the beginning of the month to the event date and the
<weekday> used is the day of the week the initial event is
scheduled to occur on. If the <monthlybypos> frequency does not
list a week day (e.g. SU) in the rule, then the week day is
established from the initial event information. As an example, the
rule MP1 #3 used in an event with a start date of 7/20/94 (which
is the third Wed of the month) will repeat on 8/17/94 which is the
third Wed of the month.
15.
The next event of a higher order rule does not execute until all
the occurrences of a sub-rule are generated. If the next event of
a higher order rule comes earlier in time than the last event of a
sub-rule then the missed occurrences are not generated. In other
words, sub-rules can not interleave occurrences with other sub-
rules. The following results in indeterminate results because the
minute sub-rule which begins to execute at 0630 generates
occurrences beyond 0700 which is when the daily sub-rule begins
executing again:
D1 0630 0700 #4 M45 #5
Another incorrect rule:
MP1 1+ 1- #3 W2 TU TH #5
11.5 Examples
Hourly for 12 hours (12:00, 1:00,...10:00, 11:00):
M60 #12
Every 5 minutes for 1 hour (1:00, 1:05, 1:10,...1:50, 1:55):
M5 #12
Daily, for 5 days:
D1 #5
Daily, for 5 days repeating at 10 minute intervals for 1 hour. e.g.
6/1 at 12:00, 12:10, 12:20, ... 12:50; 6/2 at 12:00, 12:10, ...
D1 #5 M10 #6
Every other day, two times:
D2
Every other day at 6AM, 12noon and 3PM for a duration of two
occurrences (span of three days). e.g. 6/1/94 at 6, 12 and 3PM and
6/3/94 at 6, 12 and 3PM.
Dawson 68 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
D2 0600 1200 1500 #2
Every other day at 6AM, 12noon and 3PM for a duration of three
occurrences (a span of 5 days) stopping at noon on the fifth day.
e.g. 6/1/94 at 6, 12, and 3, 6/3/94 at 6, 12 and 3 and 6/5/94 at 6
and 12.
D2 0600 1200$ 1500 #3
Weekly at 6 AM (repeat every 15 minutes for an hour) for five weeks.
e.g. 6:00, 6:15, 6:30, 6:45 on 6/1, 6/8, 6/15, 6/22 and 6/29.
D7 0600 #5 M15 #4
Weekly at 6 AM (repeat every 15 minutes for an hour) for four weeks
stopping at 6AM on the last event day. e.g. 6:00, 6:15, 6:30, 6:45 on
6/1, 6/8, 6/15 and 6:00 on 6/22.
D7 0600$ #4 M15 #4
Weekly at 6 AM (repeat every 15 minutes for an hour) for 1 week
stopping at 6:45AM. e.g. 6:00, 6:15, 6:30, 6:45 on 6/1.
D7 0600 #1 M15 #4 or
D7 #1 M15 #4 /* start time defined in appt entry */ or
M15 #4 /* start time defined in appt entry */
Weekly for four weeks:
W1 #4
Biweekly on Monday and Tuesday for 2 occurrences ending on a Monday:
W2 MO$ TU #2
Weekly on Tuesday and Thursday at the time specified in the appt and
repeated at time + 5 minutes:
W1 TU TH #3 M5 #2
Weekly on Tuesday at 1200 and 1230 and Thursday at 1130 and 1200 for
10 weeks:
W1 TU 1200 TH 1130 #10 M30 or
W1 TU 1200 1230 TH 1130 1200 #10
Weekly on Tuesday at 1200 and 1230 and Thursday at 1130 and 1200 for
10 weeks stopping on the last TU at 1230:
W1 TU$ 1200 TH 1130 #10 M30 or
Dawson 69 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
W1 TU$ 1200 1230 TH 1130 1200 #10
Weekly on Tuesday at 1200 and 1230 and Thursday at 1130 and 1200 for
10 weeks stopping on the last Tuesday at 1200:
W1 TU 1200$ 1230 TH 1130 1200 #10
Monthly for 1 year:
MP1 #12
Every other month on the first and last Friday of the month for 5
months:
MP2 1+ 1- FR #3
Monthly on the second to the last day of the month for 5 months:
MD1 2- #5
Monthly on the second to the last Monday of the month for 6 months:
MP1 2- MO #6
Monthly on the third to the last day of the month for forever:
MD1 3- #0
Monthly on the seventh to the last day of the month for 12 months:
MD1 7- #12
Every other month on the first and last Friday of the month for 5
months stopping on the first Friday in the fifth month:
MP2 1+$ 1- FR #3
Every six months on the first Monday of the month (repeat for 5 days)
for 24 months:
MP6 1+ MO #5 D1 #5
Every six months on the first Monday of the month (repeat every other
day at 0600, 1200 and 1500 for 20 days) for 24 months:
MP6 1+ MO #5 D2 0600 1200 1500 #10
Every six months on the first Monday of the month (repeat every other
day at 0600, 1200 and 1500 for 20 days (repeat every 5 minutes for 3
times)) for 24 months:
MP6 1+ MO #5 D2 0600 1200 1500 #10 M5 #3
Dawson 70 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Every six months on the first Monday of the month and the second to
last Thursday of the month (repeat five minutes later) for 24 months:
MP6 1+ MO 2- TH #5 M5 #2
Every six months on the first SU and MO at Noon, the second TU and WE
at 1:00PM and the third TH and FR at 2:00PM:
MP6 1+ SU MO 1200 2+ TU WE 1300 3+ TH FR 1400 #4
Every month on the 7th for 12 months:
MD1 7 #12
Every month on the 7th, 14th, 21st, 28th for 12 months
MD1 7 14 21 28 #12
Every month on the 10th and 20th for 24 months - daily for 5 days at
0600, 1200 and 1600 - every 15 minutes for an hour:
MD1 10 20 #24 D1 0600 1200 1600 #5 M15 #4
Yearly on the 1st, 6th and 12 month on the first Monday and last
Friday of the month:
YM1 1 6 12 #5 MP1 1+ MO 1- FR
Every other year on the 6th month (on the 12th day) for 5 years.
YM2 6 #3 MD1 12
Yearly on the 7th 14th 21st and 28th of the 1st 3rd and 8th month and
on the 7th and 14th of the 2nd, 4th and 9th months ending on the 4th
month, 14th day of the 5th year:
YM1 1 3$ 8 #5 MD1 7 14$ 21 28
Yearly on the 6th, 9th and 10th month on all weekends of the month:
YM1 6 9 10 #10 MP1 1+ 2+ 3+ 4+ 1- SA SU #1
Yearly on the 6th month for 10 years, weekly on Tuesday and Thursday
at 1100 and 1300 for 4 weeks:
YM1 6 #10 W1 TU TH 1100 1300 #4
Yearly on the 1st, 100th, 200th and 300th day for 4 years:
YD1 1 100 200 300 #4
Yearly on the 1st - 5th days and 100th - 104th days:
YD1 1 100 #5 D1 #5
Dawson 71 Expires June 1997
Internet Draft MIME C&S Content Type November 26, 1996
Yearly on the 1st - 5th days and 100th - 104th days stopping on
1/2/99:
YD1 1 100 D1 #5 19990102T000000Z
Dawson 72 Expires June 1997