iCalendar
Click on the red underlined text to get to the source
... Internet Calendaring and Scheduling Core Object Specification, or
iCalendar, allows for the capture and exchange of information
normally stored within a calendaring and scheduling application; such
...
...
The iCalendar format is suitable as an exchange format between
applications or systems. The format is defined in terms of a MIME
content type. This will enable the object to be exchanged using
...
...
The memo also provides for the definition of iCalendar object methods
that will map this content type ...
... to, modifying, and canceling meetings or appointments, to-dos and
journal entries. The iCalendar object methods can be used to define
other calendaring and scheduling operations such a requesting for and
...
... other calendaring and scheduling operations such a requesting for and
replying with free/busy time data. Such a scheduling protocol is
defined in the iCalendar Transport-independent Interoperability
Protocol (iTIP) defined in [ITIP ...
... quoted-strings of text, followed by the word "property". For example,
"ATTENDEE" property refers to the iCalendar property used to convey
the calendar address of a calendar user ...
... by this memo are referred to with lowercase, quoted-strings of text,
followed by the word "parameter". For example, "value" parameter
refers to the iCalendar property parameter used to override the
default data type for a property value. Enumerated values defined by
...
... information. It also is an identifier for the restricted set of
properties and values that the iCalendar object consists of. The
parameter is to be used as a guide for applications interpreting the
information contained within the body part. It SHOULD NOT be used to
...
... method" parameter MUST be the same value as that
specified in the "METHOD" component property in the iCalendar object.
If one is present, the other MUST also be present.
...
... method
The "component" parameter conveys the type of iCalendar calendar
component within the body part. If the iCalendar object contains more
...
... The "component" parameter conveys the type of iCalendar calendar
component within the body part. If the iCalendar object contains more
than one calendar component type, then multiple component parameters
...
...
The "optinfo" parameter conveys optional information about the
iCalendar object within the body part. This parameter can only
specify semantics already specified by the iCalendar ...
... iCalendar object within the body part. This parameter can only
specify semantics already specified by the iCalendar object and that
can be otherwise determined by parsing the body part. In addition,
the optional information specified by this parameter MUST be
...
... can be otherwise determined by parsing the body part. In addition,
the optional information specified by this parameter MUST be
consistent with that information specified by the iCalendar object.
For example, it can be used to convey the "Attendee" response status
to a meeting request. The parameter value ...
... This parameter MAY only specify semantics already specified by the
iCalendar object and that can be otherwise determined by parsing the
body part.
...
... MIME content-transfer-encodings might be
necessary when iCalendar objects are transferred across protocols
restricted to the 7bit repertoire. Note that a text valued property
in the content entity ...
... VJOURNAL" calendar component and redistribute the updates to the
"Attendees". An iCalendar object that maliciously changes or cancels
an existing "VEVENT", "VTODO ...
... parameter associated with their "ATTENDEE" property and send it to
the "Organizer". An iCalendar object that maliciously changes the
"ATTENDEE" parameters can be constructed by someone other than the
...
... real "Attendee" and sent to the "Organizer".
PROCEDURAL ALARMS - - An iCalendar object can be created that
contains a "VEVENT ...
... as a result of executing the attachment.
ATTACHMENTS - - An iCalendar object can include references to Uniform
Resource Locators that can be programmed resources.
...
... iCalendar Object Specification ...
...
The iCalendar object is organized into individual lines of text,
called content lines. Content lines are delimited by a line break,
...
... according to the folding procedure described above.
The content information associated with an iCalendar object is
formatted using a syntax similar to that defined by [RFC2425]. That
...
... CRLF-separated content lines.
The following notation defines the lines of content in an iCalendar
object:
...
...
Some properties defined in the iCalendar object can have multiple
values. The general rule for encoding multi-valued items is to simply
...
...
Binary content information in an iCalendar object SHOULD be
referenced using a URI within a property value. That is the binary
...
... entity that
can be referenced by a URI from within the iCalendar object. In
applications where this is not feasible, binary content information
can be included within an iCalendar ...
... iCalendar object. In
applications where this is not feasible, binary content information
can be included within an iCalendar object, but only after first
encoding it into text using the "BASE64 ...
... [RFC2045]. Inline binary contact SHOULD only be used in applications
whose special circumstances demand that an iCalendar object be
expressed as a single entity. A property containing inline binary
...
... content information MUST specify the "ENCODING" property parameter.
Binary content information placed external to the iCalendar object
MUST be referenced by a uniform resource identifier (URI ...
...
The following example specifies an "ATTACH" property that references
an attachment external to the iCalendar object with a URI reference:
...
... character set used
in a property value. The default character set for an iCalendar
object is UTF-8 as defined in [RFC2279 ...
... / ianaparam
; Some other IANA registered iCalendar parameter.
/ xparam
; A non-standard, experimental ...
... token ; Some other IANA registered
; iCalendar relationship type
/ x-name) ; A non-standard, experimental
...
... TZID" parameter value
specified in the iCalendar object.
The parameter MUST be specified on properties with a DATE-TIME value ...
... VTIMEZONE" calendar components in the
iCalendar object.
For more information see the sections on the data types DATE-TIME ...
...
The properties in an iCalendar object are strongly typed. The
definition of each property restricts the value to be one of the
value data types, or simply value types, defined in this section. The
...
... character encoding of inline binary data. For example, an inline
attachment of an object code might be included in an iCalendar
object.
...
... PM
every day, no matter which time zone the person is in. In these
cases, a local time can be specified. The recipient of an iCalendar
object with a property value consisting of a local time, without any
relative time zone information, SHOULD interpret the value as being
...
... existence of "VTIMEZONE" calendar components in the iCalendar object.
FORM #2: DATE WITH UTC TIME ...
... Formal Definition: The character sets supported by this revision of
iCalendar are UTF-8 and US ASCII thereof. The applicability to other
...
... PM
every day, no matter which time zone the person is in. In these
cases, a local time can be specified. The recipient of an iCalendar
object with a property value consisting of a local time, without any
relative time zone information, SHOULD interpret the value as being
...
... data type might be used to reference binary
information, for values that are large, or otherwise undesirable to
include directly in the iCalendar object.
The URI ...
... iCalendar Object ...
... The Calendaring and Scheduling Core Object is a collection of
calendaring and scheduling information. Typically, this information
will consist of a single iCalendar object. However, multiple
iCalendar objects can be sequentially grouped together. The first
...
... will consist of a single iCalendar object. However, multiple
iCalendar objects can be sequentially grouped together. The first
line and last line of the iCalendar object MUST contain a pair of
...
... iCalendar objects can be sequentially grouped together. The first
line and last line of the iCalendar object MUST contain a pair of
iCalendar object delimiter strings. The syntax for an iCalendar ...
... line and last line of the iCalendar object MUST contain a pair of
iCalendar object delimiter strings. The syntax for an iCalendar
object is as follows:
...
... iCalendar object MUST contain a pair of
iCalendar object delimiter strings. The syntax for an iCalendar
object is as follows:
...
... DTSTART:19960415T133000Z
This memo imposes no ordering of properties within an iCalendar
object.
...
...
The body of the iCalendar object consists of a sequence of calendar
properties and one or more calendar components ...
... calendar
properties. In addition, it MUST include at least one calendar
component. Special forms of iCalendar objects are possible to publish
just busy time (i.e., only a "VFREEBUSY" calendar component ...
... VTIMEZONE" calendar component) information. In
addition, a complex iCalendar object is possible that is used to
capture a complete snapshot of the contents of a calendar ...
... composite of many different calendar components). More commonly, an
iCalendar object will consist of just a single "VEVENT", "VTODO" or
...
... VFREEBUSY" calendar components can be
specified within an iCalendar object. This permits the grouping of
Free/Busy information into logical collections, such as monthly
groups ...
... The "VFREEBUSY" calendar component is intended for use in iCalendar
object methods involving requests for free time, requests for busy
...
... URL:http://host2.com/pub/busy/jpublic-01.ifb
COMMENT:This iCalendar file contains busy time information for
the next three months.
...
... Multiple "VTIMEZONE" calendar components can exist in an iCalendar
object. In this situation, each "VTIMEZONE" MUST represent a unique
...
... The "VTIMEZONE" calendar component MUST be present if the iCalendar
object contains an RRULE that generates dates on both sides of a time
zone shift (e.g. both in Standard Time and Daylight Saving Time)
...
... object contains an RRULE that generates dates on both sides of a time
zone shift (e.g. both in Standard Time and Daylight Saving Time)
unless the iCalendar object intends to convey a floating time (See
the section "4.1.10.11 Time" for proper interpretation of floating
time). It can be present if the iCalendar ...
... iCalendar object intends to convey a floating time (See
the section "4.1.10.11 Time" for proper interpretation of floating
time). It can be present if the iCalendar object does not contain
such a RRULE. In addition, if a RRULE is present, there MUST be valid
...
... identifies the VTIMZONE calendar component within the scope of an
iCalendar object.
The optional "LAST-MODIFIED" property is a UTC ...
... identifies the VTIMZONE calendar component within the scope of an
iCalendar object.
The optional "LAST-MODIFIED" property is a UTC ...
... specifies the argument string to be passed to the procedure or
program. "Calendar User Agents" that receive an iCalendar object with
this category of alarm, can disable or allow the "Calendar User ...
...
The Calendar Properties are attributes that apply to the iCalendar
object, as a whole. These properties do not appear within a calendar
component. They SHOULD be specified after the "BEGIN:VCALENDAR ...
... calendar scale used for the
calendar information specified in the iCalendar object.
Value Type: TEXT
...
... specified on this property.
Conformance: Property can be specified in an iCalendar object. The
default value is "GREGORIAN".
...
... Gregorian calendar scale is assumed if this property is not specified
in the iCalendar object. It is expected that other calendar scales
will be defined in other specifications or by future versions ...
... METHOD
Purpose: This property defines the iCalendar object method associated
with the calendar ...
... specified on this property.
Conformance: The property can be specified in an iCalendar object.
Description: When used in a MIME message ...
... Content-Type "method" parameter
value. This property can only appear once within the iCalendar
object. If either the "METHOD" property or the Content-Type ...
... methods are defined by this specification. This is the subject of
other specifications, such as the iCalendar Transport-independent
Interoperability Protocol (iTIP) defined by [ITIP ...
... ITIP].
If this property is not present in the iCalendar object, then a
scheduling transaction MUST NOT be assumed. In such cases, the
...
... scheduling transaction MUST NOT be assumed. In such cases, the
iCalendar object is merely being used to transport a snapshot of some
calendar ...
...
Example: The following is a hypothetical example of this property to
convey that the iCalendar object is a request for a meeting:
METHOD ...
... specified on this property.
Conformance: The property MUST be specified once in an iCalendar
object.
...
...
This property SHOULD not be used to alter the interpretation of an
iCalendar object beyond the semantics specified in this memo. For
example, it is not to be used to further the understanding of non-
...
... version number or the minimum and maximum range of the
iCalendar specification that is required in order to interpret the
iCalendar object.
...
... iCalendar specification that is required in order to interpret the
iCalendar object.
Value Type: TEXT
...
... specified on this property.
Conformance: This property MUST be specified by an iCalendar object,
but MUST only be specified once.
...
... ;Maximum iCalendar version needed to parse the iCalendar object
Example: The following is an example of this property:
...
... VJOURNAL", or "VALARM" calendar components. This property can be
specified multiple times within an iCalendar object.
Format Definition: The property is defined by the following notation:
...
... intends for information within an individual calendar entry. The
access classification of an individual iCalendar component is useful
when measured along with the other security components of a calendar ...
... processes using this memo, these access classifications cannot serve
as an enforcement statement for a system receiving an iCalendar
object. Rather, they provide a method for capturing the intention of
...
...
Description: This is the label by which a time zone calendar
component is referenced by any iCalendar properties whose data type
is either DATE-TIME ...
... version of itself. This provides a hook to handle changes
government bodies impose upon time zone definitions. Retrieval of
this resource results in an iCalendar object containing a single
VTIMEZONE component and a METHOD ...
... this property.
Conformance: This property MUST be specified in an iCalendar object
that specifies a group scheduled calendar ...
... calendar entity. This property MUST
NOT be specified in an iCalendar object when publishing the calendar
information (e.g., NOT in an iCalendar ...
... iCalendar object when publishing the calendar
information (e.g., NOT in an iCalendar object that specifies the
publication of a calendar user's busy time, event, to-do or journal).
...
... publication of a calendar user's busy time, event, to-do or journal).
This property is not specified in an iCalendar object that specifies
only a time zone definition or that defines calendar entities that
...
... property.
Conformance: This property MUST be specified in an iCalendar object
that specifies a group scheduled calendar ...
... calendar entity. This property MUST
be specified in an iCalendar object that specifies the publication of
a calendar user's busy time. This property MUST NOT be specified in
...
... a calendar user's busy time. This property MUST NOT be specified in
an iCalendar object that specifies only a time zone definition or
that defines calendar entities that are not group ...
... specified on this property.
Conformance: This property can be specified in an iCalendar object
containing a recurring calendar component.
...
... created by the calendar system that
generates an iCalendar object.
Implementations MUST be able to receive and persist values of at
...
... identifier property parameters can be specified on this property.
Conformance: This property can be specified in an iCalendar object
that includes a recurring calendar component.
...
... generated by considering the initial "DTSTART" property along with
the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
within the iCalendar object. The "DTSTART" property defines the first
instance in the recurrence set. Multiple instances of the "RRULE" and
"EXRULE" properties can also be specified to define more
...
... generated by considering the initial "DTSTART" property along with
the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
within the iCalendar object. The "DTSTART" defines the first instance
in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
properties can also be specified to define more sophisticated
...
... Description: This property can appear along with the "RRULE" property
to define an aggregate set of repeating occurrences. When they both
appear in an iCalendar object, the recurring events are defined by
the union of occurrences defined by both the "RDATE" and "RRULE".
...
... by considering the initial "DTSTART" property along with the "RRULE",
"RDATE", "EXDATE" and "EXRULE" properties contained within the
iCalendar object. The "DTSTART" property defines the first instance
in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
properties can also be specified to define more sophisticated
...
... generated by considering the initial "DTSTART" property along with
the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
within the iCalendar object. The "DTSTART" property defines the first
instance in the recurrence set. Multiple instances of the "RRULE" and
"EXRULE" properties can also be specified to define more
...
...
The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
property pair, specified within the iCalendar object defines the
first instance of the recurrence. When used with a recurrence rule,
the "DTSTART" and "DTEND" properties MUST be specified in local time
...
... calendar component definition.
Any duration associated with the iCalendar object applies to all
members of the generated recurrence set. Any modified duration for
specific recurrences MUST be explicitly specified using the "RDATE"
...
... Purpose: The property indicates the date/time that the instance of
the iCalendar object was created.
...
... latency issues with the delivery of content. This property
will assist in the proper sequencing of messages containing iCalendar
objects.
...
... calendar store was created and last
modified. This is different than when the iCalendar object
representation of the calendar service information ...
... participation status of the "Attendees".
The "Organizer" includes this property in an iCalendar object that it
sends to an "Attendee" to specify the current version of the calendar
component ...
... calendar
component.
The "Attendee" includes this property in an iCalendar object that it
sends to the "Organizer" to specify the version of the calendar
component ...
... Description: This property is used to return status code information
related to the processing of an associated iCalendar object. The data
type for this property is TEXT.
...
... classes for the return status code.
Individual iCalendar object methods will define specific return
status codes ...
... iCalendar Object Examples ...
...
The following examples are provided as an informational source of
illustrative iCalendar objects consistent with this content type.
...
... END:VCALENDAR
The following is an example of an iCalendar object passed in a MIME
message with a single body part consisting of a "text/calendar"
...
... DESCRIPTION:Discuss how we can test c&s interoperability\n
using iCalendar and other IETF standards.
LOCATION:LDB Lobby
...
... The following is an example of published busy time information. The
iCalendar object might be placed in the network resource
www.host ...
...
These recommended practices should be followed in order to assure
consistent handling of the following cases for an iCalendar object.
1. Content lines longer than 75 octets SHOULD be folded.
...
...
4. When the combination of the "RRULE" and "RDATE" properties on an
iCalendar object produces multiple instances having the same
start date/time ...
... MIME
Calendaring and Scheduling Content Type iCalendar object methods and
new or modified properties.
...
... New MIME Calendaring and Scheduling Content Type iCalendar object
methods are registered by the publication of an IETF ...
... methods are registered by the publication of an IETF Request for
Comments (RFC). Changes to an iCalendar object method are registered
by the publication of a revision of the RFC defining the method ...
... Dawson, F., Mansour, S. and S. Silverberg, "iCalendar Message-based Interoperability Protocol (IMIP)", RFC 2447prop ...
... Silverberg, S., Mansour, S., Dawson, F. and R. Hopson, "iCalendar Transport-Independent Interoperability Protocol (iTIP) : Scheduling Events, Busy Time, To-dos ...
...
The iCalendar object is a result of the work of the Internet
Engineering Task Force Calendaring and Scheduling Working Group. The
...
