Network Working Group Frank Dawson Internet Draft IBM Corporation October 31, 1996 Expires May 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 May 1997 Internet Draft MIME C&S Content Type October 31, 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 Message Header Fields ..............................7 3.1.2.1 Content-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 ...........................................15 3.1.3.10 Binary Property Values ..................................16 3.1.3.11 Recurrence Rule Grammar .................................16 3.1.4 Body Delimiter Properties ....................................16 3.1.4.1 Calendar Object ..........................................17 3.1.4.2 Event Component ..........................................17 3.1.4.3 Todo Component ...........................................18 3.1.5 Calendar Object Properties ...................................18 3.1.5.1 Daylight Savings Rule ....................................18 3.1.5.2 Geographic Position ......................................19 3.1.5.3 Product Identifier .......................................19 3.1.5.4 Time Zone ................................................20 3.1.5.5 Version ..................................................20 3.1.6 Event and Todo Component Properties ..........................20 3.1.6.1 Attachment ...............................................21 3.1.6.2 Attendee .................................................21 3.1.6.3 Audio Reminder ...........................................25 Dawson 2 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 3.1.6.4 Categories ...............................................26 3.1.6.5 Classification ...........................................27 3.1.6.6 Date/Time Created ........................................28 3.1.6.7 Date/Time Completed ......................................29 3.1.6.8 Description ..............................................29 3.1.6.9 Display Reminder .........................................29 3.1.6.10 Due Date/Time ...........................................30 3.1.6.11 Duration ................................................30 3.1.6.12 End Date/Time ...........................................30 3.1.6.13 Exception Date/Times ....................................31 3.1.6.14 Exception Rule ..........................................31 3.1.6.15 Last Modified ...........................................31 3.1.6.16 Location ................................................32 3.1.6.17 Mail Reminder ...........................................32 3.1.6.18 Number Recurrences ......................................33 3.1.6.19 Priority ................................................33 3.1.6.20 Procedure Reminder ......................................33 3.1.6.21 Related To ..............................................34 3.1.6.22 Recurrence Date/Times ...................................34 3.1.6.23 Recurrence Rule .........................................35 3.1.6.24 Resources ...............................................35 3.1.6.25 Response Sequence Number ................................36 3.1.6.26 Sequence Number .........................................36 3.1.6.27 Start Date/Time .........................................37 3.1.6.28 Status ..................................................37 3.1.6.29 Summary .................................................38 3.1.6.30 Time Transparency .......................................38 3.1.6.31 Uniform Resource Locator ................................39 3.1.6.32 Unique Identifier .......................................39 3.1.6.33 Non-standard Properties .................................40 3.2 Formal Definition ...............................................40 3.3 Basic Recurrence Rule Grammar ...................................45 3.3.1 Daily Rule ...................................................46 3.3.2 Weekly Rule ..................................................46 3.3.3 Monthly Rule .................................................47 3.3.4 Yearly Rule ..................................................48 3.3.5 Grammar ......................................................48 3.3.6 Grammar Glossary .............................................50 3.3.7 Policies .....................................................50 4. Registration of Content Type Profiles..............................51 4.1 Define the profile ..............................................52 4.2 Post the profile definition .....................................52 4.3 Allow a comment period ..........................................52 4.4 Submit the profile for approval .................................53 4.5 Profile Change Control ..........................................53 4.6 Registration of New Content Type Properties .....................53 4.6.1 Define the property ..........................................54 4.6.2 Post the Property definition .................................54 4.6.3 Allow a comment period .......................................54 4.6.4 Submit the property for approval .............................55 4.7 Content Type Property Change Control ............................55 5. File extension.....................................................55 6. Macintosh File Type Code...........................................55 7. Bibliography.......................................................56 Dawson 3 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 8. Acknowledgments....................................................57 9. Author's Address...................................................57 10. Examples..........................................................57 11. Extended Recurrence Grammar.......................................58 11.1 Rule Introduction ..............................................58 11.2 Grammar ........................................................60 11.3 Glossary .......................................................61 11.4 Policies .......................................................62 11.5 Examples .......................................................64 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 a file system, 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. The specification also includes a formal grammar for the content type to aid in the implementation of parsers and to serve as the Dawson 4 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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: None Optional parameters: CHARSET Additional required content header fields: CONTENT-ID, CONTENT- PROFILE, 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@us1.ibm.com (Internet Mail) Dawson 5 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 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 May 1997 Internet Draft MIME C&S Content Type October 31, 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 Message Header Fields In addition to the existing message header fields defined by [RFC 822], [RFC 1521] and [RFC 1766], this document defines some additional message header fields to be used by the MIME Calendaring and Scheduling Content Type. 3.1.2.1 Content-Profile The MIME Calendar Object defines the Content-Profile header field. This header field is used to specify a usage profile for the MIME Calendaring and Scheduling Content Type. The value of this header fields 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 Dawson 7 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 message, 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 header field 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 header field for specifying an event request message, such as in a request for a meeting or appointment: CONTENT-PROFILE:EVENT/REQUEST The following is an example of this header field for specifying a todo delegation message, such as delegating a task to another individual: CONTENT-PROFILE:TODO/DELEGATE The following is an example of this header field for specifying a free-busy time request, such as when searching for a free time for a meeting: CONTENT-PROFILE:FREE-BUSY/REQUEST This header field 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 May 1997 Internet Draft MIME C&S Content Type October 31, 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 May 1997 Internet Draft MIME C&S Content Type October 31, 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 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 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 May 1997 Internet Draft MIME C&S Content Type October 31, 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 May 1997 Internet Draft MIME C&S Content Type October 31, 1996 Indicates a BOOLEAN Boolean value string of either TRUE or FALSE. Indicates a CID string identifier value for the content identifier of another MIME entity within the current message. Indicates a DALARM display alarm value, as specified by this document. Indicates an DATE-TIME ISO 8601 formatted 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 May 1997 Internet Draft MIME C&S Content Type October 31, 1996 Indicates a FLOAT-LIST list of string representations of floating point values. Indicates a numeric string representation of an integer 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 May 1997 Internet Draft MIME C&S Content Type October 31, 1996 value in the current character set. Indicates a STRING-LIST list of text string values in the current character set. Indicates an TIME-OFFSET ISO 8601 formatted time offset value Indicates a RFC 1738 formatted Uniform Resource URL 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. The format for the complete, basic representation of a date and time value is written in the following sequence of characters: T For example, 8:30 AM on April 15, 1996 local time would be written as: 19960415T083000 And the same time in UTC based time would be written as: 19960415T083000Z The format for the complete, extended representation of a date and time value is written in the following sequence of characters: _-_ _ _ - _T_ _:_ _:_ *1(_Z_) Dawson 14 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 For example, 8:30 AM on April 15, 1996 local time would be written as: 1996-04-15T08:30:00 And the same time in UTC based time would be written as: 1996-04-15T08: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. 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 basic 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_. 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 Dawson 15 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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: 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 Dawson 16 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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. 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 Dawson 17 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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 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 Dawson 18 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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.2 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.3 Product Identifier This property is identified by the property name PRODID. This property specifies the identifier for the product that created the Dawson 19 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 3.1.5.4 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:-05 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.5 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. Dawson 20 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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: ATTACH;VALUE=CONTENT-ID: 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: Description Property Value Dawson 21 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. The default value for this property parameter is ATTENDEE. Dawson 22 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 is tentatively accepted by TENTATIVE 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 23 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. Indicates REQUIRE presence is definitely required. Indicates REQUEST presence is being requested Indicates an IMMEDIATE immediate response needed. Dawson 24 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 ATTENDEE;ROLE=ATTENDEE;STATUS=TENTATIVE:Henry Cabot ATTENDEE;ROLE=DELEGATE;STATUS=CONFIRMED:Jane Doe 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 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; The property has the following additional property parameters: Dawson 25 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 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: Dawson 26 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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 Dawson 27 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 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 Dawson 28 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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:19960401T235959 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. 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: Dawson 29 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 DALARM:19960415T235000;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 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 Dawson 30 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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 Dawson 31 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. The following is an example of this property: MALARM:19960416T000000;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. Dawson 32 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 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 Dawson 33 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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;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: RELATED-TO: 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 Dawson 34 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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: Some Possible Property Values CATERING CHAIRS COMPUTER PROJECTOR EASEL OVERHEAD PROJECTOR Dawson 35 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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 Dawson 36 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 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.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 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: Description Property Value Indicates todo ACCEPTED was accepted Indicates event NEEDS ACTION or todo requires action Indicates event SENT or todo was sent out. Indicates event TENTATIVE Dawson 37 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 is tentatively accepted Indicates event CONFIRMED is confirmed Indicates event DECLINED or todo has been declined Indicates todo COMPLETED has been completed Indicates event DELEGATED or todo has been delegated Indicates event CANCELLED or todo has been canceled. The default value for this property is NEEDS ACTION. This property is required for MIME entities containing a todo calendar component conforming to this content type. This property is optional for MIME entities containing an event calendar component conforming to this content type. The default data type for this property is STRING. 3.1.6.29 Summary This property is identified by the property name SUMMARY. This property defines a short summary or subject of the MIME calendar component. The following is an example of this property: SUMMARY:Department Party This property is required for MIME entities conforming 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 Dawson 38 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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. Dawson 39 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 = ; ( 15, 13.) LF = ; ( 12, 10.) CRLF = CR LF SPACE = ; ( 40, 32.) HTAB = ; ( 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 Dawson 40 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 ; The value must be in the encoding type specified for the ; property value. 7bit = <7bit us-ascii printable chars, excluding CR LF> 8bit = quoted-printable = base64 = ; 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 = 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 / 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 = _DAYLIGHT_ Dawson 41 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 [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 / [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 Dawson 42 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 / [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_ / _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 Dawson 43 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 / _LANGUAGE_ [ws] _=_ [ws] langval / _MEMBER_ [ws] _=_ [ws] / _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_ Dawson 44 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 / _X-_ word charsetval = 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 = 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 ; with a _\_ character. nonsemi = 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 Dawson 45 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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 Dawson 46 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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: 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 Dawson 47 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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: 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 ::= [] | [] | [] | [] | Dawson 48 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 [] | [] digit ::= <0|1|2|3|4|5|6|7|8|9> digits ::= {} enddate ::= ISO 8601_date_time value(e.g., 19940712T101530Z) interval ::= duration ::= # lastday ::= LD plus ::= + minus ::= - daynumber ::= <1-31> [|]| daynumberlist ::= daynumber {} month ::= <1-12> monthlist ::= {} day ::= <1-366> daylist ::= {} occurrence ::= <1-5> | <1-5> occurrencelist ::= {} weekday ::= weekdaylist ::= {} daily ::= D [] weekly ::= W [] [] monthlybypos ::= MP [ ] [] monthlybyday ::= MD [] [] yearlybymonth ::= YM [] [] yearlybyday ::= YD [] [] Dawson 49 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 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. Dawson 50 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 and information is missing from a occurrence the information is derived from the entry attributes. The used in the recurring event is a count from the beginning of the month to the entry date and the used is the day of the week the entry is scheduled to occur on. 9. If the occurrence or 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 (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. Dawson 51 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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-Profile header field. 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 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. Dawson 52 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 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. Dawson 53 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. 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. Dawson 54 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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. Dawson 55 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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 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. Dawson 56 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 [XAPIA] XAPIA CSA, Calendaring and Scheduling Application Programming Interface (CSA) Version 1.0, X.400 API Association, November 15, 1994. 8. Acknowledgments The following have participated in the drafting and discussion of this memo: Roland Alden, John Binici, Alec Dun, Anik Ganguly, Bruce Kahn, Ralph Patterson, Ralph Ripberger, Vinod Seraphin 9. Author's Address The following address information is provided in a vCard v2.1, 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@us1.ibm.com EMAIL;INTERNET:fdawson@earthlink.net 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 CONTENT-PROFILE:request/event BEGIN:VCALENDAR 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= Dawson 57 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 Atlanta World Congress Center=0D=0A= Atlanta, Georgia 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). D2 #5 Dawson 58 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 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. Recurrence rules are written from largest granularity to smallest. Dawson 59 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 11.2 Grammar The following grammar defines the extended recurrence rule syntax. {} 0 or more [] 0 or 1 start ::= [] | [] | [] | [] | [] | [] | [] digit ::= <0|1|2|3|4|5|6|7|8|9> digits ::= {} endmarker ::= $ enddate ::= ISO 8601 (clause 5.4.1) string(e.g. 19940712T101530Z) in UTC interval ::= duration ::= # lastday ::= LD plus ::= + minus ::= - daynumber ::= <1-31>[|][] | daynumberlist ::= daynumber {} month ::= <1-12>[] monthlist ::= {} day ::= <1-366>[] daylist ::= {} occurrence ::= <1-5>[] | <1-5>[] Dawson 60 Expires May 1997 Internet Draft MIME C&S Content Type October 31, 1996 occurrencelist ::= {} weekday ::= [] weekdaylist ::= {} time ::= [] timelist ::=