idnits 2.17.1
draft-ietf-calsch-ical-07.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** Looks like you're using RFC 2026 boilerplate. This must be updated to
follow RFC 3978/3979, as updated by RFC 4748.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
** Missing expiration date. The document expiration date should appear on
the first and last page.
** The document seems to lack a 1id_guidelines paragraph about
Internet-Drafts being working documents.
** The document seems to lack a 1id_guidelines paragraph about 6 months
document validity -- however, there's a paragraph with a matching
beginning. Boilerplate error?
** The document seems to lack a 1id_guidelines paragraph about the list of
current Internet-Drafts.
** The document seems to lack a 1id_guidelines paragraph about the list of
Shadow Directories.
== No 'Intended status' indicated for this document; assuming Proposed
Standard
== The page length should not exceed 58 lines per page, but there was 121
longer pages, the longest (page 1) being 63 lines
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
** The document seems to lack an IANA Considerations section. (See Section
2.2 of https://www.ietf.org/id-info/checklist for how to handle the case
when there are no actions for IANA.)
** The document seems to lack separate sections for Informative/Normative
References. All references will be assumed normative when checking for
downward references.
** There are 9 instances of too long lines in the document, the longest one
being 28 characters in excess of 72.
** The abstract seems to contain references ([ICMS], [RFC2048], [ITIP]),
which it shouldn't. Please replace those with straight textual mentions
of the documents in question.
== There are 1 instance of lines with non-RFC2606-compliant FQDNs in the
document.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the RFC 3978 Section 5.4 Copyright Line does not
match the current year
== Line 2748 has weird spacing: '...he base offse...'
== Line 2777 has weird spacing: '...lly for recur...'
== Line 2778 has weird spacing: '...ure and conve...'
== Line 2780 has weird spacing: '... time zone ...'
== Line 2860 has weird spacing: '...on. For examp...'
== (3 more instances...)
== The document seems to lack the recommended RFC 2119 boilerplate, even if
it appears to use RFC 2119 keywords -- however, there's a paragraph with
a matching beginning. Boilerplate error?
(The document does seem to have the reference to RFC 2119 which the
ID-Checklist requires).
== Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD',
or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please
use uppercase 'NOT' together with RFC 2119 keywords (if that is what you
mean).
Found 'MUST not' in this paragraph:
The property parameter CN, is for the common or displayable name
associated with the calendar address; ROLE, for the intended role that
the attendee will have in the calendar component; PARTSTAT, for the
status of the attendee's participation; RSVP, for indicating whether the
favor of a reply is requested; CUTYPE, to indicate the type of calendar
user; MEMBER, to indicate the groups that the attendee belongs to;
DELEGATED-TO, to indicate the calendar users that the original request
was delegated to; and DELEGATED-FROM, to indicate whom the request was
delegated from; SENT-BY, to indicate whom is acting on behalf of the
ATTENDEE; and DIR, to indicate the URI that points to the directory
information corresponding to the attendee. These property parameters can
be specified on an "ATTENDEE" property in either a "VEVENT", "VTODO" or
"VJOURNAL" calendar component. They MUST not be specified in an
"ATTENDEE" property in a "VFREEBUSY" or "VALARM" calendar component. If
the LANGUAGE property parameter is specified, the identified language
applies to the CN parameter.
-- The document seems to lack a disclaimer for pre-RFC5378 work, but may
have content which was first submitted before 10 November 2008. If you
have contacted all the original authors and they are all willing to grant
the BCP78 rights to the IETF Trust, then this is fine, and you can ignore
this comment. If not, you may need to add the pre-RFC5378 disclaimer.
(See the Legal Provisions document at
https://trustee.ietf.org/license-info for more information.)
-- The document date (May 11, 1998) is 9481 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Missing Reference: 'ICAL' is mentioned on line 347, but not defined
== Missing Reference: 'MIME-DIR' is mentioned on line 4524, but not defined
== Unused Reference: 'RFC 2047' is defined on line 6318, but no explicit
reference was found in the text
== Unused Reference: 'RFC 2111' is defined on line 6326, but no explicit
reference was found in the text
== Unused Reference: 'VCARD' is defined on line 6338, but no explicit
reference was found in the text
== Unused Reference: 'XAPIA' is defined on line 6346, but no explicit
reference was found in the text
-- Possible downref: Non-RFC (?) normative reference: ref. 'ICMS'
-- Possible downref: Non-RFC (?) normative reference: ref. 'IMIP'
-- Possible downref: Non-RFC (?) normative reference: ref. 'ITIP'
-- Possible downref: Non-RFC (?) normative reference: ref. 'ISO 8601'
-- Possible downref: Non-RFC (?) normative reference: ref. 'ISO 9070'
-- Possible downref: Non-RFC (?) normative reference: ref. 'MIME DIR'
** Obsolete normative reference: RFC 822 (Obsoleted by RFC 2822)
** Obsolete normative reference: RFC 1738 (Obsoleted by RFC 4248, RFC 4266)
** Obsolete normative reference: RFC 1766 (Obsoleted by RFC 3066, RFC 3282)
** Obsolete normative reference: RFC 2048 (Obsoleted by RFC 4288, RFC 4289)
** Obsolete normative reference: RFC 2111 (Obsoleted by RFC 2392)
** Obsolete normative reference: RFC 2234 (Obsoleted by RFC 4234)
** Obsolete normative reference: RFC 2279 (Obsoleted by RFC 3629)
-- Possible downref: Non-RFC (?) normative reference: ref. 'VCARD'
-- Possible downref: Non-RFC (?) normative reference: ref. 'VCAL'
-- Possible downref: Non-RFC (?) normative reference: ref. 'XAPIA'
Summary: 17 errors (**), 0 flaws (~~), 18 warnings (==), 11 comments
(--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group Frank Dawson, Lotus
3 Internet Draft Derik Stenerson, Microsoft
4
792 4.1.4 Character Set
794 There is not a property parameter to declare the character set used
795 in a property value. The default character set for an iCalendar
796 object is UTF-8 as defined in [RFC 2279].
798 The "charset" Content-Type parameter can be used in MIME transports
799 to specify any other IANA registered character set.
801 4.2 Property Parameters
803 A property can have attributes associated with it. These "property
804 parameters" contain meta-information about the property or the
805 property value. Property parameters are provided to specify such
806 information as the location of an alternate text representation for a
807 property value, the language of a text property value, the data type
808 of the property value and other attributes.
810 Property parameter values that contain the COLON (US-ASCII decimal
811 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44)
812 character separators MUST be specified as quoted-string text values.
813 Property parameter values MUST NOT contain the DOUBLE-QUOTE (US-ASCII
814 decimal 22) character. The DOUBLE-QUOTE (US-ASCII decimal 22)
815 character is used as a delimiter for parameter values that contain
816 restricted characters or URI text. For example:
818 DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards
819 Conference - - Las Vegas, NV, USA
821 Property parameter values that are not in quoted strings are case
822 insensitive.
824 The general property parameters defined by this memo are defined by
825 the following notation:
827 parameter = altrepparam ; Alternate text representation
828 / cnparam ; Common name
829 / cutypeparam ; Calendar user type
830 / delfromparam ; Delegator
831 / deltoparam ; Delegatee
832 / dirparam ; Directory entry
833 / encodingparam ; Inline encoding
834 / fbtypeparam ; Free/busy time type
835 / languageparam ; Language for text
836 / memberparam ; Group or list membership
837 / partstatparam ; Participation status
838 / rangeparam ; Recurrence identifier range
839 / trigrelparam ; Alarm trigger relationship
840 / reltypeparam ; Relationship type
841 / roleparam ; Participation role
842 / rsvpparam ; RSVP expectation
843 / sentbyparam ; Sent by
844 / tzidparam ; Reference to time zone object
845 / valuetypeparam ; Property value data type
846 / ianaparam
847 ; Some other IANA registered iCalendar parameter.
848 / xparam
849 ; A non-standard, experimental parameter.
851 ianaparam = iana-token "=" param-value *("," param-value)
853 xparam =x-name "=" param-value *("," param-value)
855 4.2.1 Alternate Text Representation
857 Parameter Name: ALTREP
859 Purpose: To specify an alternate text representation for the property
860 value.
862 Format Definition: The property parameter is defined by the following
863 notation:
865 altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
867 Description: The parameter specifies a URI that points to an
868 alternate representation for a textual property value. A property
869 specifying this parameter MUST also include a value that reflects the
870 default representation of the text value. The individual URI
871 parameter values MUST be specified in a quoted-string.
873 Example:
875 DESCRIPTION;ALTREP="CID:":Project
876 XYZ Review Meeting will include the following agenda items: (a)
877 Market Overview, (b) Finances, (c) Project Management
879 The "ALTREP" property parameter value might point to a "text/html"
880 content portion.
882 Content-Type:text/html
883 Content-Id:
885
886 Project XYZ Review Meeting will include the following
887 agenda items:
Market
888 OverviewFinancesProject Management
889
891 4.2.2 Common Name
893 Parameter Name: CN
895 Purpose: To specify the common name to be associated with the
896 calendar user specified by the property.
898 Format Definition: The property parameter is defined by the following
899 notation:
901 cnparam = "CN" "=" param-value
903 Description: This parameter can be specified on properties with a
904 CAL-ADDRESS value type. The parameter specifies the common name to be
905 associated with the calendar user specified by the property. The
906 parameter value is text. The parameter value can be used for display
907 text to be associated with the calendar address specified by the
908 property.
910 Example:
912 ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com
913 4.2.3 Calendar User Type
915 Parameter Name: CUTYPE
917 Purpose: To specify the type of calendar user specified by the
918 property.
920 Format Definition: The property parameter is defined by the following
921 notation:
923 cutypeparam = "CUTYPE" "="
924 ("INDIVIDUAL" ; An individual
925 / "GROUP" ; A group of individuals
926 / "RESOURCE" ; A physical resource
927 / "ROOM" ; A room resource
928 / "UNKNOWN" ; Otherwise not known
929 / x-name ; Experimental type
930 / iana-token) ; Other IANA registered
931 ; type
932 ; Default is INDIVIDUAL
934 Description: This parameter can be specified on properties with a
935 CAL-ADDRESS value type. The parameter identifies the type of calendar
936 user specified by the property. If not specified on a property that
937 allows this parameter, the default is INDIVIDUAL.
939 Example:
941 ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org
943 4.2.4 Delegators
945 Parameter Name: DELEGATED-FROM
947 Purpose: To specify the calendar users that have delegated their
948 participation to the calendar user specified by the property.
950 Format Definition: The property parameter is defined by the following
951 notation:
953 delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE
954 *("," DQUOTE cal-address DQUOTE)
956 Description: This parameter can be specified on properties with a
957 CAL-ADDRESS value type. This parameter can be specified on a property
958 that has a value type of calendar address. This parameter specifies
959 those calendar uses that have delegated their participation in a
960 group scheduled event or to-do to the calendar user specified by the
961 property. The value MUST be a MAILTO URI as defined in [RFC 1738].
962 The individual URI parameter values MUST be specified in a quoted-
963 string.
965 Example:
967 ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO:
968 jdoe@host.com
970 4.2.5 Delegatees
972 Parameter Name: DELEGATED-TO
974 Purpose: To specify the calendar users whom the calendar user
975 specified by the property has delegated participation to.
977 Format Definition: The property parameter is defined by the following
978 notation:
980 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
981 *("," DQUOTE cal-address DQUOTE)
983 Description: This parameter can be specified on properties with a
984 CAL-ADDRESS value type. This parameter specifies those calendar users
985 whom have been delegated participation in a group scheduled event or
986 to-do by the calendar user specified by the property. The value MUST
987 be a MAILTO URI as defined in [RFC 1738]. The individual URI
988 parameter values MUST be specified in a quoted-string.
990 Example:
992 ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@
993 host.com":MAILTO:jsmith@host.com
995 4.2.6 Directory Entry Reference
997 Parameter Name: DIR
999 Purpose: To specify reference to a directory entry associated with
1000 the calendar user specified by the property.
1002 Format Definition: The property parameter is defined by the following
1003 notation:
1005 dirparam = "DIR" "=" DQUOTE uri DQUOTE
1007 Description: This parameter can be specified on properties with a
1008 CAL-ADDRESS value type. The parameter specifies a reference to the
1009 directory entry associated with the calendar user specified by the
1010 property. The parameter value is a URI. The individual URI parameter
1011 values MUST be specified in a quoted-string.
1013 Example:
1015 ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS??
1016 (cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com
1018 4.2.7 Inline Encoding
1020 Parameter Name: ENCODING
1021 Purpose: To specify an alternate inline encoding for the property
1022 value.
1024 Format Definition: The property parameter is defined by the following
1025 notation:
1027 encodingparam = "ENCODING" "="
1028 ("8BIT"
1029 ; "8bit" text encoding is defined in [RFC 2045]
1030 / "BASE64"
1031 ; "BASE64" binary encoding format is defined in [RFC 2045]
1032 / iana-token
1033 ; Some other IANA registered iCalendar encoding type
1034 / x-name)
1035 ; A non-standard, experimental encoding type
1037 Description: The property parameter identifies the inline encoding
1038 used in a property value. The default encoding is "8BIT",
1039 corresponding to a property value consisting of text. The "BASE64"
1040 encoding type corresponds to a property value encoded using the
1041 "BASE64" encoding defined in [RFC 2045].
1043 If the value type parameter is ";VALUE=BINARY", then the inline
1044 encoding parameter MUST be specified with the value
1045 ";ENCODING=BASE64".
1047 Example:
1049 ATTACH;ENCODING=BASE64;VALUE=BINARY:MIICajCCAdOgAwIBAgICBEUwD
1050 QYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjY
1051 XBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvc
1052 <...remainder of "BASE64" encoded binary data...>
1054 4.2.8 Free/Busy Time Type
1056 Parameter Name: FBTYPE
1058 Purpose: To specify the free or busy time type.
1060 Format Definition: The property parameter is defined by the following
1061 notation:
1063 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
1064 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
1065 / x-name
1066 ; Some experimental iCalendar data type.
1067 / iana-token)
1068 ; Some other IANA registered iCalendar data type.
1070 Description: The parameter specifies the free or busy time type. The
1071 value FREE indicates that the time interval is free for scheduling.
1072 The value BUSY indicates that the time interval is busy because one
1073 or more events have been scheduled for that interval. The value BUSY-
1074 UNAVAILABLE indicates that the time interval is busy and that the
1075 interval can not be scheduled. The value BUSY-TENTATIVE indicates
1076 that the time interval is busy because one or more events have been
1077 tentatively scheduled for that interval. If not specified on a
1078 property that allows this parameter, the default is BUSY.
1080 Example: The following is an example of this parameter on a FREEBUSY
1081 property.
1083 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
1085 4.2.9 Language
1087 Parameter Name: LANGUAGE
1089 Purpose: To specify the language for text values in a property or
1090 property parameter.
1092 Format Definition: The property parameter is defined by the following
1093 notation:
1095 languageparam = "LANGUAGE" "=" language
1097 language =
1099 Description: This parameter can be specified on properties with a
1100 text value type. The parameter identifies the language of the text in
1101 the property or property parameter value. The value of the "language"
1102 property parameter is that defined in [RFC 1766].
1104 For transport in a MIME entity, the Content-Language header field can
1105 be used to set the default language for the entire body part.
1106 Otherwise, no default language is assumed.
1108 Example:
1110 SUMMARY;LANGUAGE=us-EN:Company Holiday Party
1112 LOCATION;LANGUAGE=en:Germany
1113 LOCATION;LANGUAGE=no:Tyskland
1115 The following example makes use of the Quoted-Printable encoding in
1116 order to represent non-ASCII characters.
1118 LOCATION;LANGUAGE=da:K=F8benhavn
1119 LOCATION;LANGUAGE=en:Copenhagen
1121 4.2.10 Group or List Membership
1123 Parameter Name: MEMBER
1125 Purpose: To specify the group or list membership of the calendar user
1126 specified by the property.
1128 Format Definition: The property parameter is defined by the following
1129 notation:
1131 memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE
1132 *("," DQUOTE cal-address DQUOTE)
1134 Description: This parameter can be specified on properties with a
1135 CAL-ADDRESS value type. The parameter identifies the groups or list
1136 membership for the calendar user specified by the property. The
1137 parameter value either a single calendar address in a quoted-string
1138 or a COMMA character (US-ASCII decimal 44) list of calendar
1139 addresses, each in a quoted-string. The individual calendar address
1140 parameter values MUST be specified in a quoted-string.
1142 Example:
1144 ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com
1146 ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.
1147 com":MAILTO:janedoe@host.com
1149 4.2.11 Participation Status
1151 Parameter Name: PARTSTAT
1153 Purpose: To specify the participation status for the calendar user
1154 specified by the property.
1156 Format Definition: The property parameter is defined by the following
1157 notation:
1159 partstatparam = "PARTSTAT" "="
1160 ("NEEDS-ACTION" ; Event needs action
1161 / "ACCEPTED" ; Event accepted
1162 / "DECLINED" ; Event declined
1163 / "TENTATIVE" ; Event tentatively
1164 ; accepted
1165 / "DELEGATED" ; Event delegated
1166 / x-name ; Experimental status
1167 / iana-token) ; Other IANA registered
1168 ; status
1169 ; These are the participation statuses for a "VEVENT". Default is
1170 ; NEEDS-ACTION
1172 partstatparam /= "PARTSTAT" "="
1173 ("NEEDS-ACTION" ; To-do needs action
1174 / "ACCEPTED" ; To-do accepted
1175 / "DECLINED" ; To-do declined
1176 / "TENTATIVE" ; To-do tentatively
1177 ; accepted
1178 / "DELEGATED" ; To-do delegated
1179 / "COMPLETED" ; To-do completed.
1180 ; COMPLETED property has
1181 ;date/time completed.
1183 / "IN-PROCESS" ; To-do in process of
1184 ; being completed
1185 / x-name ; Experimental status
1186 / iana-token) ; Other IANA registered
1187 ; status
1188 ; These are the participation statuses for a "VTODO". Default is
1189 ; NEEDS-ACTION
1191 partstatparam /= "PARTSTAT" "="
1192 ("NEEDS-ACTION" ; Journal needs action
1193 / "ACCEPTED" ; Journal accepted
1194 / "DECLINED" ; Journal declined
1195 / x-name ; Experimental status
1196 / iana-token) ; Other IANA registered
1197 ; status
1198 ; These are the participation statuses for a "VJOURNAL". Default is
1199 ; NEEDS-ACTION
1201 4.2.12 Recurrence Identifier Range
1203 Parameter Name: RANGE
1205 Purpose: To specify the effective range of recurrence instances from
1206 the instance specified by the recurrence identifier specified by the
1207 property.
1209 Format Definition: The property parameter is defined by the following
1210 notation:
1212 rangeparam = "RANGE" "=" ("THISANDPRIOR"
1213 ; To specify all instances prior to the recurrence identifier
1214 / "THISANDFUTURE")
1215 ; To specify the instance specified by the recurrence identifier
1216 ; and all subsequent recurrence instances
1218 Description: The parameter can be specified on a property that
1219 specifies a recurrence identifier. The parameter specifies the
1220 effective range of recurrence instances that is specified by the
1221 property. The effective range is from the recurrence identified
1222 specified by the property. If this parameter is not specified an
1223 allowed property, then the default range is the single instance
1224 specified by the recurrence identifier value of the property. The
1225 parameter value can be "THISANDPRIOR" to indicate a range defined by
1226 the recurrence identified value of the property and all prior
1227 instances. The parameter value can also be "THISANDFUTURE" to
1228 indicate a range defined by the recurrence identifier and all
1229 subsequent instances.
1231 Example:
1233 RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z
1234 4.2.13 Alarm Trigger Relationship
1236 Parameter Name: RELATED
1238 Purpose: To specify the relationship of the alarm trigger with
1239 respect to the start or end of the calendar component.
1241 Format Definition: The property parameter is defined by the following
1242 notation:
1244 trigrelparam = "RELATED" "="
1245 ("START" ; Trigger off of start
1246 / "END") ; Trigger off of end
1248 Description: The parameter can be specified on properties that
1249 specify an alarm trigger with a DURATION value type. The parameter
1250 specifies whether the alarm will trigger relative to the start or end
1251 of the calendar component. The parameter value START will set the
1252 alarm to trigger off the start of the calendar component; the
1253 parameter value END will set the alarm to trigger off the end of the
1254 calendar component. If the parameter is not specified on an allowable
1255 property, then the default is START.
1257 Example:
1259 TRIGGER;RELATED=END:PT5M
1261 4.2.14 Relationship Type
1263 Parameter Name: RELTYPE
1265 Purpose: To specify the type of hierarchical relationship associated
1266 with the calendar component specified by the property.
1268 Format Definition: The property parameter is defined by the following
1269 notation:
1271 reltypeparam = "RELTYPE" "="
1272 ("PARENT" ; Parent relationship. Default.
1273 / "CHILD" ; Child relationship
1274 / "SIBLING ; Sibling relationship
1275 / iana-token ; Some other IANA registered
1276 ; iCalendar relationship type
1277 / x-name) ; A non-standard, experimental
1278 ; relationship type
1280 Description: This parameter can be specified on a property that
1281 references another related calendar. The parameter specifies the
1282 hierarchical relationship type of the calendar component referenced
1283 by the property. The parameter value can be PARENT, to indicate that
1284 the referenced calendar component is a superior of calendar
1285 component; CHILD to indicate that the referenced calendar component
1286 is a subordinate of the calendar component; SIBLING to indicate that
1287 the referenced calendar component is a peer of the calendar
1288 component. If this parameter is not specified on an allowable
1289 property, the default relationship type is PARENT.
1291 Example:
1293 RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com>
1295 Description: This parameter can be specified on properties with a
1296 CAL-ADDRESS value type. The parameter identifies the participation
1297 status for the calendar user specified by the property value. The
1298 parameter values differ depending on whether they are associated with
1299 a group scheduled "VEVENT", "VTODO" or "VJOURNAL". The values MUST
1300 match one of the values allowed for the given calendar component. If
1301 not specified on a property that allows this parameter, the default
1302 value is NEEDS-ACTION.
1304 Example:
1306 ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com
1308 4.2.15 Participation Role
1310 Parameter Name: ROLE
1312 Purpose: To specify the participation role for the calendar user
1313 specified by the property.
1315 Format Definition: The property parameter is defined by the following
1316 notation:
1318 roleparam = "ROLE" "="
1319 ("CHAIR" ; Indicates chair of the
1320 ; calendar entity
1321 / "REQ-PARTICIPANT" ; Indicates a participant whose
1322 ; participation is required
1323 / "OPT-PARTICIPANT" ; Indicates a participant whose
1324 ; participation is optional
1325 / "NON-PARTICIPANT" ; Indicates a participant who is
1326 ; copied for information
1327 ; purposes only
1328 / x-name ; Experimental role
1329 / iana-token) ; Other IANA role
1330 ; Default is REQ-PARTICIPANT
1332 Description: This parameter can be specified on properties with a
1333 CAL-ADDRESS value type. The parameter specifies the participation
1334 role for the calendar user specified by the property in the group
1335 schedule calendar component. If not specified on a property that
1336 allows this parameter, the default value is REQ-PARTICIPANT.
1338 Example:
1340 ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com
1341 4.2.16 RSVP Expectation
1343 Parameter Name: RSVP
1345 Purpose: To specify whether there is an expectation of a favor of a
1346 reply from the calendar user specified by the property value.
1348 Format Definition: The property parameter is defined by the following
1349 notation:
1351 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
1352 ; Default is FALSE
1354 Description: This parameter can be specified on properties with a
1355 CAL-ADDRESS value type. The parameter identifies the expectation of a
1356 reply from the calendar user specified by the property value. This
1357 parameter is used by the "Organizer" to request a participation
1358 status reply from an "Attendee" of a group scheduled event or to-do.
1359 If not specified on a property that allows this parameter, the
1360 default value is FALSE.
1362 Example:
1364 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com
1366 4.2.17 Sent By
1368 Parameter Name: SENT-BY
1370 Purpose: To specify the calendar user that is acting on behalf of the
1371 calendar user specified by the property.
1373 Format Definition: The property parameter is defined by the following
1374 notation:
1376 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
1378 Description: This parameter can be specified on properties with a
1379 CAL-ADDRESS value type. The parameter specifies the calendar user
1380 that is acting on behalf of the calendar user specified by the
1381 property. The parameter value MUST be a MAILTO URI as defined in [RFC
1382 1738]. The individual URI parameter values MUST be specified in a
1383 quoted-string.
1385 Example:
1387 ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com
1389 4.2.18 Time Zone Identifier
1391 Parameter Name: TZID
1393 Purpose: To specify the identifier for the time zone definition for a
1394 time component in the property value.
1396 Format Definition: This property parameter is defined by the
1397 following notation:
1399 tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF
1401 tzidprefix = "/"
1403 Description: The parameter MUST be specify on the "DTSTART", "DTEND",
1404 "DUE", "EXDATE" and "RDATE" properties when either a DATE-TIME or
1405 TIME value type is specified and when the value is not either a UTC
1406 or a "floating" time. This property parameter specifies a text value
1407 which uniquely identifies the "VTIMEZONE" calendar component to be
1408 used when evaluating the time portion of the property. The value of
1409 the TZID property parameter will be equal to the value of the TZID
1410 property for the matching time zone definition. An individual
1411 "VTIMEZONE" calendar component MUST be specified for each unique
1412 "TZID" parameter value specified in the iCalendar object.
1414 The parameter MUST be specified on properties with a DATE-TIME value
1415 if the DATE-TIME is not either a UTC or a "floating" time.
1417 The presence of the SOLIDUS character (US-ASCII decimal 47) as a
1418 prefix, indicates that this TZID represents a unique ID in a globally
1419 defined time zone registry (when such registry is defined).
1421 The following are examples of this property parameter:
1423 DTSTART;TZID=America-New_York:19980119T020000
1425 DTEND;TZID=America-New_York:19980119T030000
1427 The TZID property parameter MUST NOT be applied to DATE-TIME or TIME
1428 properties whose time values are specified in UTC.
1430 The use of local time in a DATE-TIME or TIME value without the TZID
1431 property parameter is to be interpreted as a local time value,
1432 regardless of the existence of "VTIMEZONE" calendar components in the
1433 iCalendar object.
1435 For more information see the sections on the data types DATE-TIME and
1436 TIME.
1438 4.2.19 Value Data Types
1440 Parameter Name: VALUE
1442 Purpose: To explicitly specify the data type format for a property
1443 value.
1445 Format Definition: The "VALUE" property parameter is defined by the
1446 following notation:
1448 valuetypeparam = "VALUE" "=" valuetype
1449 valuetype = ("BINARY"
1450 / "BOOLEAN"
1451 / "CAL-ADDRESS"
1452 / "DATE"
1453 / "DATE-TIME"
1454 / "DURATION"
1455 / "FLOAT"
1456 / "INTEGER"
1457 / "PERIOD"
1458 / "RECUR"
1459 / "TEXT"
1460 / "TIME"
1461 / "URI"
1462 / "UTC-OFFSET"
1463 / x-name
1464 ; Some experimental iCalendar data type.
1465 / iana-token)
1466 ; Some other IANA registered iCalendar data type.
1468 Description: The parameter specifies the data type and format of the
1469 property value. The property values MUST be of a single value type.
1470 For example, a "RDATE" property cannot have a combination of DATE-
1471 TIME and TIME value types.
1473 If the property's value is the default value type, then this
1474 parameter need not be specified. However, if the property's default
1475 value type is overridden by some other allowable value type, then
1476 this parameter MUST be specified.
1478 4.3 Property Value Data Types
1480 The properties in an iCalendar object are strongly typed. The
1481 definition of each property restricts the value to be one of the
1482 value data types, or simply value types, defined in this section. The
1483 value type for a property will either be specified implicitly as the
1484 default value type or will be explicitly specified with the "VALUE"
1485 parameter. If the value type of a property is one of the alternate
1486 valid types, then it MUST be explicitly specified with the "VALUE"
1487 parameter.
1489 4.3.1 Binary
1491 Value Name: BINARY
1493 Purpose: This value type is used to identify properties that contain
1494 a character encoding of inline binary data. For example, an inline
1495 attachment of an object code might be included in an iCalendar
1496 object.
1498 Formal Definition: The value type is defined by the following
1499 notation:
1501 binary = *(4b-char) [b-end]
1502 ; A "BASE64" encoded character string, as defined by [RFC 2045].
1504 b-end = (2b-char "==") / (3b-char "=")
1506 b-char = ALPHA / DIGIT / "+" / "/"
1508 Description: Property values with this value type MUST also include
1509 the inline encoding parameter sequence of ";ENCODING=BASE64". That
1510 is, all inline binary data MUST first be character encoded using the
1511 "BASE64" encoding method defined in [RFC 2045]. No additional content
1512 value encoding (i.e., BACKSLASH character encoding) is defined for
1513 this value type.
1515 Example: The following is an abridged example of a "BASE64" encoded
1516 binary value data.
1518 ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY
1519 JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
1520 ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
1521 <...remainder of "BASE64" encoded binary data...>
1523 4.3.2 Boolean
1525 Value Name: BOOLEAN
1527 Purpose: This value type is used to identify properties that contain
1528 either a "TRUE" or "FALSE" Boolean value.
1530 Formal Definition: The value type is defind by the following
1531 notation:
1533 boolean = "TRUE" / "FALSE"
1535 Description: These values are case insensitive text. No additional
1536 content value encoding (i.e., BACKSLASH character encoding) is
1537 defined for this value type.
1539 Example: The following is an example of a hypothetical property that
1540 has a BOOLEAN value type:
1542 GIBBERISH:TRUE
1544 4.3.3 Calendar User Address
1546 Value Name: CAL-ADDRESS
1548 Purpose: This value type is used to identify properties that contain
1549 a calendar user address.
1551 Formal Definition: The value type is as defined by the following
1552 notation:
1554 cal-address = uri
1556 Description: The value is a URI as defined by [RFC 1738] or any other
1557 IANA registered form for a URI. When used to address an Internet
1558 email transport address for a calendar user, the value MUST be a
1559 MAILTO URI, as defined by [RFC 1738]. No additional content value
1560 encoding (i.e., BACKSLASH character encoding) is defined for this
1561 value type.
1563 Example:
1565 ATTENDEE:MAILTO:jane_doe@host.com
1567 4.3.4 Date
1569 Value Name: DATE
1571 Purpose: This value type is used to identify values that contain a
1572 calendar date.
1574 Formal Definition: The value type is defined by the following
1575 notation:
1577 date = date-value
1579 date-value = date-fullyear date-month date-mday
1580 date-fullyear = 4DIGIT
1581 date-month = 2DIGIT ;01-12
1582 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
1583 ;based on month/year
1585 Description: If the property permits, multiple "date" values can be
1586 specified using a COMMA character (US-ASCII decimal 44) separator
1587 character. The format for the value type is expressed as the [ISO
1588 8601] complete representation, basic format for a calendar date. The
1589 textual format specifies a four-digit year, two-digit month, and two-
1590 digit day of the month. There are no separator characters between the
1591 year, month and day component text.
1593 No additional content value encoding (i.e., BACKSLASH character
1594 encoding) is defined for this value type.
1596 Example: The following represents July 14, 1997:
1598 19970714
1600 4.3.5 Date-Time
1602 Value Name: DATE-TIME
1604 Purpose: This value type is used to identify values that specify a
1605 precise calendar date and time of day.
1607 Formal Definition: The value type is defined by the following
1608 notation:
1610 date-time = date "T" time ;As specified in the date and time
1611 ;value definitions
1612 Description: If the property permits, multiple "date-time" values MAY
1613 be specified using a COMMA character (US-ASCII decimal 44) separator
1614 character. No additional content value encoding (i.e., BACKSLASH
1615 character encoding) is defined for this value type.
1617 The "DATE-TIME" data type is used to identify values that contain a
1618 precise calendar date and time of day. The format is based on the
1619 [ISO 8601] complete representation, basic format for a calendar date
1620 and time of day. The text format is a concatenation of the "date",
1621 followed by the LATIN CAPITAL LETTER T character (US-ASCII decimal
1622 84) time designator, followed by the "time" format.
1624 The "DATE-TIME" data type expresses time values in three forms:
1626 The form of date and time with UTC offset MUST NOT be used. For
1627 example, the following is not valid for a date-time value:
1629 DTSTART:19980119T230000-0800 ;Invalid time format
1631 FORM #1: DATE WITH LOCAL TIME
1633 The date with local time form is simply a date-time value that does
1634 not contain the UTC designator nor does it reference a time zone. For
1635 example, the following represents Janurary 18, 1998, at 11 PM:
1637 DTSTART:19980118T230000
1639 Date-time values of this type are said to be "floating" and are not
1640 bound to any time zone in particular. They are used to represent the
1641 same hour, minute, and second value regardless of which time zone is
1642 currently being observed. For example, an event can be defined that
1643 indicates that an individual will be busy from 11:00 AM to 1:00 PM
1644 every day, no matter which time zone the person is in. In these
1645 cases, a local time can be specified. The recipient of an iCalendar
1646 object with a property value consisting of a local time, without any
1647 relative time zone information, should interpret the value as being
1648 fixed to whatever time zone the ATTENDEE is in at any given moment.
1649 This means that two ATTENDEEs, in different time zones, receiving the
1650 same event definition as a floating time, may be participating in the
1651 event at different actual times. Floating time should only be used
1652 where that is the reasonable behavior.
1654 In most cases, a fixed time is desired. To properly communicate a
1655 fixed time in a property value, either UTC time or local time with
1656 time zone reference MUST be specified.
1658 The use of local time in a DATE-TIME value without the TZID property
1659 parameter is to be interpreted as floating time, regardless of the
1660 existence of "VTIMEZONE" calendar components in the iCalendar object.
1662 FORM #2: DATE WITH UTC TIME
1664 The date with UTC time, or absolute time, is identified by a LATIN
1665 CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
1666 designator, appended to the time value. For example, the following
1667 represents January 19, 1998, at 0700 UTC:
1669 DTSTART:19980119T070000Z
1671 The TZID property parameter MUST NOT be applied to DATE-TIME
1672 properties whose time values are specified in UTC.
1674 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
1676 The date and local time with reference to time zone information is
1677 identified by the use the TZID property parameter to reference the
1678 appropriate time zone definition. TZID is discussed in detail in the
1679 section on Time Zone. For example, the following represents 2 AM in
1680 New York on Janurary 19, 1998:
1682 DTSTART;TZID=America-New_York:19980119T020000
1684 Example: The following represents July 14, 1997, at 1:30 PM in New
1685 York City in each of the three time formats, using the "DTSTART"
1686 property.
1688 DTSTART:19970714T133000 ;Local time
1689 DTSTART:19970714T173000Z ;UTC time
1690 DTSTART;TZID=America-NYC:19970714T133000 ;Local time and time
1691 ; zone reference
1693 A time value MUST ONLY specify 60 seconds when specifying the
1694 periodic "leap second" in the time value. For example:
1696 COMPLETED:19970630T235960Z
1698 4.3.6 Duration
1700 Value Name: DURATION
1702 Purpose: This value type is used to identify properties that contain
1703 a duration of time.
1705 Formal Definition: The value type is defined by the following
1706 notation:
1708 duration = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
1710 dur-date = dur-day [dur-time]
1711 dur-time = "T" (dur-hour / dur-minute / dur-second)
1712 dur-week = 1*DIGIT "W"
1713 dur-hour = 1*DIGIT "H" [dur-minute]
1714 dur-minute = 1*DIGIT "M" [dur-second]
1715 dur-second = 1*DIGIT "S"
1716 dur-day = 1*DIGIT "D"
1718 Description: If the property permits, multiple "duration" values can
1719 be specified using a COMMA character (US-ASCII decimal 44) separator
1720 character. The format is expressed as the [ISO 8601] basic format for
1721 the duration of time. The format can represent durations in terms of
1722 weeks, days, hours, minutes, and seconds.
1724 No additional content value encoding (i.e., BACKSLASH character
1725 encoding) are defined for this value type.
1727 Example: A duration of 15 days, 5 hours and 20 seconds would be:
1729 P15DT5H0M20S
1731 A duration of 7 weeks would be:
1733 P7W
1735 4.3.7 Float
1737 Value Name: FLOAT
1739 Purpose: This value type is used to identify properties that contain
1740 a real value number value.
1742 Formal Definition: The value type is defined by the following
1743 notation:
1745 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
1747 Description: If the property permits, multiple "float" values can be
1748 specified using a COMMA character (US-ASCII decimal 44) separator
1749 character.
1751 No additional content value encoding (i.e., BACKSLASH character
1752 encoding) is defined for this value type.
1754 Example:
1756 1000000.0000001
1757 1.333
1758 -3.14
1760 4.3.8 Integer
1762 Value Name:INTEGER
1764 Purpose: This value type is used to identify properties that contain
1765 a signed integer value.
1767 Formal Definition: The value type is defined by the following
1768 notation:
1770 integer = (["+"] / "-") 1*DIGIT
1772 Description: If the property permits, multiple "integer" values can
1773 be specified using a COMMA character (US-ASCII decimal 44) separator
1774 character. The valid range for "integer" is -2147483648 to
1775 2147483647. If the sign is not specified, then the value is assumed
1776 to be positive. If the property permits, multiple "integer" values
1777 can be specified using a COMMA character (US-ASCII decimal 44)
1778 separator character.
1780 No additional content value encoding (i.e., BACKSLASH character
1781 encoding) is defined for this value type.
1783 Example:
1785 1234567890
1786 -1234567890
1787 +1234567890
1788 432109876
1790 4.3.9 Period of Time
1792 Value Name: PERIOD
1794 Purpose: This value type is used to identify values that contain a
1795 precise period of time.
1797 Formal Definition: The data type is defined by the following
1798 notation:
1800 period = period-explicit / period-start
1802 period-explicit = date-time "/" date-time
1803 ; [ISO 8601] complete representation basic format for a period of
1804 ; time consisting of a start and end. The start MUST be before the
1805 ; end.
1807 period-start = date-time "/" duration
1808 ; [ISO 8601] complete representation basic format for a period of
1809 ; time consisting of a start and positive duration of time.
1811 Description: If the property permits, multiple "period" values can be
1812 specified using a COMMA character (US-ASCII decimal 44) separator
1813 character. There are two forms of a period of time. A period of time
1814 is identified by its start and its end. This format is expressed as
1815 the [ISO 8601] complete representation, basic format for "DATE-TIME"
1816 start of the period, followed by a SOLIDUS character (US-ASCII
1817 decimal 47), followed by the "DATE-TIME" of the end of the period.
1818 The start of the period MUST be before the end of the period. A
1819 period of time can also be defined by a start and a positive duration
1820 of time. The format is expressed as the [ISO 8601] complete
1821 representation, basic format for the "DATE-TIME" start of the period,
1822 followed by a SOLIDUS character (US-ASCII decimal 47), followed by
1823 the [ISO 8601] basic format for "DURATION" of the period.
1825 Example: The period starting at 18:00:00 UTC, on January 1, 1997 and
1826 ending at 07:00:00 UTC on January 2, 1997 would be:
1828 19970101T180000Z/19970102T070000Z
1830 The period start at 18:00:00 on January 1, 1997 and lasting 5 hours
1831 and 30 minutes would be:
1833 19970101T180000Z/PT5H30M
1835 No additional content value encoding (i.e., BACKSLASH character
1836 encoding) is defined for this value type.
1838 4.3.10 Recurrence Rule
1840 Value Name: RECUR
1842 Purpose: This value type is used to identify properties that contain
1843 a recurrence rule specification.
1845 Formal Definition: The value type is defined by the following
1846 notation:
1848 recur = "FREQ"=freq
1849 [(";" "UNTIL" "=" enddate) / (";" "COUNT" "=" 1*DIGIT)]
1850 [";" "INTERVAL" "=" 1*DIGIT]
1851 [";" "BYSECOND" "=" byseclist]
1852 [";" "BYMINUTE" "=" byminlist]
1853 [";" "BYHOUR" "=" byhrlist]
1854 [";" "BYDAY" "=" bywdaylist]
1855 [";" "BYMONTHDAY" "=" bymodaylist]
1856 [";" "BYYEARDAY" "=" byyrdaylist]
1857 [";" "BYWEEKNO" "=" bywknolist]
1858 [";" "BYMONTH" "=" bymolist]
1859 [";" "BYSETPOS" "=" bysplist]
1860 [";" "WKST" "=" weekday)]
1861 *(";" x-name "=" text)
1862 ;Individual rule parts MUST only be specified once.
1863 ;Rule parts need not be specified in particular any order.
1865 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
1866 / "WEEKLY" / "MONTHLY" / "YEARLY"
1868 enddate = date
1869 enddate =/ date-time ;An UTC value
1871 byseclist = seconds / ( seconds *("," seconds) )
1873 seconds = 1DIGIT / 2DIGIT ;0 to 59
1875 byminlist = minutes / ( minutes *("," minutes) )
1877 minutes = 1DIGIT / 2DIGIT ;0 to 59
1879 byhrlist = hour / ( hour *("," hour) )
1881 hour = 1DIGIT / 2DIGIT ;0 to 23
1882 bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )
1884 weekdaynum = [([plus] ordwk / minus ordwk)] weekday
1886 plus = "+"
1888 minus = "-"
1890 ordwk = 1DIGIT / 2DIGIT ;1 to 53
1892 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
1893 ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
1894 ;FRIDAY, SATURDAY and SUNDAY days of the week.
1896 bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )
1898 monthdaynum = ([plus] ordmoday) / (minus ordmoday)
1900 ordmoday = 1DIGIT / 2DIGIT ;1 to 31
1902 byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )
1904 yeardaynum = ([plus] ordyrday) / (minus ordyrday)
1906 ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366
1908 bywknolist = weeknum / ( weeknum *("," weeknum) )
1910 weeknum = ([plus] ordwk) / (minus ordwk)
1912 bymolist = monthnum / ( monthnum *("," monthnum) )
1914 monthnum = 1DIGIT / 2DIGIT ;1 to 12
1916 bysplist = setposday / ( setposday *("," setposday) )
1918 setposday = yeardaynum
1920 Description: If the property permits, multiple "recur" values can be
1921 specified using a COMMA character (US-ASCII decimal 44) separator
1922 character. The value type is a structured value consisting of a list
1923 of one or more recurrence grammar parts. Each rule part is defined by
1924 a NAME=VALUE pair. The rule parts are separated from each other by
1925 the SEMICOLON character (US-ASCII decimal 59). The rule parts are not
1926 ordered in any particular sequence. Individual rule parts MUST only
1927 be specified once.
1929 The FREQ rule part identifies the type of recurrence rule. This rule
1930 part MUST be specified in the recurrence rule. Valid values include
1931 SECONDLY, to specify repeating events based on an interval of a
1932 second or more; MINUTELY, to specify repeating events based on an
1933 interval of a minute or more; HOURLY, to specify repeating events
1934 based on an interval of an hour or more; DAILY, to specify repeating
1935 events based on an interval of a day or more; WEEKLY, to specify
1936 repeating events based on an interval of a week or more; MONTHLY, to
1937 specify repeating events based on an interval of a month or more; and
1938 YEARLY, to specify repeating events based on an interval of a year or
1939 more.
1941 The INTERVAL rule part contains a positive integer representing how
1942 often the recurrence rule repeats. The default value is "1" or every
1943 second for a SECONDLY rule, or every minute for a MINUTELY rule,
1944 every hour for an HOURLY rule, every day for a DAILY rule, every week
1945 for a WEEKLY rule, every month for a MONTHLY rule and every year for
1946 a YEARLY rule.
1948 The UNTIL rule part defines a date-time value which bounds the
1949 recurrence rule in an inclusive manner. If the value specified by
1950 UNTIL is synchronized with the specified recurrence, this date or
1951 date-time becomes the last instance of the recurrence. If specified
1952 as a date-time value, then it MUST be specified in an UTC time
1953 format. If not present, and the COUNT rule part is also not present,
1954 the RRULE is considered to repeat forever.
1956 The COUNT rule part defines the number of occurrences at which to
1957 range-bound the recurrence. The "DTSTART" property value, if
1958 specified, counts as the first occurrence.
1960 The BYSECOND rule part specifies a COMMA character (US-ASCII decimal
1961 44) separated list of seconds within a minute. Valid values are 0 to
1962 59. The BYMINUTE rule part specifies a COMMA character (US-ASCII
1963 decimal 44) separated list of minutes within an hour. Valid values
1964 are 0 to 59. The BYHOUR rule part specifies a COMMA character (US-
1965 ASCII decimal 44) separated list of hours of the day. Valid values
1966 are 0 to 23.
1968 The BYDAY rule part specifies a COMMA character (US-ASCII decimal 44)
1969 separated list of days of the week; MO, indicates Monday; TU,
1970 indicates Tuesday; WE, indicates Wednesday; TH, indicates Thursday;
1971 FR, indicates Friday; SA, indicates Saturday; SU, indicates Sunday.
1973 Each BYDAY value can also be preceded by a positive (+n) or negative
1974 (-n) integer. If present, this indicates the nth occurrence of the
1975 specific day within the MONTHLY or YEARLY RRULE. For example, within
1976 a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday
1977 within the month, whereas -1MO represents the last Monday of the
1978 month. If an integer modifier is not present, it means all days of
1979 this type within the specified frequency. For example, within a
1980 MONTHLY rule, MO represents all Mondays within the month.
1982 The BYMONTHDAY rule part specifies a COMMA character (ASCII decimal
1983 44) separated list of days of the month. Valid values are 1 to 31 or
1984 -31 to -1. For example, -10 represents the tenth to the last day of
1985 the month.
1987 The BYYEARDAY rule part specifies a COMMA character (US-ASCII
1988 decimal 44) separated list of days of the year. Valid values are 1 to
1989 366 or -366 to -1. For example, -1 represents the last day of the
1990 year (December 31st) and -306 represents the 306th to the last day of
1991 the year (March 1st).
1993 The BYWEEKNO rule part specifies a COMMA character (US-ASCII decimal
1994 44) separated list of ordinals specifying weeks of the year. Valid
1995 values are 1 to 53 or -53 to -1. This corresponds to weeks according
1996 to week numbering as defined in [ISO 8601]. The first calendar week
1997 of the year is the one that includes the first 4 days of the year. A
1998 week is defined as a seven day period, starting on the day of the
1999 week defined to be the week start (see WKST). This rule part is only
2000 valid for YEARLY rules. For example, 3 represents the third week of
2001 the year.
2003 Note: Assuming a Monday week start, week 53 can only occur when
2004 Thursday is January 1 or if it is a leap year and Wednesday is
2005 January 1.
2007 The BYMONTH rule part specifies a COMMA character (US-ASCII decimal
2008 44) separated list of months of the year. Valid values are 1 to 12.
2010 The WKST rule part specifies the day on which the workweek starts.
2011 Valid values are MO, TU WE , , TH, FR, SA and SU. This is significant
2012 when a WEEKLY RRULE has an interval greater than 1, and a BYDAY rule
2013 part is specified. This is also significant when in a YEARLY RRULE
2014 when a BYWEEKNO rule part is specified. The default value is MO.
2016 The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal
2017 44) separated list of values which corresponds to the nth occurrence
2018 within the set of events specified by the rule. Valid values are 1 to
2019 366 or -366 to -1. It MUST only be used in conjunction with another
2020 Byxxx rule part. For example "the last work day of the month" could
2021 be represented as:
2023 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
2025 Each BYSETPOS value can include a positive (+n) or negative (-n)
2026 integer. If present, this indicates the nth occurrence of the
2027 specific occurrence within the set of events specified by the rule.
2029 If BYxxx rule part values are found which are beyond the available
2030 scope (ie, BYMONTHDAY=30 in February), they are simply ignored.
2032 Information, not contained in the rule, necessary to determine the
2033 various recurrence instance start time and dates are derived from the
2034 Start Time (DTSTART) entry attribute. For example,
2035 "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
2036 month or a time. This information would be the same as what is
2037 specified for DTSTART.
2039 BYxxx rule parts modify the recurrence in some manner. BYxxx rule
2040 parts for a period of time which is the same or greater than the
2041 frequency generally reduce or limit the number of occurrences of the
2042 recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" reduces the
2043 number of recurrence instances from all days (if BYMONTH tag is not
2044 present) to all days in January. BYxxx rule parts for a period of
2045 time less than the frequency generally increase or expand the number
2046 of occurrences of the recurrence. For example,
2047 "FREQ=YEARLY;BYMONTH=1,2" increases the number of days within the
2048 yearly recurrence set from 1 (if BYMONTH tag is not present) to 2.
2050 If multiple BYxxx rule parts are specified, then after evaluating the
2051 specified FREQ and INTERVAL rule parts, the BYxxx rule parts are
2052 applied to the current set of evaluated occurrences in the following
2053 order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR,
2054 BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are evaluated.
2056 Here is an example of evaluating multiple BYxxx rule parts.
2058 DTSTART;TZID=US-Eastern:19970105T083000
2059 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
2060 BYMINUTE=30
2062 First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to arrive
2063 at "every other year". Then, "BYMONTH=1" would be applied to arrive
2064 at "every January, every other year". Then, "BYDAY=SU" would be
2065 applied to arrive at "every Sunday in January, every other year".
2066 Then, "BYHOUR=8,9" would be applied to arrive at "every Sunday in
2067 January at 8 AM and 9 AM, every other year". Then, "BYMINUTE=30"
2068 would be applied to arrive at "every Sunday in January at 8:30 AM and
2069 9:30 AM, every other year". Then, lacking information from RRULE, the
2070 second is derived from DTSTART, to end up in "every day in January at
2071 8:30:00 AM and 9:30:00 AM, every other year". Similarly, if the
2072 BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY or BYMONTH rule part were
2073 missing, the appropriate minute, hour, day or month would have been
2074 retrieved from the "DTSTART" property.
2076 No additional content value encoding (i.e., BACKSLASH character
2077 encoding) is defined for this value type.
2079 Example: The following is a rule which specifies 10 meetings which
2080 occur every other day:
2082 FREQ=DAILY;COUNT=10;INTERVAL=2
2084 There are other examples specified in the "RRULE" specification.
2086 4.3.11 Text
2088 Value Name: TEXT
2090 Purpose This value type is used to identify values that contain human
2091 readable text.
2093 Formal Definition: If the character set is UTF-8, the value type is
2094 defined by the following notation. This must be modified depending on
2095 character sets. For example, the definition of TSAFE-CHAR includes
2096 ESC for character sets that use ISO 2022 character set switching and
2097 TSAFE-CHAR should not include NON-US-ASCII when the character set is
2098 US-ASCII.
2100 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
2101 ; Folded according to description above
2103 ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
2104 ; \\ encodes \, \N or \n encodes newline
2105 ; \; encodes ;, \, encodes ,
2107 TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
2108 %x5D-7E / NON-US-ASCII
2109 ; Any character except CTLs not needed by the current
2110 ; character set, DQUOTE, ";", ":", "\", ","
2112 Description: If the property permits, multiple "text" values can be
2113 specified using a COMMA character (US-ASCII decimal 44) separator
2114 character.
2116 The language in which the text is represented can be controlled by
2117 the "LANGUAGE" property parameter.
2119 An intentional formatted text line break MUST only be included in a
2120 "TEXT" property value by representing the line break with the
2121 character sequence of BACKSLASH (US-ASCII decimal 92), followed by a
2122 LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL LETTER
2123 N (US-ASCII decimal 78), that is "\n" or "\N".
2125 The "TEXT" property values may also contain special characters that
2126 are used to signify delimiters, such as a COMMA character for lists
2127 of values or a SEMICOLON character for structured values. In order to
2128 support the inclusion of these special characters in "TEXT" property
2129 values, they need to be escaped with a BACKSLASH character. A
2130 BACKSLASH character (US-ASCII decimal 92) in a "TEXT" property value
2131 MUST be escaped with another BACKSLASH character. A COMMA character
2132 in a "TEXT" property value MUST be escaped with a BACKSLASH character
2133 (US-ASCII decimal 92). A SEMICOLON character in a "TEXT" property
2134 value MUST be escaped with a BACKSLASH character (US-ASCII decimal
2135 92). However, a COLON character in a "TEXT" property value SHALL NOT
2136 be escaped with a BACKSLASH character.Example: A multiple line value
2137 of:
2139 Project XYZ Final Review
2140 Conference Room - 3B
2141 Come Prepared.
2143 would be represented as:
2145 Project XYZ Final Review\n Conference Room - 3B\nCome Prepared.
2147 4.3.12 Time
2149 Value Name: TIME
2150 Purpose: This value type is used to identify values that contain a
2151 time of day.
2153 Formal Definition: The data type is defined by the following
2154 notation:
2156 time = time-hour time-minute time-second [time-utc]
2158 time-hour = 2DIGIT ;00-23
2159 time-minute = 2DIGIT ;00-59
2160 time-second = 2DIGIT ;00-60
2161 ;The "60" value is used to account for "leap" seconds.
2163 time-utc = "Z"
2165 Description: If the property permits, multiple "time" values can be
2166 specified using a COMMA character (US-ASCII decimal 44) separator
2167 character. No additional content value encoding (i.e., BACKSLASH
2168 character encoding) is defined for this value type.
2170 The "TIME" data type is used to identify values that contain a time
2171 of day. The format is based on the [ISO 8601] complete
2172 representation, basic format for a time of day. The text format
2173 consists of a two-digit 24-hour of the day (i.e., values 0-23), two-
2174 digit minute in the hour (i.e., values 0-59), and two-digit seconds
2175 in the minute (i.e., values 0-60). The seconds value of 60 is only to
2176 be used to account for "leap" seconds. Fractions of a second are not
2177 supported by this format.
2179 In parallel to the "DATE-TIME" definition above, the "TIME" data type
2180 expresses time values in three forms:
2182 The form of time with UTC offset MUST NOT be used. For example, the
2183 following is NOT VALID for a time value:
2185 230000-0800 ;Invalid time format
2187 FORM #1 LOCAL TIME
2189 The local time form is simply a time value that does not contain the
2190 UTC designator nor does it reference a time zone. For example, 11:00
2191 PM:
2193 230000
2195 Time values of this type are said to be "floating" and are not bound
2196 to any time zone in particular. They are used to represent the same
2197 hour, minute, and second value regardless of which time zone is
2198 currently being observed. For example, an event can be defined that
2199 indicates that an individual will be busy from 11:00 AM to 1:00 PM
2200 every day, no matter which time zone the person is in. In these
2201 cases, a local time can be specified. The recipient of an iCalendar
2202 object with a property value consisting of a local time, without any
2203 relative time zone information, should interpret the value as being
2204 fixed to whatever time zone the ATTENDEE is in at any given moment.
2205 This means that two ATTENDEEs may participate in the same event at
2206 different UTC times; floating time should only be used where that is
2207 reasonable behavior.
2209 In most cases, a fixed time is desired. To properly communicate a
2210 fixed time in a property value, either UTC time or local time with
2211 time zone reference MUST be specified.
2213 The use of local time in a TIME value without the TZID property
2214 parameter is to be interpreted as a local time value, regardless of
2215 the existence of "VTIMEZONE" calendar components in the iCalendar
2216 object.
2218 FORM #2: UTC TIME
2220 UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z
2221 suffix character (US-ASCII decimal 90), the UTC designator, appended
2222 to the time value. For example, the following represents 07:00 AM
2223 UTC:
2225 070000Z
2227 The TZID property parameter MUST NOT be applied to TIME properties
2228 whose time values are specified in UTC.
2230 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
2232 The local time with reference to time zone information form is
2233 identified by the use the TZID property parameter to reference the
2234 appropriate time zone definition. TZID is discussed in detail in the
2235 section on Time Zone.
2237 Example: The following represents 8:30 AM in New York in Winter, five
2238 hours behind UTC, in each of the three formats using the "X-
2239 TIMEOFDAY" non-standard property:
2241 X-TIMEOFDAY:083000
2243 X-TIMEOFDAY:133000Z
2245 X-TIMEOFDAY;TZID=America-New York:083000
2247 4.3.13 URI
2249 Value Name: URI
2251 Purpose: This value type is used to identify values that contain a
2252 uniform resource identifier (URI) type of reference to the property
2253 value.
2255 Formal Definition: The data type is defined by the following
2256 notation:
2258 uri =
2260 Description: This data type might be used to reference binary
2261 information, for values that are large, or otherwise undesirable to
2262 include directly in the iCalendar object.
2264 The URI value formats in RFC 1738, RFC 2111 and any other IETF
2265 registered value format can be specified.
2267 Any IANA registered URI format can be used. These include, but are
2268 not limited to, those defined in RFC 1738 and RFC 2111.
2270 When a property parameter value is a URI value type, the URI must be
2271 specified as a quoted-string value.
2273 No additional content value encoding (i.e., BACKSLASH character
2274 encoding) is defined for this value type.
2276 Example: The following is a URI for a network file:
2278 http://host1.com/my-report.txt
2280 4.3.14 UTC Offset
2282 Value Name: UTC-OFFSET
2284 Purpose: This value type is used to identify properties that contain
2285 an offset from UTC to local time.
2287 Formal Definition: The data type is defined by the following
2288 notation:
2290 utc-offset = time-numzone ;As defined above in time data type
2292 time-numzone = ("+" / "-") time-hour time-minute
2294 Description: The PLUS SIGN character MUST be specified for positive
2295 UTC offsets (i.e., ahead of UTC). The value of "-0000" is not
2296 allowed.
2298 No additional content value encoding (i.e., BACKSLASH character
2299 encoding) is defined for this value type.
2301 Example: The following are UTC offsets are given for standard time
2302 for New York (five hours behind UTC) and Geneva (one hour ahead of
2303 UTC):
2305 -0500
2307 +0100
2308 4.4 iCalendar Object
2310 The Calendaring and Scheduling Core Object is a collection of
2311 calendaring and scheduling information. Typically, this information
2312 will consist of a single iCalendar object. However, multiple
2313 iCalendar objects can be sequentially grouped together. The first
2314 line and last line of the iCalendar object MUST contain a pair of
2315 iCalendar object delimiter strings. The syntax for an iCalendar
2316 object is as follows:
2318 icalobject = "BEGIN" ":" "VCALENDAR" CRLF
2319 icalbody
2320 "END" ":" "VCALENDAR" CRLF [icalobject]
2322 The following is a simple example of an iCalendar object:
2324 BEGIN:VCALENDAR
2325 VERSION:2.0
2326 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
2327 BEGIN:VEVENT
2328 DTSTART:19970714T170000Z
2329 DTEND:19970715T035959Z
2330 SUMMARY:Bastille Day Party
2331 END:VEVENT
2332 END:VCALENDAR
2334 4.5 Property
2336 A property is the definition of an individual attribute describing a
2337 calendar property or a calendar component. A property takes the form
2338 defined by the "contentline" notation defined in section 4.1.1.
2340 The following is an example of a property:
2342 DTSTART:19960415T133000Z
2344 This memo places no imposed ordering of properties within an
2345 iCalendar object.
2347 Property names, parameter names and enumerated parameter values are
2348 case insensitive. For example, the property name "DUE" is the same as
2349 "due" and "Due", DTSTART;TZID=Eastern:19980714T120000 is the same as
2350 DtStart;TzID=Eastern:19980714T120000.
2352 4.6 Calendar Components
2354 The body of the iCalendar object consists of a sequence of calendar
2355 properties and one or more calendar components. The calendar
2356 properties are attributes that apply to the calendar as a whole. The
2357 calendar components are collections of properties that express a
2358 particular calendar semantic. For example, the calendar component can
2359 specify an event, a to-do, a journal entry, time zone information, or
2360 free/busy time information, or an alarm.
2362 The body of the iCalenar object is defined by the following notation:
2364 icalbody = calprops component
2366 calprops = [calscale] [method] prodid version *x-prop
2368 component = 1*(eventc / todoc / journalc / freebusyc /
2369 / timezonec / iana-comp / x-comp)
2371 iana-comp = "BEGIN" ":" iana-token CRLF
2373 1*contentline
2375 "END" ":" iana-token CRLF
2377 x-comp = "BEGIN" ":" x-name CRLF
2379 1*contentline
2381 "END" ":" x-name CRLF
2383 An iCalendar object must include the "PRODID" and "VERSION" calendar
2384 properties. In addition, it must include at least one calendar
2385 component. Special forms of iCalendar objects are possible to publish
2386 just busy time (i.e., only a "VFREEBUSY" calendar component) or time
2387 zone (i.e., only a "VTIMEZONE" calendar component) information. In
2388 addition, a complex iCalendar object is possible that is used to
2389 capture a complete snapshot of the contents of a calendar (e.g.,
2390 composite of many different calendar components). More commonly, an
2391 iCalendar object will consist of just a single "VEVENT", "VTODO" or
2392 "VJOURNAL" calendar component.
2394 4.6.1 Event Component
2396 Component Name: "VEVENT"
2398 Purpose: Provide a grouping of component properties that describe an
2399 event.
2401 Format Definition: A "VEVENT" calendar component is defined by the
2402 following notation:
2404 eventc = "BEGIN" ":" "VEVENT" CRLF
2405 eventprop *alarmc
2406 "END" ":" "VEVENT" CRLF
2408 eventprop = *attach *attendee *categories [class] *comment
2409 *contact [created] [description] [dtend / duration]
2410 [dtstart] *exdate *exrule [geo] [last-mod] [location]
2411 [organizer] [priority] *rstatus *related *resources
2412 *rdate *rrule [dtstamp] [seq] [status] [summary]
2413 [transp] [uid] [url] [recurid] *x-prop
2414 Description: A "VEVENT" calendar component is a grouping of component
2415 properties, and possibly including "VALARM" calendar components, that
2416 represents a scheduled amount of time on a calendar. For example, it
2417 can be an activity; such as a one-hour long, department meeting from
2418 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time
2419 on an individual calendar. Hence, the event will appear as an opaque
2420 interval in a search for busy time. Alternately, the event can have
2421 its Time Transparency set to "TRANSPARENT" in order to prevent
2422 blocking of the event in searches for busy time.
2424 The "VEVENT" is also the calendar component used to specify an
2425 anniversary or daily reminder within a calendar. These events have a
2426 DATE value type for the "DTSTART" property instead of the default
2427 data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property, it
2428 MUST be specified as a DATE value also. The anniversary type of
2429 "VEVENT" can span more than one date (i.e, "DTEND" property value is
2430 set to a calendar date after the "DTSTART" property value).
2432 The "DTSTART" property for a "VEVENT" specifies the inclusive start
2433 of the event. For recurring events, it also specifies the very first
2434 instance in the recurrence set. The "DTEND" property for a "VEVENT"
2435 calendar component specifies the non-inclusive end of the event. For
2436 cases where a "VEVENT" calendar component specifies a "DTSTART"
2437 property with a DATE data type but no "DTEND" property, the events
2438 non-inclusive end is the end of the calendar date specified by the
2439 "DTSTART" property. For cases where a "VEVENT" calendar component
2440 specifies a "DTSTART" property with a DATE-TIME data type but no
2441 "DTEND" property, the event ends on the same calendar date and time
2442 of day specified by the "DTSTART" property.
2444 The "VEVENT" calendar component cannot be nested within another
2445 calendar component. However, "VEVENT" calendar components can be
2446 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2447 component with the "RELATED-TO" property.
2449 Example: The following is an example of the "VEVENT" calendar
2450 component used to represent a meeting that will also be opaque to
2451 searches for busy time:
2453 BEGIN:VEVENT
2454 UID:19970901T130000Z-123401@host.com
2455 DTSTAMP:19970901T1300Z
2456 DTSTART:19970903T163000Z
2457 DTEND:19970903T190000Z
2458 SUMMARY:Annual Employee Review
2459 CLASS:PRIVATE
2460 CATEGORIES:BUSINESS,HUMAN RESOURCES
2461 END:VEVENT
2463 The following is an example of the "VEVENT" calendar component used
2464 to represent a reminder that will not be opaque, but rather
2465 transparent, to searches for busy time:
2467 BEGIN:VEVENT
2468 UID:19970901T130000Z-123402@host.com
2469 DTSTAMP:19970901T1300Z
2470 DTSTART:19970401T163000Z
2471 DTEND:19970402T010000Z
2472 SUMMARY:Laurel is in sensitivity awareness class.
2473 CLASS:PUBLIC
2474 CATEGORIES:BUSINESS,HUMAN RESOURCES
2475 TRANSP:TRANSPARENT
2476 END:VEVENT
2478 The following is an example of the "VEVENT" calendar component used
2479 to represent an anniversary that will occur annually. Since it takes
2480 up no time, it will not appear as opaque in a search for busy time;
2481 no matter what the value of the "TRANSP" property indicates:
2483 BEGIN:VEVENT
2484 UID:19970901T130000Z-123403@host.com
2485 DTSTAMP:19970901T1300Z
2486 DTSTART:19971102
2487 SUMMARY:Our Blissful Anniversary
2488 CLASS:CONFIDENTIAL
2489 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
2490 RRULE:FREQ=YEARLY
2491 END:VEVENT
2493 4.6.2 To-do Component
2495 Component Name: VTODO
2497 Purpose: Provide a grouping of calendar properties that describe a
2498 to-do.
2500 Formal Definition: A "VTODO" calendar component is defined by the
2501 following notation:
2503 todoc = "BEGIN" ":" "VTODO" CRLF
2504 todoprop *alarmc
2505 "END" ":" "VTODO" CRLF
2507 todoprop = *attach *attendee *categories [class] *comment
2508 [completed] *contact [created] [description] [dtstamp]
2509 [dtstart] [due / duration] *exdate *exrule [geo]
2510 [last-mod] [location] [organizer] [percent] [priority]
2511 *rstatus *related *resources *rdate *rrule
2512 [recurid] [seq] [status] [summary] [uid] [url]
2513 *x-prop
2515 Description: A "VTODO" calendar component is a grouping of component
2516 properties and possibly "VALARM" calendar components that represent
2517 an action-item or assignment. For example, it can be used to
2518 represent an item of work assigned to an individual; such as "turn in
2519 travel expense today".
2521 The "VTODO" calendar component cannot be nested within another
2522 calendar component. However, "VTODO" calendar components can be
2523 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2524 component with the "RELATED-TO" property.
2526 A "VTODO" calendar component without the "DTSTART" and "DUE" (or
2527 "DURATION") properties specifies a to-do that will be associated with
2528 each successive calendar date, until it is completed.
2530 Example: The following is an example of a "VTODO" calendar component:
2532 BEGIN:VTODO
2533 UID:19970901T130000Z-123404@host.com
2534 DTSTAMP:19970901T1300Z
2535 DTSTART:19970415T133000Z
2536 DUE:19970416T045959Z
2537 SUMMARY:1996 Income Tax Preparation
2538 CLASS:CONFIDENTIAL
2539 CATEGORIES:FAMILY,FINANCE
2540 PRIORITY:1
2541 STATUS:NEEDS-ACTION
2542 END:VEVENT
2544 4.6.3 Journal Component
2546 Component Name: VJOURNAL
2548 Purpose: Provide a grouping of component properties that describe a
2549 journal entry.
2551 Formal Definition: A "VJOURNAL" calendar component is defined by the
2552 following notation:
2554 journalc = "BEGIN" ":" "VJOURNAL" CRLF
2555 jourprop
2556 "END" ":" "VJOURNAL" CRLF
2558 jourprop = *attach *attendee *categories [class] *comment
2559 *contact [created] [description] [dtstart] [dtstamp]
2560 *exdate *exrule [last-mod] [organizer] [recurid]
2561 *related *rdate *rrule *rstatus [seq] [status]
2562 [summary] [uid] [url] *x-prop
2564 Description: A "VJOURNAL" calendar component is a grouping of
2565 component properties that represent one or more descriptive text
2566 notes associated with a particular calendar date. The "DTSTART"
2567 property is used to specify the calendar date that the journal entry
2568 is associated with. Generally, it will have a DATE value data type,
2569 but it can also be used to specify a DATE-TIME value data type.
2570 Examples of a journal entry include a daily record of a legislative
2571 body or a journal entry of individual telephone contacts for the day
2572 or an ordered list of accomplishments for the day. The "VJOURNAL"
2573 calendar component can also be used to associate a document with a
2574 calendar date.
2576 The "VJOURNAL" calendar component does not take up time on a
2577 calendar. Hence, it does not play a role in free or busy time
2578 searches - - it is as though it has a time transparency value of
2579 TRANSPARENT. It is transparent to any such searches.
2581 The "VJOURNAL" calendar component cannot be nested within another
2582 calendar component. However, "VJOURNAL" calendar components can be
2583 related to each other or to a "VEVENT" or to a "VTODO" calendar
2584 component, with the "RELATED-TO" property.
2586 Example: The following is an example of the "VJOURNAL" calendar
2587 component:
2589 BEGIN:VJOURNAL
2590 UID:19970901T130000Z-123405@host.com
2591 DTSTAMP:19970901T1300Z
2592 DTSTART;VALUE=DATE:19970317
2593 SUMMARY:Staff meeting minutes
2594 DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
2595 and Bob. Aurora project plans were reviewed. There is currently
2596 no budget reserves for this project. Lisa will escalate to
2597 management. Next meeting on Tuesday.\n
2598 2. Telephone Conference: ABC Corp. sales representative called
2599 to discuss new printer. Promised to get us a demo by Friday.\n
2600 3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
2601 Is looking into a loaner car. 654-2323 (tel).
2602 END:VJOURNAL
2604 4.6.4 Free/Busy Component
2606 Component Name: VFREEBUSY
2608 Purpose: Provide a grouping of component properties that describe
2609 either a request for free/busy time, describe a response to a request
2610 for free/busy time or describe a published set of busy time.
2612 Formal Definition: A "VFREEBUSY" calendar component is defined by the
2613 following notation:
2615 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
2616 fbprop
2617 "END" ":" "VFREEBUSY" CRLF
2619 fbprop = *attendee *comment [contact] [dtstart] [dtend]
2620 [duration] [dtstamp] *freebusy [organizer] *rstatus
2621 [uid] [url] *x-prop
2623 Description: A "VFREEBUSY" calendar component is a grouping of
2624 component properties that represents either a request for, a reply to
2625 a request for free or busy time information or a published set of
2626 busy time information.
2628 When used to request free/busy time information, the "ATTENDEE"
2629 property specifies the calendar users whose free/busy time is being
2630 requested; the "ORGANIZER" property specifies the calendar user who
2631 is requesting the free/busy time; the "DTSTART" and "DTEND"
2632 properties specify the window of time that the free/busy time is
2633 being requested; the "UID" and "DTSTAMP" properties are specified to
2634 assist in proper sequencing of multiple free/busy time requests.
2636 When used to reply to a request for free/busy time, the "ATTENDEE"
2637 property specifies the calendar user responding to the free/busy time
2638 request; the "ORGANIZER" property specifies the calendar user that
2639 originally requested the free/busy time; the "FREEBUSY" property
2640 specifies the free/busy time information; and the "UID" and "DTSTAMP"
2641 properties are specified to assist in proper sequencing of multiple
2642 free/busy time replies.
2644 When used to publish busy time, the "ORGANIZER" property specifies
2645 the calendar user associated with the published busy time; the
2646 "DTSTART" and "DTEND" properties specify an inclusive time window
2647 that surrounds the busy time information; the "FREEBUSY" property
2648 specifies the published busy time information; and the "DTSTAMP"
2649 property specifies the date/time that iCalendar object was created.
2651 The "VFREEBUSY" calendar component cannot be nested within another
2652 calendar component. Multiple "VFREEBUSY" calendar components can be
2653 specified within an iCalendar object. This permits the grouping of
2654 Free/Busy information into logical collections, such as monthly
2655 groups of busy time information.
2657 The "VFREEBUSY" calendar component is intended for use in iCalendar
2658 object methods involving requests for free time, requests for busy
2659 time, requests for both free and busy, and the associated replies.
2661 Free/Busy information is represented with the "FREEBBUSY" property.
2662 This property provides a terse representation of time periods. One or
2663 more "FREEBUSY" properties can be specified in the "VFREEBUSY"
2664 calendar component.
2666 When present in a "VFREEBUSY" calendar component, the "DTSTART" and
2667 "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
2668 properties. In a free time request, these properties can be used in
2669 combination with the "DURATION" property to represent a request for a
2670 duration of free time within a specified window of time.
2672 The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are
2673 not permitted within a "VFREEBUSY" calendar component. Any recurring
2674 events are resolved into their individual busy time periods using the
2675 "FREEBUSY" property.
2677 Example: The following is an example of a "VFREEBUSY" calendar
2678 component used to request free or busy time information:
2680 BEGIN:VFREEBUSY
2681 ORGANIZER:MAILTO:jane_doe@host1.com
2682 ATTENDEE:MAILTO:john_public@host2.com
2683 DTSTART:19971015T050000Z
2684 DTEND:19971016T050000Z
2685 DTSTAMP:19970901T083000Z
2686 END:VFREEBUSY
2688 The following is an example of a "VFREEBUSY" calendar component used
2689 to reply to the request with busy time information:
2691 BEGIN:VFREEBUSY
2692 ORGANIZER:MAILTO:jane_doe@host1.com
2693 ATTENDEE:MAILTO:john_public@host2.com
2694 DTSTAMP:19970901T100000Z
2695 FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
2696 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
2697 URL:http://host2.com/pub/busy/jpublic-01.ifb
2698 COMMENT:This iCalendar file contains busy time information for
2699 the next three months.
2700 END:VFREEBUSY
2702 The following is an example of a "VFREEBUSY" calendar component used
2703 to published busy time information.
2705 BEGIN:VFREEBUSY
2706 ORGANIZER:jsmith@host.com
2707 DTSTART:19980313T141711Z
2708 DTEND:19980410T141711Z
2709 FREEBUSY:19980314T233000Z/19980315T003000Z
2710 FREEBUSY:19980316T153000Z/19980316T163000Z
2711 FREEBUSY:19980318T030000Z/19980318T040000Z
2712 URL:http://www.host.com/calendar/busytime/jsmith.ifb
2713 END:VFREEBUSY
2715 4.6.5 Time Zone Component
2717 Component Name: VTIMEZONE
2719 Purpose: Provide a grouping of component properties that defines a
2720 time zone.
2722 Formal Definition: A "VTIMEZONE" calendar component is defined by the
2723 following notation:
2725 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
2727 tzid [last-mod] [tzurl] 1*(standardc / daylightc)
2728 *x-prop
2730 "END" ":" "VTIMEZONE" CRLF
2732 standardc = "BEGIN" ":" "STANDARD" CRLF
2734 tzprop
2736 "END" ":" "STANDARD" CRLF
2737 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
2739 tzprop
2741 "END" ":" "DAYLIGHT" CRLF
2743 tzprop = *comment dtstart (*rdate / *rrule)
2744 *tzname tzoffsetto tzoffsetfrom *x-prop
2746 Description: A time zone is unambiguously defined by the set of time
2747 measurement rules determined by the governing body for a given
2748 geographic area. These rules describe at a minimum the base offset
2749 from UTC for the time zone, often referred to as the Standard Time
2750 offset. Many locations adjust their Standard Time forward or backward
2751 by one hour, in order to accommodate seasonal changes in number of
2752 daylight hours, often referred to as Daylight Saving Time. Some
2753 locations adjust their time by a fraction of an hour. Standard Time
2754 is also known as Winter Time. Daylight Saving Time is also known as
2755 Advanced Time, Summer Time, or Legal Time in certain countries. The
2756 following table shows the changes in time zone rules for the eastern
2757 United States starting from 1967. Each line represents a description
2758 or rule for a particular observance.
2760 Effective Observance Rule
2762 Date (Date/Time) Offset Abbreviation
2764 1967-* lastSun in Oct, 02:00 -0500 EST
2766 1967-1973 last Sun in Apr, 02:00 -0400 EDT
2768 1974-1974 Jan 6, 02:00 -0400 EDT
2770 1975-1975 Feb 23, 02:00 -0400 EDT
2772 1976-1986 last Sun in Apr, 02:00 -0400 EDT
2774 1987-* first Sun in Apr, 02:00 -0400 EDT
2776 Interoperability between two calendaring and scheduling applications,
2777 especially for recurring events, to-dos or journal entries, is
2778 dependent on the ability to capture and convey date and time
2779 information in an unambiguous format. The specification of current
2780 time zone information is integral to this behavior.
2782 If present, the "VTIMEZONE" calendar component defines the set of
2783 Standard Time and Daylight Saving Time observances (or rules) for a
2784 particular time zone for a given interval of time. The "VTIMEZONE"
2785 calendar component cannot be nested within other calendar components.
2786 Multiple "VTIMEZONE" calendar components can exist in an iCalendar
2787 object. In this situation, each "VTIMEZONE" MUST represent a unique
2788 time zone definition. This is necessary for some classes of events,
2789 such as airline flights, that start in one time zone and end in
2790 another.
2792 The "VTIMEZONE" calendar component MUST be present if the iCalendar
2793 object contains an RRULE that generates dates on both sides of a time
2794 zone shift (e.g. both in Standard Time and Daylight Saving Time)
2795 unless the iCalendar object intends to convey a floating time (See
2796 the section "4.1.10.11 Time" for proper interpretation of floating
2797 time). It can be present if the iCalendar object does not contain
2798 such a RRULE. In addition, if a RRULE is present, there must be valid
2799 time zone information for all recurrence instances.
2801 The "VTIMEZONE" calendar component MUST include the "TZID" property
2802 and at least one definition of a standard or daylight component. The
2803 standard or daylight component MUST include the "DTSTART",
2804 "TZOFFSETFROM" and "TZOFFSETTO" properties.
2806 An individual "VTIMEZONE" calendar component MUST be specified for
2807 each unique "TZID" parameter value specified in the iCalendar object.
2809 Each "VTIMEZONE" calendar component consists of a collection of one
2810 or more sub-components that describe the rule for a particular
2811 observance (either a Standard Time or a Daylight Saving Time
2812 observance). The "STANDARD" sub-component consists of a collection of
2813 properties that describe Standard Time. The "DAYLIGHT" sub-component
2814 consists of a collection of properties that describe Daylight Saving
2815 Time. In general this collection of properties consists of:
2817 - the first onset date-time for the observance
2819 - the last onset date-time for the observance, if a last onset
2820 is known.
2822 - the offset to be applied for the observance
2824 - a rule that describes the day and time when the observance
2825 takes effect
2827 - an optional name for the observance
2829 For a given time zone, there may be multiple unique definitions of
2830 the observances over a period of time. Each observance is described
2831 using either a "STANDARD" or "DAYLIGHT" sub-component. The collection
2832 of these sub-components is used to describe the time zone for a given
2833 period of time. The offset to apply at any given time is found by
2834 locating the observance that has the last onset date and time before
2835 the time in question, and using the offset value from that
2836 observance.
2838 The top-level properties in a "VTIMEZONE" calendar component are:
2840 The mandatory "TZID" property is a text value that uniquely
2841 identifies the VTIMZONE calendar component within the scope of an
2842 iCalendar object.
2844 The optional "LAST-MODIFIED" property is a UTC value that specifies
2845 the date and time that this time zone definition was last updated.
2847 The optional "TZURL" property is url value that points to a published
2848 VTIMEZONE definition.
2850 The collection of properties that are used to define the STANDARD and
2851 DAYLIGHT sub-components include:
2853 The mandatory "DTSTART" property gives the effective onset date and
2854 local time for the time zone sub-component definition. "DTSTART" in
2855 this usage MUST be specified as a local DATE-TIME value.
2857 The mandatory "TZOFFSETFROM" property gives the UTC offset which is
2858 in use when the onset of this time zone observance begins.
2859 "TZOFFSETFROM" is combined with "DTSTART" to define the effective
2860 onset for the time zone sub-component definition. For example, the
2861 following represents the time at which the observance of Standard
2862 Time took effect in Fall 1967 for the eastern United States:
2864 DTSTART:19671029T020000
2866 TZOFFSETFROM:-0400
2868 The mandatory "TZOFFSETTO " property gives the UTC offset for the
2869 time zone sub-component (Standard Time or Daylight Saving Time) when
2870 this observance is in use.
2872 The optional "TZNAME" property is the customary name for the time
2873 zone. It may be specified multiple times, to allow for specifying
2874 multiple language variants of the time zone names. This could be used
2875 for displaying dates.
2877 If specified, the onset for the observance defined by the time zone
2878 sub-component is defined by either the "RRULE" or "RDATE" property.
2879 If neither are specified, only one sub-component can be specified in
2880 the "VTIMEZONE" calendar component and it is assumed that the single
2881 observance specified is always in effect.
2883 The "RRULE" property defines the recurrence rule for the onset of the
2884 observance defined by this time zone sub-component. Some specific
2885 requirements for the usage of RRULE for this purpose include:
2887 - If observance is known to have an effective end date, the
2888 "UNTIL" recurrence rule parameter MUST be used to specify the
2889 last valid onset of this observance (i.e., the UNTIL date-time
2890 will be equal to the last instance generated by the recurrence
2891 pattern). It MUST be specified in UTC time.
2893 - The "DTSTART" and the "TZOFFSETTO" properties MUST be used
2894 when generating the onset date-time values (instances) from the
2895 RRULE.
2897 Alternatively, the "RDATE" property can be used to define the onset
2898 of the observance by giving the individual onset date and times.
2899 "RDATE" in this usage MUST be specified as a local DATE-TIME value in
2900 UTC time.
2902 The optional "COMMENT" property is also allowed for descriptive
2903 explanatory text.
2905 Example: The following are examples of the "VTIMEZONE" calendar
2906 component:
2908 This is an example showing time zone information for the Eastern
2909 United States using "RDATE" property. Note that this is only suitable
2910 for a recurring event that starts on or later than April 6, 1997 at
2911 03:00:00 EDT (i.e., the earliest effective transition date and time)
2912 and ends no later than April 7, 1998 02:00:00 EST (i.e., latest valid
2913 date and time for EST in this scenario). For example, this can be
2914 used for a recurring event that occurs every Friday, 8am-9:00 AM,
2915 starting June 1, 1997, ending December 31, 1997.
2917 BEGIN:VTIMEZONE
2918 TZID:America-New_York
2919 LAST-MODIFIED:19870101T000000Z
2920 BEGIN:STANDARD
2921 DTSTART:19971026T020000
2922 RDATE:19971026T020000
2923 TZOFFSETFROM:-0400
2924 TZOFFSETTO:-0500
2925 TZNAME:EST
2926 END:STANDARD
2927 BEGIN:DAYLIGHT
2928 DTSTART:19971026T020000
2929 RDATE:19970406T020000
2930 TZOFFSETFROM:-0500
2931 TZOFFSETTO:-0400
2932 TZNAME:EDT
2933 END:DAYLIGHT
2934 END:VTIMEZONE
2936 This is a simple example showing the current time zone rules for the
2937 Eastern United States using a RRULE recurrence pattern. Note that
2938 there is no effective end date to either of the Standard Time or
2939 Daylight Time rules. This information would be valid for a recurring
2940 event starting today and continuing on into the known future.
2942 BEGIN:VTIMEZONE
2943 TZID:America-New_York
2944 LAST-MODIFIED:19870101T000000Z
2945 TZURL:http://zones.stds_r_us.net/tz/America-New_York
2946 BEGIN:STANDARD
2947 DTSTART:19671029T020000
2948 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2949 TZOFFSETFROM:-0400
2950 TZOFFSETTO:-0500
2951 TZNAME:EST
2952 END:STANDARD
2953 BEGIN:DAYLIGHT
2954 DTSTART:19870405T020000
2955 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
2956 TZOFFSETFROM:-0500
2957 TZOFFSETTO:-0400
2958 TZNAME:EDT
2959 END:DAYLIGHT
2960 END:VTIMEZONE
2962 This is an example showing a fictitious set of rules for the Eastern
2963 United States, where the Daylight Time rule has an effective end date
2964 (i.e., after that date, Daylight Time is no longer observed).
2966 BEGIN:VTIMEZONE
2967 TZID:America-New_York
2968 LAST-MODIFIED:19870101T000000Z
2969 BEGIN:STANDARD
2970 DTSTART:19671029T020000
2971 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2972 TZOFFSETFROM:-0400
2973 TZOFFSETTO:-0500
2974 TZNAME:EST
2975 END:STANDARD
2976 BEGIN:DAYLIGHT
2977 DTSTART:19870405T020000
2978 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
2979 TZOFFSETFROM:-0500
2980 TZOFFSETTO:-0400
2981 TZNAME:EDT
2982 END:DAYLIGHT
2983 END:VTIMEZONE
2985 This is an example showing a fictitious set of rules for the Eastern
2986 United States, where the first Daylight Time rule has an effective
2987 end date. There is a second Daylight Time rule that picks up where
2988 the other left off.
2990 BEGIN:VTIMEZONE
2991 TZID:America-New_York
2992 LAST-MODIFIED:19870101T000000Z
2993 BEGIN:STANDARD
2994 DTSTART:19671029T020000
2995 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2996 TZOFFSETFROM:-0400
2997 TZOFFSETTO:-0500
2998 TZNAME:EST
2999 END:STANDARD
3000 BEGIN:DAYLIGHT
3001 DTSTART:19870405T020000
3002 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3003 TZOFFSETFROM:-0500
3004 TZOFFSETTO:-0400
3005 TZNAME:EDT
3006 END:DAYLIGHT
3007 BEGIN:DAYLIGHT
3008 DTSTART:19990424T020000
3009 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
3010 TZOFFSETFROM:-0500
3011 TZOFFSETTO:-0400
3012 TZNAME:EDT
3013 END:DAYLIGHT
3014 END:VTIMEZONE
3016 4.6.6 Alarm Component
3018 Component Name: VALARM
3020 Purpose: Provide a grouping of component properties that define an
3021 alarm.
3023 Formal Definition: A "VALARM" calendar component is defined by the
3024 following notation:
3026 alarmc = "BEGIN" ":" "VALARM" CRLF
3027 (audioprop / dispprop / emailprop / procprop)
3028 "END" ":" "VALARM" CRLF
3030 audioprop = action trigger [duration repeat] [attach] *x-prop
3032 dispprop = action description trigger [duration
3033 repeat] *x-prop
3035 emailprop = action 1*attendee *attach description
3036 trigger [duration repeat] summary *x-prop
3038 procprop = action attach [description] trigger [duration
3039 repeat] *x-prop
3041 Description: A "VALARM" calendar component is a grouping of component
3042 properties that is a reminder or alarm for an event or a to-do. For
3043 example, it may be used to define a reminder for a pending event or
3044 an overdue to-do.
3046 The "VALARM" calendar component MUST include the "ACTION" and
3047 "TRIGGER" properties. The "ACTION" property further constrains the
3048 "VALARM" calendar component in the following ways:
3050 When the action is "AUDIO", the alarm can also include one and only
3051 one "ATTACH" property, which MUST point to a sound resource, which is
3052 rendered when the alarm is triggered.
3054 When the action is "DISPLAY", the alarm MUST also include a
3055 "DESCRIPTION" property, which contains the text to be displayed when
3056 the alarm is triggered.
3058 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
3059 property, which contains the text to be used as the message body, a
3060 "SUMMARY" property, which contains the text to be used as the message
3061 subject, and one or more "ATTENDEE" properties, which contain the
3062 email address of attendees to receive the message. It can also
3063 include one or more "ATTACH" properties, which are intended to be
3064 sent as message attachments. When the alarm is triggered, the email
3065 message is sent.
3067 When the action is "PROCEDURE", the alarm MUST include one and only
3068 one "ATTACH" property, which MUST point to a procedure resource,
3069 which is invoked when the alarm is triggered.
3071 The "VALARM" calendar component MUST only appear within either a
3072 "VEVENT" or "VTODO" calendar component. "VALARM" calendar components
3073 cannot be nested. Multiple mutually independent "VALARM" calendar
3074 components can be specified for a single "VEVENT" or "VTODO" calendar
3075 component.
3077 The "TRIGGER" property specifies when the alarm will be triggered.
3078 The "TRIGGER" property specifies a duration prior to the start of an
3079 event or a to-do. The "TRIGGER" edge may be explicitly set to be
3080 relative to the "START" or "END" of the event or to-do with the
3081 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER" property
3082 value type can alternatively be set to an absolute calendar date and
3083 time of day value.
3085 In an alarm set to trigger on the "START" of an event or to-do, the
3086 "DTSTART" property MUST be present in the associated event or to-do.
3087 In an alarm in a "VEVENT" calendar component set to trigger on the
3088 "END" of the event, either the "DTEND" property MUST be present, or
3089 the "DTSTART" and "DURATION" properties MUST both be present. In an
3090 alarm in a "VTODO" calendar component set to trigger on the "END" of
3091 the to-do, either the "DUE" property MUST be present, or the
3092 "DTSTART" and "DURATION" properties MUST both be present.
3094 The alarm can be defined such that it triggers repeatedly. A
3095 definition of an alarm with a repeating trigger MUST include both the
3096 "DURATION" and "REPEAT" properties. The "DURATION" property specifies
3097 the delay period, after which the alarm will repeat. The "REPEAT"
3098 property specifies the number of additional repetitions that the
3099 alarm will triggered. This repitition count is in addition to the
3100 initial triggering of the alarm. Both of these properties must be
3101 present in order to specify a repeating alarm. If one of these two
3102 properties is absent, then the alarm will not repeat beyond the
3103 initial trigger.
3105 The "ACTION" property is used within the "VALARM" calendar component
3106 to specify the type of action invoked when the alarm is triggered.
3107 The "VALARM" properties provide enough information for a specific
3108 action to be invoked. It is typically the responsibility of a
3109 "Calendar User Agent" (CUA) to deliver the alarm in the specified
3110 fashion. An "ACTION" property value of AUDIO specifies an alarm that
3111 causes a sound to be played to alert the user; DISPLAY specifies an
3112 alarm that causes a text message to be displayed to the user; EMAIL
3113 specifies an alarm that causes an electronic email message to be
3114 delivered to one or more email addresses; and PROCEDURE specifies an
3115 alarm that causes a procedure to be executed. The "ACTION" property
3116 MUST specify one and only one of these values.
3118 In an AUDIO alarm, if the optional "ATTACH" property is included, it
3119 MUST specify an audio sound resource. The intention is that the sound
3120 will be played as the alarm effect. If an "ATTACH" property is
3121 specified that does not refer to a sound resource, or if the
3122 specified sound resource cannot be rendered (because its format is
3123 unsupported, or because it cannot be retrieved), then the CUA or
3124 other entity responsible for playing the sound may choose a fallback
3125 action, such as playing a built-in default sound, or playing no sound
3126 at all.
3128 In a DISPLAY alarm, the intended alarm effect is for the text value
3129 of the "DESCRIPTION" property to be displayed to the user.
3131 In an EMAIL alarm, the intended alarm effect is for an email message
3132 to be composed and delivered to all the addresses specified by the
3133 "ATTENDEE" properties in the "VALARM" calendar component. The
3134 "DESCRIPTION" property of the "VALARM" calendar component MUST be
3135 used as the body text of the message, and the "SUMMARY" property MUST
3136 be used as the subject text. Any "ATTACH" properties in the "VALARM"
3137 calendar component SHOULD be sent as attachments to the message.
3139 In a PROCEDURE alarm, the "ATTACH" property in the "VALARM" calendar
3140 component MUST specify a procedure or program that is intended to be
3141 invoked as the alarm effect. If the procedure or program is in a
3142 format that cannot be rendered, then no procedure alarm will be
3143 invoked. If the "DESCRIPTION" property is present, its value
3144 specifies the argument string to be passed to the procedure or
3145 program. "Calendar User Agents" that receive an iCalendar object with
3146 this category of alarm, can disable or allow the "Calendar User" to
3147 disable, or otherwise ignore this type of alarm. While a very useful
3148 alarm capability, the PROCEDURE type of alarm should be treated by
3149 the "Calendar User Agent" as a potential security risk.
3151 Example: The following example is for a "VALARM" calendar component
3152 that specifies an audio alarm that will sound at a precise time and
3153 repeat 4 more times at 15 minute intervals:
3155 BEGIN:VALARM
3156 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
3157 REPEAT:4
3158 DURATION:PT15M
3159 ACTION:AUDIO
3160 ATTACH:ftp://host.com/pub/sounds/bell-01.wav
3161 END:VALARM
3163 The following example is for a "VALARM" calendar component that
3164 specifies a display alarm that will trigger 30 minutes before the
3165 scheduled start of the event or the due date/time of the to-do it is
3166 associated with and will repeat 2 more times at 15 minute intervals:
3168 BEGIN:VALARM
3169 TRIGGER:PT30M
3170 REPEAT:2
3171 DURATION:PT15M
3172 ACTION:DISPLAY
3173 DESCRIPTION:Breakfast meeting with executive\n
3174 team at 8:30 AM EST.
3175 END:VALARM
3177 The following example is for a "VALARM" calendar component that
3178 specifies an email alarm that will trigger 2 days before the
3179 scheduled due date/time of a to-do it is associated with. It does not
3180 repeat. The email has a subject, body and attachment link.
3182 BEGIN:VALARM
3183 TRIGGER:P2D
3184 ACTION:EMAIL
3185 ATTENDEE:MAILTO:john_doe@host.com
3186 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
3187 DESCRIPTION:A draft agenda needs to be sent out to the attendees
3188 to the weekly managers meeting (MGR-LIST). Attached is a
3189 pointer the document template for the agenda file.
3190 ATTACH:http://host.com/templates/agenda.doc
3191 END:VALARM
3193 The following example is for a "VALARM" calendar component that
3194 specifies a procedural alarm that will trigger at a precise date/time
3195 and will repeat 23 more times at one hour intervals. The alarm will
3196 invoke a procedure file.
3198 BEGIN:VALARM
3199 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
3200 REPEAT:23
3201 DURATION:PT1H
3202 ACTION:PROCEDURE
3203 ATTACH:ftp://host.com/novo-procs/felizano.exe
3204 END:VALARM
3206 4.7 Calendar Properties
3208 The Calendar Properties are attributes that apply to the iCalendar
3209 object, as a whole. These properties do not appear within a calendar
3210 component. They should be specified after the "BEGIN:VCALENDAR"
3211 property and prior to any calendar component.
3213 4.7.1 Calendar Scale
3215 Property Name: CALSCALE
3217 Purpose: This property defines the calendar scale used for the
3218 calendar information specified in the iCalendar object.
3220 Value Type: TEXT
3222 Property Parameters: Non-standard property parameters can be
3223 specified on this property.
3225 Conformance: Property can be specified in an iCalendar object. The
3226 default value is "GREGORIAN".
3228 Description: This memo is based on the Gregorian calendar scale. The
3229 Gregorian calendar scale is assumed if this property is not specified
3230 in the iCalendar object. It is expected that other calendar scales
3231 will be defined in other specifications or by future versions of this
3232 memo.
3234 Format Definition: The property is defined by the following notation:
3236 calscale = "CALSCALE" calparam ":" calvalue CRLF
3238 calparam = *(";" xparam)
3240 calvalue = "GREGORIAN" / iana-token
3242 Example: The following is an example of this property:
3244 CALSCALE:GREGORIAN
3246 4.7.2 Method
3248 Property Name: METHOD
3250 Purpose: This property defines the iCalendar object method associated
3251 with the calendar object.
3253 Value Type: TEXT
3255 Property Parameters: Non-standard property parameters can be
3256 specified on this property.
3258 Conformance: The property can be specified in an iCalendar object.
3260 Description: When used in a MIME message entity, the value of this
3261 property MUST be the same as the Content-Type "method" parameter
3262 value. This property can only appear once within the iCalendar
3263 object. If either the "METHOD" property or the Content-Type "method"
3264 parameter is specified, then the other must also be specified.
3266 No methods are defined by this specification. This is the subject of
3267 other specifications, such as the iCalendar Transport-independent
3268 Interoperability Protocol (iTIP) defined by [ITIP].
3270 If this property is not present in the iCalendar object, then a
3271 scheduling transaction MUST NOT be assumed. In such cases, the
3272 iCalendar object is merely being used to transport a snapshot of some
3273 calendar information; without the intention of conveying a scheduling
3274 semantic.
3276 Format Definition: The property is defined by the following notation:
3278 method = "METHOD" metparam ":" metvalue CRLF
3279 metparam = *(";" xparam)
3281 metvalue = iana-token
3283 Example: The following is a hypothetical example of this property to
3284 convey that the iCalendar object is a request for a meeting:
3286 METHOD:REQUEST
3288 4.7.3 Product Identifier
3290 Property Name: PRODID
3292 Purpose: This property specifies the identifier for the product that
3293 created the iCalendar object.
3295 Value Type: TEXT
3297 Property Parameters: Non-standard property parameters can be
3298 specified on this property.
3300 Conformance: The property MUST be specified once in an iCalendar
3301 object.
3303 Description: The vendor of the implementation should assure that this
3304 is a globally unique identifier; using some technique such as an FPI
3305 value, as defined in [ISO 9070].
3307 This property should not be used to alter the interpretation of an
3308 iCalendar object beyond the semantics specified in this memo. For
3309 example, it is not to be used to further the understanding of non-
3310 standard properties.
3312 Format Definition: The property is defined by the following notation:
3314 prodid = "PRODID" pidparam ":" pidvalue CRLF
3316 pidparam = *(";" xparam)
3318 pidvalue = text
3319 ;Any text that describes the product and version
3320 ;and that is generally assured of being unique.
3322 Example: The following is an example of this property. It does not
3323 imply that English is the default language.
3325 PRODID:-//ABC Corporation//NONSGML My Product//EN
3327 4.7.4 Version
3329 Property Name: VERSION
3331 Purpose: This property specifies the identifier corresponding to the
3332 highest version number or the minimum and maximum range of the
3333 iCalendar specification that is required in order to interpret the
3334 iCalendar object.
3336 Value Type: TEXT
3338 Property Parameters: Non-standard property parameters can be
3339 specified on this property.
3341 Conformance: This property MUST be specified by an iCalendar object,
3342 but MUST only be specified once.
3344 Description: A value of "2.0" corresponds to this memo.
3346 Format Definition: The property is defined by the following notation:
3348 version = "VERSION" verparam ":" vervalue CRLF
3350 verparam = *(";" xparam)
3352 vervalue = "2.0" ;This memo
3353 / maxver
3354 / (minver ";" maxver)
3356 minver =
3357 ;Minimum iCalendar version needed to parse the iCalendar object
3359 maxver =
3360 ;Maximum iCalendar version needed to parse the iCalendar object
3362 Example: The following is an example of this property:
3364 VERSION:2.0
3366 4.8 Component Properties
3368 The following properties can appear within calendar components, as
3369 specified by each component property definition.
3371 4.8.1 Descriptive Component Properties
3373 The following properties specify descriptive information about
3374 calendar components.
3376 4.8.1.1 Attachment
3378 Property Name: ATTACH
3380 Purpose: The property provides the capability to associate a document
3381 object with a calendar component.
3383 Value Type: The default value type for this property is URI. The
3384 value type can also be reset to BINARY in order to include inline
3385 binary encoded content information.
3387 Property Parameters: Non-standard, inline encoding, value data type
3388 property parameters can be specified on this property.
3390 Conformance: The property can be specified in an iCalendar object.
3392 Description: The property can be specified within "VEVENT", "VTODO",
3393 "VJOURNAL", or "VALARM" calendar components. This property can be
3394 specified multiple times within an iCalendar object.
3396 Format Definition: The property is defined by the following notation:
3398 attach = "ATTACH" attparam ":" uri CRLF
3400 attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
3401 ";" "VALUE" "=" "BINARY" ":" binary
3403 attparam = *(";" xparam)
3405 Example: The following are examples of this property:
3407 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com
3409 ATTACH:FTP://xyzCorp.com/pub/reports/r-960812.ps
3411 4.8.1.2 Categories
3413 Property Name: CATEGORIES
3415 Purpose: This property defines the categories for a calendar
3416 component.
3418 Value Type: TEXT
3420 Property Parameters: Non-standard and language property parameters
3421 can be specified on this property.
3423 Conformance: The property can be specified within "VEVENT", "VTODO"
3424 or "VJOURNAL" calendar components.
3426 Description: This property is used to specify categories or subtypes
3427 of the calendar component. The categories are useful in searching for
3428 a calendar component of a particular type and category. Within the
3429 "VEVENT", "VTODO" or "VJOURNAL" calendar components, more than one
3430 category can be specified as a list of categories separated by the
3431 COMMA character (US-ASCII decimal 44).
3433 Format Definition: The property is defined by the following notation:
3435 categories = "CATEGORIES" catparam ":" text *("," text)
3436 CRLF
3438 catparam = [";" languageparam]
3439 *(";" xparam)
3440 Example: The following are examples of this property:
3442 CATEGORIES:APPOINTMENT,EDUCATION
3444 CATEGORIES:MEETING
3446 4.8.1.3 Classification
3448 Property Name: CLASS
3450 Purpose: This property defines the access classification for a
3451 calendar component.
3453 Value Type: TEXT
3455 Property Parameters: Non-standard property parameters can be
3456 specified on this property.
3458 Conformance: The property can be specified once in a "VEVENT",
3459 "VTODO" or "VJOURNAL" calendar components.
3461 Description: An access classification is only one component of the
3462 general security system within a calendar application. It provides a
3463 method of capturing the scope of the access the calendar owner
3464 intends for information within an individual calendar entry. The
3465 access classification of an individual iCalendar component is useful
3466 when measured along with the other security components of a calendar
3467 system (e.g., calendar user authentication, authorization, access
3468 rights, access role, etc.). Hence, the semantics of the individual
3469 access classifications cannot be completely defined by this memo
3470 alone. Additionally, due to the "blind" nature of most exchange
3471 processes using this memo, these access classifications cannot serve
3472 as an enforcement statement for a system receiving an iCalendar
3473 object. Rather, they provide a method for capturing the intention of
3474 the calendar owner for the access to the calendar component. The
3475 [ICMS] provides a broader description of the security system within a
3476 calendar application.
3478 Format Definition: The property is defined by the following notation:
3480 class = "CLASS" classparam ":" classvalue CRLF
3482 classparam = *(";" xparam)
3484 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
3485 / x-name
3486 ;Default is PUBLIC
3488 Example: The following is an example of this property:
3490 CLASS:PUBLIC
3491 4.8.1.4 Comment
3493 Property Name: COMMENT
3495 Purpose: This property specifies non-processing information intended
3496 to provide a comment to the calendar user.
3498 Value Type: TEXT
3500 Property Parameters: Non-standard, alternate text representation and
3501 language property parameters can be specified on this property.
3503 Conformance: This property can be specified in an iCalendar object.
3505 Description: The property can be specified multiple times.
3507 Format Definition: The property is defined by the following notation:
3509 comment = "COMMENT" commparam ":" text CRLF
3511 commparam = [";" altrepparam ] [";" languageparam]
3512 *(";" xparam)
3514 Example: The following is an example of this property:
3516 COMMENT:The meeting really needs to include both ourselves
3517 and the customer. We can't hold this meeting without them.
3518 As a matter of fact\, the venue for the meeting ought to be at
3519 their site. - - John
3521 The data type for this property is TEXT.
3523 4.8.1.5 Description
3525 Property Name: DESCRIPTION
3527 Purpose: This property provides a more complete description of the
3528 calendar component, than that provided by the "SUMMARY" property.
3530 Value Type: TEXT
3532 Property Parameters: Non-standard, alternate text representation and
3533 language property parameters can be specified on this property.
3535 Conformance: The property can be specified in the "VEVENT", "VTODO",
3536 "VJOURNAL" and "VALARM" calendar components. The property can be
3537 specified multiple times only within a "VJOURNAL" calendar component.
3539 Description: This property is used in the "VEVENT" and "VTODO" to
3540 capture lengthy textual decriptions associated with the activity.
3542 This property is used in the "VJOURNAL" calendar component to capture
3543 one more textual journal entries.
3545 This property is used in the "VALARM" calendar component to capture
3546 the display text for a DISPLAY category of alarm, to capture the body
3547 text for an EMAIL category of alarm and to capture the arguement
3548 string for a PROCEDURE category of alarm.
3550 Format Definition: The property is defined by the following notation:
3552 description = "DESCRIPTION" descparam ":" text CRLF
3554 descparam = [";" altrepparam] [";" languageparam]
3555 *(";" xparam)
3557 Example: The following is an example of the property with formatted
3558 line breaks in the property value:
3560 DESCRIPTION:Meeting to provide technical review for "Phoenix"
3561 design.\n Happy Face Conference Room. Phoenix design team
3562 MUST attend this meeting.\n RSVP to team leader.
3564 The following is an example of the property with folding of long
3565 lines:
3567 DESCRIPTION:Last draft of the new novel is to be completed
3568 for the editor's proof today.
3570 4.8.1.6 Geographic Position
3572 Property Name: GEO
3574 Purpose: This property specifies information related to the global
3575 position for the activity specified by a calendar component.
3577 Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT
3578 values.
3580 Property Parameters: Non-standard property parameters can be
3581 specified on this property.
3583 Conformance: This property can be specified in an iCalendar object.
3585 Description: The property value specifies latitude and longitude, in
3586 that order (i.e., "LAT LON" ordering). The longitude represents the
3587 location east and west of the prime meridian as a positive or
3588 negative real number, respectively. The latitude represents the
3589 location north and south of the equator as a positive or negative
3590 real number, respectively. The longitude and latitude values MUST be
3591 specified as decimal degrees and should be specified to six decimal
3592 places. This will allow for granularity within a meter of the
3593 geographical position. The simple formula for converting degrees-
3594 minutes-seconds into decimal degrees is:
3596 decimal = degrees + minutes/60 + seconds/3600.
3598 Format Definition: The property is defined by the following notation:
3600 geo = "GEO" geoparam ":" geovalue CRLF
3602 geoparam = *(";" xparam)
3604 geovalue = float ";" float
3605 ;Latitude and Longitude components
3607 Example: The following is an example of this property:
3609 GEO:37.386013;-122.082932
3611 4.8.1.7 Location
3613 Property Name: LOCATION
3615 Purpose: The property defines the intended venue for the activity
3616 defined by a calendar component.
3618 Value Type: TEXT
3620 Property Parameters: Non-standard, alternate text representation and
3621 language property parameters can be specified on this property.
3623 Conformance: This property can be specified in the "VEVENT" or
3624 "VTODO" calendar component.
3626 Description: Specific venues such as conference or meeting rooms may
3627 be explicitly specified using this property. An alternate
3628 representation may be specified that is a URI that points to
3629 directory information with more structured specification of the
3630 location. For example, the alternate representation may specify
3631 either an LDAP URI pointing to an LDAP server entry or a CID URI
3632 pointing to a MIME body part containing a vCard for the location.
3634 Format Definition: The property is defined by the following notation:
3636 location = "LOCATION locparam ":" text CRLF
3638 locparam = [";" altrepparam] [";" languageparam]
3639 *(";" xparam)
3641 Example: The following are some examples of this property:
3643 LOCATION:Conference Room - F123, Bldg. 002
3645 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
3646 Conference Room - F123, Bldg. 002
3648 4.8.1.8 Percent Complete
3650 Property Name: PERCENT-COMPLETE
3652 Purpose: This property is used by an assignee or delegatee of a to-do
3653 to convey the percent completion of a to-do to the Organizer.
3655 Value Type: INTEGER
3657 Property Parameters: Non-standard property parameters can be
3658 specified on this property.
3660 Conformance: This property can be specified in a "VTODO" calendar
3661 component.
3663 Description: The property value is a positive integer between zero
3664 and one hundred. A value of "0" indicates the to-do has not yet been
3665 started. A value of "100" indicates that the to-do has been
3666 completed. Integer values in between indicate the percent partially
3667 complete.
3669 When a to-do is assigned to multiple individuals, the property value
3670 indicates the percent complete for that portion of the to-do assigned
3671 to the assignee or delegatee. For example, if a to-do is assigned to
3672 both individuals "A" and "B". A reply from "A" with a percent
3673 complete of "70" indicates that "A" has completed 70% of the to-do
3674 assigned to them. A reply from "B" with a percent complete of "50"
3675 indicates "B" has completed 50% of the to-do assigned to them.
3677 Format Definition: The property is defined by the following notation:
3679 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
3681 pctparam = *(";" xparam)
3683 Example: The following is an example of this property to show 39%
3684 completion:
3686 PERCENT-COMPLETE:39
3688 4.8.1.9 Priority
3690 Property Name: PRIORITY
3692 Purpose: The property defines the relative priority for a calendar
3693 component.
3695 Value Type: INTEGER
3697 Property Parameters: Non-standard property parameters can be
3698 specified on this property.
3700 Conformance: The property can be specified in a "VEVENT" or "VTODO"
3701 calendar component.
3703 Description: The priority is specified as an integer in the range
3704 zero to nine. A value of zero (US-ASCII decimal 48) specifies an
3705 undefined priority. A value of one (US-ASCII decimal 49) is the
3706 highest priority. A value of two (US-ASCII decimal 50) is the second
3707 highest priority. Subsequent numbers specify a decreasing ordinal
3708 priority. A value of nine (US-ASCII decimal 58) is the lowest
3709 priority.
3711 A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
3712 "LOW" is mapped into this property such that a property value in the
3713 range of one (US-ASCII decimal 49) to four (US-ASCII decimal 52)
3714 specifies "HIGH" priority. A value of five (US-ASCII decimal 53) is
3715 the normal or "MEDIUM" priority. A value in the range of six (US-
3716 ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW" priority.
3718 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
3719 "C3" is mapped into this property such that a property value of one
3720 (US-ASCII decimal 49) specifies "A1", a property value of two (US-
3721 ASCII decimal 50) specifies "A2", a property value of three (US-ASCII
3722 decimal 51) specifies "A3", and so forth up to a property value of 9
3723 (US-ASCII decimal 58) specifies "C3".
3725 Other integer values are reserved for future use.
3727 Within a "VEVENT" calendar component, this property specifies a
3728 priority for the event. This property may be useful when more than
3729 one event is scheduled for a given time period.
3731 Within a "VTODO" calendar component, this property specified a
3732 priority for the to-do. This property is useful in prioritizing
3733 multiple action items for a given time period.
3735 Format Definition: The property is specified by the following
3736 notation:
3738 priority = "PRIORITY" prioparam ":" privalue CRLF
3739 ;Default is zero
3741 prioparam = *(";" xparam)
3743 privalue = integer ;Must be in the range [0..9]
3744 ; All other values are reserved for future use
3746 The following is an example of a property with the highest priority:
3748 PRIORITY:1
3750 The following is an example of a property with a next highest
3751 priority:
3753 PRIORITY:2
3755 Example: The following is an example of a property with no priority.
3756 This is equivalent to not specifying the "PRIORITY" property.:
3758 PRIORITY:0
3759 4.8.1.10 Resources
3761 Property Name: RESOURCES
3763 Purpose: This property defines the equipment or resources anticipated
3764 for an activity specified by a calendar entity..
3766 Value Type: TEXT
3768 Property Parameters: Non-standard, alternate text representation and
3769 language property parameters can be specified on this property.
3771 Conformance: This property can be specified in a "VEVENT" or "VTODO"
3772 calendar component.
3774 Description: The property value is an arbitrary text. More than one
3775 resource can be specified as a list of resources separated by the
3776 COMMA character (US-ASCII decimal 44).
3778 Format Definition: The property is defined by the following notation:
3780 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
3782 resrcparam = [";" altrepparam] [";" languageparam]
3783 *(";" xparam)
3785 Example: The following is an example of this property:
3787 RESOURCES:EASEL,PROJECTOR,VCR
3789 RESOURCES;LANGUAGE=fr:1 raton-laveur
3791 4.8.1.11 Status
3793 Property Name: STATUS
3795 Purpose: This property defines the overall status or confirmation for
3796 the calendar component.
3798 Value Type: TEXT
3800 Property Parameters: Non-standard property parameters can be
3801 specified on this property.
3803 Conformance: This property can be specified in the "VEVENT", "VTODO"
3804 and "VJOURNAL" calendar components.
3806 Description: In a group scheduled calendar component, the property is
3807 used by the "Organizer" to provide a confirmation of the event to the
3808 "Attendees". For example in a "VEVENT" calendar component, the
3809 "Organizer" can indicate that a meeting is tentative, confirmed or
3810 cancelled. In a "VTODO" calendar component, the "Organizer" can
3811 indicate that an action item needs action, is completed, is in
3812 process or being worked on, or has been cancelled. In a "VJOURNAL"
3813 calendar component, the "Organizer" can indicate that a journal entry
3814 is draft, final or has been cancelled or removed.
3816 Format Definition: The property is defined by the following notation:
3818 status = "STATUS" statparam] ":" statvalue CRLF
3820 statparam = *(";" xparam)
3822 statvalue = "TENTATIVE" ;Indicates event is
3823 ;tentative.
3824 / "CONFIRMED" ;Indicates event is
3825 ;definite.
3826 / "CANCELLED" ;Indicates event was
3827 ;cancelled.
3828 ;Status values for a "VEVENT"
3830 statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action.
3831 / "COMPLETED" ;Indicates to-do completed.
3832 / "IN-PROCESS" ;Indicates to-do in process of
3833 / "CANCELLED" ;Indicates to-do was cancelled.
3834 ;Status values for "VTODO".
3836 statvalue =/ "DRAFT" ;Indicates journal is draft.
3837 / "FINAL" ;Indicates journal is final.
3838 / "CANCELLED" ;Indicates journal is removed.
3839 ;Status values for "VJOURNAL".
3841 Example: The following is an example of this property for a "VEVENT"
3842 calendar component:
3844 STATUS:TENTATIVE
3846 The following is an example of this property for a "VTODO" calendar
3847 component:
3849 STATUS:NEEDS-ACTION
3851 The following is an example of this property for a "VJOURNAL"
3852 calendar component:
3854 STATUS:DRAFT
3856 4.8.1.12 Summary
3858 Property Name: SUMMARY
3860 Purpose: This property defines a short summary or subject for the
3861 calendar component.
3863 Value Type: TEXT
3865 Property Parameters: Non-standard, alternate text representation and
3866 language property parameters can be specified on this property.
3868 Conformance: The property can be specified in the "VEVENT", "VTODO",
3869 "VJOURNAL" and "VALARM" calendar components.
3871 Description: This property is used in the "VEVENT", "VTODO" and
3872 "VJOURNAL" calendar components to capture a short, one line summary
3873 about the activity or journal entry.
3875 This property is used in the "VALARM" calendar component to capture
3876 the subject of an EMAIL category of alarm.
3878 Format Definition: The property is defined by the following notation:
3880 summary = "SUMMARY" summparam ":" text CRLF
3882 summparam = [";" altrepparam] [";" languageparam]
3883 *(";" xparam)
3885 Example: The following is an example of this property:
3887 SUMMARY:Department Party
3889 4.8.2 Date and Time Component Properties
3891 The following properties specify date and time related information in
3892 calendar components.
3894 4.8.2.1 Date/Time Completed
3896 Property Name: COMPLETED
3898 Purpose: This property defines the date and time that a to-do was
3899 actually completed.
3901 Value Type: DATE-TIME
3903 Property Parameters: Non-standard property parameters can be
3904 specified on this property.
3906 Conformance: The property can be specified in a "VTODO" calendar
3907 component.
3909 Description: The date and time must be in a UTC format.
3911 Format Definition: The property is defined by the following notation:
3913 completed = "COMPLETED" compparam ":" date-time CRLF
3915 compparam = *(";" xparam)
3917 Example: The following is an example of this property:
3919 COMPLETED:19960401T235959Z
3920 4.8.2.2 Date/Time End
3922 Property Name: DTEND
3924 Purpose: This property specifies the date and time that a calendar
3925 component ends.
3927 Value Type: The default value type is DATE-TIME. The value type can
3928 be reset to a DATE value type.
3930 Property Parameters: Non-standard, value data type, time zone
3931 identifier property parameters can be specified on this property.
3933 Conformance: This property can be specified within the "VEVENT" and
3934 "VFREEBUSY" calendar components.
3936 Description: Within the "VEVENT" calendar component, this property
3937 defines the date and time by which the event ends. The value MUST be
3938 later in time than the value of the "DTSTART" property.
3940 Within the "VFREEBUSY" calendar component, this property defines the
3941 end date and time for the free or busy time information. The time
3942 MUST be specified as in the UTC time format. The value MUST be later
3943 in time than the value of the "DTSTART" property.
3945 Format Definition: The property is defined by the following notation:
3947 dtend = "DTEND" dtendparam":" dtendval CRLF
3949 dtendparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
3950 [";" tzidparam]
3951 *(";" xparam)
3953 dtendval = date-time / date
3954 ;Value MUST match value type
3956 Example: The following is an example of this property:
3958 DTEND:19960401T235959Z
3960 DTEND;VALUE=DATE:19980704
3962 4.8.2.3 Date/Time Due
3964 Property Name: DUE
3966 Purpose: This property defines the date and time that a to-do is
3967 expected to be completed.
3969 Value Type: The default value type is DATE-TIME. The value type can
3970 be reset to a DATE value type.
3972 Property Parameters: Non-standard, value data type, time zone
3973 identifier property parameters can be specified on this property.
3975 Conformance: The property can be specified once within a "VTODO"
3976 calendar component.
3978 Description: The value MUST be a date/time equal to or after the
3979 DTSTART value, if specified.
3981 Format Definition: The property is defined by the following notation:
3983 due = "DUE" dueparam":" dueval CRLF
3985 dueparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
3986 [";" tzidparam]
3987 *(";" xparam)
3989 dueval = date-time / date
3990 ;Value MUST match value type
3992 Example: The following is an example of this property:
3994 DUE:19980430T235959Z
3996 4.8.2.4 Date/Time Start
3998 Property Name: DTSTART
4000 Purpose: This property specifies when the calendar component begins.
4002 Value Type: The default value type is DATE-TIME. The time value MUST
4003 be one of the forms defined for the DATE-TIME value type. The value
4004 type can be reset to a DATE value type.
4006 Property Parameters: Non-standard, value data type, time zone
4007 identifier property parameters can be specified on this property.
4009 Conformance: This property can be specified within the "VEVENT",
4010 "VTODO", "VFREEBUSY", and "VTIMEZONE" calendar components.
4012 Description: Within the "VEVENT" calendar component, this property
4013 defines the start date and time for the event. The property is
4014 REQUIRED in "VEVENT" calendar components. Events can have a start
4015 date/time but no end date/time. In that case, the event does not take
4016 up any time.
4018 Within the "VFREEBUSY" calendar component, this property defines the
4019 start date and time for the free or busy time information. The time
4020 MUST be specified in UTC time.
4022 Within the "VTIMEZONE" calendar component, this property defines the
4023 effective start date and time for a time zone specification. This
4024 property is REQUIRED within each STANDARD and DAYLIGHT part included
4025 in "VTIMEZONE" calendar components and MUST be specified as a local
4026 DATE-TIME without the "TZID" property parameter.
4028 Format Definition: The property is defined by the following notation:
4030 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
4032 dtstparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
4033 [";" tzidparam]
4034 *(";" xparam)
4036 dtstval = date-time / date
4037 ;Value MUST match value type
4039 Example: The following is an example of this property:
4041 DTSTART:19980118T073000Z
4043 4.8.2.5 Duration
4045 Property Name: DURATION
4047 Purpose: The property specifies a positive duration of time .
4049 Value Type: DURATION
4051 Property Parameters: Non-standard property parameters can be
4052 specified on this property.
4054 Conformance: The property can be specified in a "VEVENT", "VTODO",
4055 "VFREEBUSY" and "VALARM" calendar components.
4057 Description: In a "VEVENT" calendar component the property may be
4058 used to specify a duration of the event, instead of an explicit end
4059 date/time. In a "VTODO" calendar component the property may be used
4060 to specify a duration for the to-do, instead of an explicit due
4061 date/time. In a "VFREEBUSY" calendar component the property may be
4062 used to specify the interval of free time being requested. In a
4063 "VALARM" calendar component the property may be used to specify the
4064 delay period prior to repeating an alarm.
4066 Format Definition: The property is defined by the following notation:
4068 duration = "DURATION" durparam ":" duration CRLF
4069 ;consisting of a positive duration of time.
4071 durparam = *(";" xparam)
4073 Example: The following is an example of this property that specifies
4074 an interval of time of 1 hour and zero minutes and zero seconds:
4076 DURATION:PT1H0M0S
4078 The following is an example of this property that specifies an
4079 interval of time of 15 minutes.
4081 DURATION:PT15M
4082 4.8.2.6 Free/Busy Time
4084 Property Name: FREEBUSY
4086 Purpose: The property defines one or more free or busy time
4087 intervals.
4089 Value Type: PERIOD. The date and time values MUST be in an UTC time
4090 format.
4092 Property Parameters: Non-standard or free/busy time type property
4093 parameters can be specified on this property.
4095 Conformance: The property can be specified in a "VFREEBUSY" calendar
4096 component.
4098 Property Parameter: "FBTYPE" and non-standard parameters can be
4099 specified on this property.
4101 Description: These time periods can be specified as either a start
4102 and end date-time or a start date-time and duration. The date and
4103 time MUST be a UTC time format.
4105 "FREEBUSY" properties within the "VFREEBUSY" calendar component
4106 should be sorted in ascending order, based on start time and then end
4107 time, with the earliest periods first.
4109 The "FREEBUSY" property can specify more than one value, separated by
4110 the COMMA character (US-ASCII decimal 44). In such cases, the
4111 "FREEBUSY" property values should all be of the same "FBTYPE"
4112 property parameter type (e.g., all values of a particular "FBTYPE"
4113 listed together in a single property).
4115 Format Definition: The property is defined by the following notation:
4117 freebusy = "FREEBUSY" fbparam ":" fbvalue
4118 CRLF
4120 fbparam = [";" fbtypeparam] *(";" xparam)
4122 fbvalue = period *["," period]
4123 ;Time value MUST be in the UTC time format.
4125 Example: The following are some examples of this property:
4127 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
4129 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
4131 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
4132 19970308T230000Z/19970309T000000Z
4133 4.8.2.7 Time Transparency
4135 Property Name: TRANSP
4137 Purpose: This property defines whether an event is transparent or not
4138 to busy time searches.
4140 Value Type: TEXT
4142 Property Parameters: Non-standard property parameters can be
4143 specified on this property.
4145 Conformance: This property can be specified once within a "VEVENT"
4146 calendar component.
4148 Description: Transparency is the state that determines whether an
4149 event takes up time on a calendar, and with be reflected as "busy
4150 time", or is just "penciled in" to the calendar, and will not be
4151 reflected as "busy time". If the event is transparent, then other
4152 events can be scheduled in the same time period without there being a
4153 time period conflict. If not specified, the default state is OPAQUE.
4155 Format Definition: The property is specified by the following
4156 notation:
4158 transp = "TRANSP" tranparam ":" transvalue CRLF
4160 tranparam = *(";" xparam)
4162 transvalue = "OPAQUE" ;Blocks or opaque on busy time searches.
4163 / "TRANSPARENT" ;Transparent on busy time searches.
4164 ;Default value is OPAQUE
4166 Example: The following is an example of this property for an event
4167 that is transparent or does not block on free/busy time searches:
4169 TRANSP:TRANSPARENT
4171 The following is an example of this property for an event that is
4172 opaque or blocks on free/busy time searches:
4174 TRANSP:OPAQUE
4176 4.8.3 Time Zone Component Properties
4178 The following properties specify time zone information in calendar
4179 components.
4181 4.8.3.1 Time Zone Identifier
4183 Property Name: TZID
4185 Purpose: This property specifies the text value that uniquely
4186 identifies the "VTIMEZONE" calendar component.
4188 Value Type: TEXT
4190 Property Parameters: Non-standard property parameters can be
4191 specified on this property.
4193 Conformance: This property MUST be specified in a "VTIMEZONE"
4194 calendar component.
4196 Description: This is the label by which a time zone calendar
4197 component is referenced by any iCalendar properties whose data type
4198 is either DATE-TIME or TIME and not intended to specify a UTC or
4199 a"floating" time. The presence of the SOLIDUS character (US-ASCII
4200 decimal 47) as a prefix, indicates that this TZID represents an
4201 unique ID in a globally defined time zone registry (when such
4202 registry is defined).
4204 Format Definition: This property is defined by the following
4205 notation:
4207 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
4209 tzidpropparam = *(";" xparam)
4211 ;tzidprefix = "/"
4212 ; Defined previously. Just listed here for reader convenience.
4214 Example: The following are examples of non-globally unique time zone
4215 identifiers:
4217 TZID:America-New_York
4219 TZID:California-Los_Angeles
4221 The following is an example of a globally unique time zone
4222 identifier:
4224 TZID:/US-New_York-New_York
4226 4.8.3.2 Time Zone Name
4228 Property Name: TZNAME
4230 Purpose: This property specifies the customary designation for a time
4231 zone description.
4233 Value Type: TEXT
4235 Property Parameters: Non-standard and language property parameters
4236 can be specified on this property.
4238 Conformance: This property can be specified in the "VTIMEZONE"
4239 calendar component.
4241 Description: This property may be specified in multiple languages; in
4242 order to provide for different language requirements.
4244 Format Definition: This property is defined by the following
4245 notation:
4247 tzname = "TZNAME" tznparam ":" text CRLF
4249 tznparam = [";" languageparm]
4250 *(";" xparam)
4252 Example: The following are example of this property:
4254 TZNAME:EST
4256 The following is an example of this property when two different
4257 languages for the time zone name are specified:
4259 TZNAME;LANGUAGE=en:EST
4260 TZNAME;LANGUAGE=fr-CA:HNE
4262 4.8.3.3 Time Zone Offset From
4264 Property Name: TZOFFSETFROM
4266 Purpose: This property specifies the offset which is in use prior to
4267 this time zone observance.
4269 Value Type: UTC-OFFSET
4271 Property Parameters: Non-standard property parameters can be
4272 specified on this property.
4274 Conformance: This property MUST be specified in a "VTIMEZONE"
4275 calendar component.
4277 Description: This property specifies the offset which is in use prior
4278 to this time observance. It is used to calculate the absolute time at
4279 which the transition to a given observance takes place. This property
4280 MUST only be specified in a "VTIMEZONE" calendar component. A
4281 "VTIMEZONE" calendar component MUST include this property. The
4282 property value is a signed numeric indicating the number of hours and
4283 possibly minutes from UTC. Positive numbers represents time zones
4284 east of the prime meridian, or ahead of UTC. Negative numbers
4285 represents time zones west of the prime meridian, or behind UTC.
4287 Format Definition: The property is defined by the following notation:
4289 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
4290 CRLF
4292 frmparam = *(";" xparam)
4294 Example: The following are examples of this property:
4296 TZOFFSETFROM:-0500
4298 TZOFFSETFROM:+1345
4300 4.8.3.4 Time Zone Offset To
4302 Property Name: TZOFFSETTO
4304 Purpose: This property specifies the offset which is in use in this
4305 time zone observance.
4307 Value Type: UTC-OFFSET
4309 Property Parameters: Non-standard property parameters can be
4310 specified on this property.
4312 Conformance: This property MUST be specified in a "VTIMEZONE"
4313 calendar component.
4315 Description: This property specifies the offset which is in use in
4316 this time zone observance. It is used to calculate the absolute time
4317 for the new observance. The property value is a signed numeric
4318 indicating the number of hours and possibly minutes from UTC.
4319 Positive numbers represents time zones east of the prime meridian, or
4320 ahead of UTC. Negative numbers represents time zones west of the
4321 prime meridian, or behind UTC.
4323 Format Definition: The property is defined by the following notation:
4325 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
4327 toparam = *(";" xparam)
4329 Example: The following are examples of this property:
4331 TZOFFSETTO:-0400
4333 TZOFFSETTO:+1245
4335 4.8.3.5 Time Zone URL
4337 Property Name: TZURL
4339 Purpose: The TZURL provides a means for a VTIMEZONE component to
4340 point to a network location that can be used to retrieve an up-to-
4341 date version of itself.
4343 Value Type: URI
4345 Property Parameters: Non-standard property parameters can be
4346 specified on this property.
4348 Conformance: This property can be specified in a "VTIMEZONE" calendar
4349 component.
4351 Description: The TZURL provides a means for a VTIMEZONE component to
4352 point to a network location that can be used to retrieve an up-to-
4353 date version of itself. This provides a hook to handle changes
4354 government bodies impose upon time zone definitions. Retrieval of
4355 this resource results in an iCalendar object containing a single
4356 VTIMEZONE component and a METHOD property set to PUBLISH.
4358 Format Definition: The property is defined by the following notation:
4360 tzurl = "TZURL" tzurlparam ":" uri CRLF
4362 tzurlparam = *(";" xparam)
4364 Example: The following is an example of this property:
4366 TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles
4368 4.8.4 Relationship Component Properties
4370 The following properties specify relationship information in calendar
4371 components.
4373 4.8.4.1 Attendee
4375 Property Name: ATTENDEE
4377 Purpose: The property defines an "Attendee" within a calendar
4378 component.
4380 Value Type: CAL-ADDRESS
4382 Property Parameters: Non-standard, language, calendar user type,
4383 group or list membership, participation role, participation status,
4384 RSVP expectation, delegatee, delegator, sent by, common name or
4385 directory entry reference property parameters can be specified on
4386 this property.
4388 Conformance: This property MUST be specified in an iCalendar object
4389 that specifies a group scheduled calendar entity. This property MUST
4390 NOT be specified in an iCalendar object when publishing the calendar
4391 information (e.g., NOT in an iCalendar object that specifies the
4392 publication of a calendar user's busy time, event, to-do or journal).
4393 This property is not specified in an iCalendar object that specifies
4394 only a time zone definition or that defines calendar entities that
4395 are not group scheduled entities, but are entities only on a single
4396 user's calendar.
4398 Description: The property is MUST only be specified within calendar
4399 components to specify participants, non-participants and the chair of
4400 a group scheduled calendar entity. The property is specified within
4401 an "EMAIL" category of the "VALARM" calendar component to specify an
4402 email address that is to receive the email type of iCalendar alarm.
4404 The property parameter CN, is for the common or displayable name
4405 associated with the calendar address; ROLE, for the intended role
4406 that the attendee will have in the calendar component; PARTSTAT, for
4407 the status of the attendee's participation; RSVP, for indicating
4408 whether the favor of a reply is requested; CUTYPE, to indicate the
4409 type of calendar user; MEMBER, to indicate the groups that the
4410 attendee belongs to; DELEGATED-TO, to indicate the calendar users
4411 that the original request was delegated to; and DELEGATED-FROM, to
4412 indicate whom the request was delegated from; SENT-BY, to indicate
4413 whom is acting on behalf of the ATTENDEE; and DIR, to indicate the
4414 URI that points to the directory information corresponding to the
4415 attendee. These property parameters can be specified on an "ATTENDEE"
4416 property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar
4417 component. They MUST not be specified in an "ATTENDEE" property in a
4418 "VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property
4419 parameter is specified, the identified language applies to the CN
4420 parameter.
4422 A recipient delegated a request MUST inherit the RSVP and ROLE values
4423 from the attendee that delegated the request to them.
4425 Multiple attendees can be specified by including multiple "ATTENDEE"
4426 properties within the calendar component.
4428 Format Definition: The property is defined by the following notation:
4430 attendee = "ATTENDEE" attparam ":" cal-address CRLF
4432 attparam = [";" cutypeparam] [";"memberparam] [";" roleparam]
4433 [";" partstatparam] [";" rsvpparam] [";" deltoparam]
4434 [";" delfromparam] [";" sentbyparam] [";"cnparam]
4435 [";" dirparam] [";" languageparam] *(";" xparam)
4437 Example: The following are examples of this property's use for a to-
4438 do:
4440 ORGANIZER:MAILTO:jsmith@host1.com
4441 ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com":
4442 MAILTO:joecool@host2.com
4443 ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com":
4444 MAILTO:ildoit@host1.com
4446 The following is an example of this property used for specifying
4447 multiple attendees to an event:
4449 ORGANIZER:MAILTO:jsmith@host1.com
4450 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot
4451 :MAILTO:hcabot@host2.com
4452 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com"
4453 ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com
4455 The following is an example of this property with a URI to the
4456 directory information associated with the attendee:
4458 ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC%
4459 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@
4460 host1.com
4462 The following is an example of this property with "delegatee" and
4463 "delegator" information for an event:
4465 ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com
4466 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
4467 "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@
4468 host2.com
4469 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
4470 "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss
4471 @host2.com
4472 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
4473 :MAILTO:jdoe@host1.com
4475 Example: The following is an example of this property's use when
4476 another calendar user is acting on behalf of the "Attendee":
4478 ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO:
4479 jsmith@host1.com
4481 4.8.4.2 Contact
4483 Property Name: CONTACT
4485 Purpose: The property is used to represent contact information or
4486 alternately a reference to contact information associated with the
4487 calendar component.
4489 Value Type: TEXT
4491 Property Parameters: Non-standard, alternate text representation and
4492 language property parameters can be specified on this property.
4494 Conformance: The property can be specified in a "VEVENT", "VTODO",
4495 "VJOURNAL" and "VFREEBUSY" calendar component.
4497 Description: The property value consists of textual contact
4498 information. An alternative representation for the property value can
4499 also be specified that refers to a URI pointing to an alternate form,
4500 such as a vCard, for the contact information.
4502 Format Definition: The property is defined by the following notation:
4504 contact = "CONTACT" contparam ":" text CRLF
4506 contparam = [";" altrepparam] [";" languageparam]
4507 *(";" xparam)
4509 Example: The following is an example of this property referencing
4510 textual contact information:
4512 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
4514 The following is an example of this property with an alternate
4515 representation of a LDAP URI to a directory entry containing the
4516 contact information:
4518 CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\,
4519 c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\,
4520 +1-919-555-1234
4522 The following is an example of this property with an alternate
4523 representation of a MIME body part containing the contact
4524 information, such as a vCard embedded in a [MIME-DIR] content-type:
4526 CONTACT;ALTREP="CID=":Jim
4527 Dolittle\, ABC Industries\, +1-919-555-1234
4529 The following is an example of this property referencing a network
4530 resource, such as a vCard object containing the contact information:
4532 CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim
4533 Dolittle\, ABC Industries\, +1-919-555-1234
4535 4.8.4.3 Organizer
4537 Property Name: ORGANIZER
4539 Purpose: The property defines the organizer for a calendar component.
4541 Value Type: CAL-ADDRESS
4543 Property Parameters: Non-standard, language, common name, directory
4544 entry reference, sent by property parameters can be specified on this
4545 property.
4547 Conformance: This property MUST be specified in an iCalendar object
4548 that specifies a group scheduled calendar entity. This property MUST
4549 be specified in an iCalendar object that specifies the publication of
4550 a calendar user's busy time. This property MUST NOT be specified in
4551 an iCalendar object that specifies only a time zone definition or
4552 that defines calendar entities that are not group scheduled entities,
4553 but are entities only on a single user's calendar.
4555 Description: The property is specified within the "VEVENT", "VTODO",
4556 "VJOURNAL calendar components to specify the organizer of a group
4557 scheduled calendar entity. The property is specified within the
4558 "VFREEBUSY" calendar component to specify the calendar user
4559 requesting the free or busy time. When publishing a "VFREEBUSY"
4560 calendar component, the property is used to specify the calendar that
4561 the published busy time came from.
4563 The property has the property parameters CN, for specifying the
4564 common or display name associated with the "Organizer", DIR, for
4565 specifying a pointer to the directory information associated with the
4566 "Organizer", SENT-BY, for specifying another calendar user that is
4567 acting on behalf of the "Organizer". The non-standard parameters may
4568 also be specified on this property. If the LANGUAGE property
4569 parameter is specified, the identified language applies to the CN
4570 parameter value.
4572 Format Definition: The property is defined by the following notation:
4574 organizer = "ORGANIZER" orgparam ":"
4575 cal-address CRLF
4577 orgparam = [";" cnparam] [";" dirparam] [";" sentbyparam]
4578 [";" languageparam] *(";" xparam)
4580 Example: The following is an example of this property:
4582 ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com
4584 The following is an example of this property with a pointer to the
4585 directory information associated with the organizer:
4587 ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ
4588 ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com
4590 The following is an example of this property used by another calendar
4591 user who is acting on behalf of the organizer, with responses
4592 intended to be sent back to the organizer, not the other calendar
4593 user:
4595 ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com":
4596 MAILTO:jsmith@host1.com
4598 4.8.4.4 Recurrence ID
4600 Property Name: RECURRENCE-ID
4602 Purpose: This property is used in conjunction with the "UID" and
4603 "SEQUENCE" property to identify a specific instance of a recurring
4604 "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
4605 value is the effective value of the "DTSTART" property of the
4606 recurrence instance.
4608 Value Type: The default value type for this property is DATE-TIME.
4609 The time format can be any of the valid forms defined for a DATE-TIME
4610 value type. See DATE-TIME value type definition for specific
4611 interpretations of the various forms. The value type can be reset to
4612 DATE.
4614 Property Parameters: Non-standard property, value data type, time
4615 zone identifier and recurrence identifier range parameters can be
4616 specified on this property.
4618 Conformance: This property can be specified in an iCalendar object
4619 containing a recurring calendar component.
4621 Description: The full range of calendar components specified by a
4622 recurrence set is referenced by referring to just the "UID" property
4623 value corresponding to the calendar component. The "RECURRENCE-ID"
4624 property allows the reference to an individual instance within the
4625 recurrence set.
4627 If the value of the "DTSTART" property is a DATE type value, then the
4628 value MUST be the calendar date for the recurrence instance.
4630 The date/time value is set to the time when the original recurrence
4631 instance would occur - - meaning that if the intent is to change a
4632 Friday meeting to Thursday, the date/time is still set to the
4633 original Friday meeting.
4635 The "RECURRENCE-ID" property is used in conjunction with the "UID"
4636 and "SEQUENCE" property to identify a particular instance of a
4637 recurring event, to-do or journal. For a given pair of "UID" and
4638 "SEQUENCE" property values, the "RECURRENCE-ID" value for a
4639 recurrence instance is fixed. When the definition of the recurrence
4640 set for a calendar component changes, and hence the "SEQUENCE"
4641 property value changes, the "RECURRENCE-ID" for a given recurrence
4642 instance might also change.The "RANGE" parameter is used to specify
4643 the effective range of recurrence instances from the instance
4644 specified by the "RECURRENCE-ID" property value. The default value
4645 for the range parameter is the single recurrence instance only. The
4646 value can also be "THISANDPRIOR" to indicate a range defined by the
4647 given recurrence instance and all prior instances or the value can be
4648 "THISANDFUTURE" to indicate a range defined by the given recurrence
4649 instance and all subsequent instances.
4651 Format Definition: The property is defined by the following notation:
4653 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
4655 ridparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE)]
4656 [";" tzidparam] [";" rangeparam]
4657 *(";" xparam)
4659 ridval = date-time / date
4660 ;Value MUST match value type
4662 Example: The following are examples of this property:
4664 RECURRENCE-ID;VALUE=DATE:19960401
4666 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
4668 4.8.4.5 Related To
4670 Property Name: RELATED-TO
4672 Purpose: The property is used to represent a relationship or
4673 reference between one calendar component and another.
4675 Value Type: TEXT
4677 Property Parameters: Non-standard and relationship type property
4678 parameters can be specified on this property.
4680 Conformance: The property can be specified once in the "VEVENT",
4681 "VTODO" and "VJOURNAL" calendar components.
4683 Description: The property value consists of the persistent, globally
4684 unique identifier of another calendar component. This value would be
4685 represented in a calendar component by the "UID" property.
4687 By default, the property value points to another calendar component
4688 that has a PARENT relationship to the referencing object. The
4689 "RELTYPE" property parameter is used to either explicitly state the
4690 default PARENT relationship type to the referenced calendar component
4691 or to override the default PARENT relationship type and specify
4692 either a CHILD or SIBLING relationship. The PARENT relationship
4693 indicates that the calendar component is a subordinate of the
4694 referenced calendar component. The CHILD relationship indicates that
4695 the calendar component is a superior of the referenced calendar
4696 component. The SIBLING relationship indicates that the calendar
4697 component is a peer of the referenced calendar component.
4699 Changes to a calendar component referenced by this property can have
4700 an implicit impact on the related calendar component. For example, if
4701 a group event changes its start or end date or time, then the
4702 related, dependent events will need to have their start and end dates
4703 changed in a corresponding way. Similarly, if a PARENT calendar
4704 component is canceled or deleted, then there is an implied impact to
4705 the related CHILD calendar components. This property is intended only
4706 to provide information on the relationship of calendar components. It
4707 is up to the target calendar system to maintain any property
4708 implications of this relationship.
4710 Format Definition: The property is defined by the following notation:
4712 related = "RELATED-TO" [relparam] ":" text CRLF
4714 relparam = [";" reltypeparam]
4715 *(";" xparm)
4717 The following is an example of this property:
4719 RELATED-TO:
4721 RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
4723 4.8.4.6 Uniform Resource Locator
4725 Property Name: URL
4727 Purpose: This property defines a Uniform Resource Locator (URL)
4728 associated with the iCalendar object.
4730 Value Type: URI
4732 Property Parameters: Non-standard property parameters can be
4733 specified on this property.
4735 Conformance: This property can be specified once in the "VEVENT",
4736 "VTODO", "VJOURNAL" and "VFREEBUSY" calendar components.
4738 Description: This property may be used in a calendar component to
4739 convey a location where a more dynamic rendition of the calendar
4740 information associated with the calendar component can be found. This
4741 memo does not attempt to standardize the form of the URI, nor the
4742 format of the resource pointed to by the property value. If the URL
4743 property and Content-Location MIME header are both specified, they
4744 MUST point to the same resource.
4746 Format Definition: The property is defined by the following notation:
4748 url = "URL" urlparam ":" uri CRLF
4750 urlparam = *(";" xparam)
4752 Example: The following is an example of this property:
4754 URL:http://abc.com/pub/calendars/jsmith/mytime.ics
4756 4.8.4.7 Unique Identifier
4758 Property Name: UID
4760 Purpose: This property defines the persistent, globally unique
4761 identifier for the calendar component.
4763 Value Type: TEXT
4765 Property Parameters: Non-standard property parameters can be
4766 specified on this property.
4768 Conformance: The property MUST be specified in the "VEVENT", "VTODO",
4769 "VJOURNAL" and "VFREEBUSY" calendar components.
4771 Description: The UID itself MUST be a globally unique identifier. The
4772 generator of the identifier MUST guarantee that the identifier is
4773 unique. There are several algorithms that can be used to accomplish
4774 this. The identifier is RECOMMENDED to be the identical syntax to the
4775 [RFC 822] addr-spec. A good method to assure uniqueness is to put the
4776 domain name or a domain literal IP address of the host on which the
4777 identifier was created on the right hand side of the "@", and on the
4778 left hand side, put a combination of the current calendar date and
4779 time of day (i.e., formatted in as a DATE-TIME value) along with some
4780 other currently unique (perhaps sequential) identifier available on
4781 the system (for example, a process id number). Using a date/time
4782 value on the left hand side and a domain name or domain literal on
4783 the right hand side makes it possible to guarantee uniqueness since
4784 no two hosts should be using the same domain name or IP address at
4785 the same time. Though other algorithms will work, it is RECOMMENDED
4786 that the right hand side contain some domain identifier (either of
4787 the host itself or otherwise) such that the generator of the message
4788 identifier can guarantee the uniqueness of the left hand side within
4789 the scope of that domain.
4791 This is the method for correlating scheduling messages with the
4792 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
4794 The full range of calendar components specified by a recurrence set
4795 is referenced by referring to just the "UID" property value
4796 corresponding to the calendar component. The "RECURRENCE-ID" property
4797 allows the reference to an individual instance within the recurrence
4798 set.
4800 This property is an important method for group scheduling
4801 applications to match requests with later replies, modifications or
4802 deletion requests. Calendaring and scheduling applications MUST
4803 generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
4804 components to assure interoperability with other group scheduling
4805 applications. This identifier is created by the calendar system that
4806 generates an iCalendar object.
4808 Implementations MUST be able to receive and persist values of at
4809 least 255 characters for this property.
4811 Format Definition: The property is defined by the following notation:
4813 uid = "UID" uidparam ":" text CRLF
4815 uidparam = *(";" xparam)
4817 Example: The following is an example of this property:
4819 UID:19960401T080045Z-4000F192713-0052@host1.com
4821 4.8.5 Recurrence Component Properties
4823 The following properties specify recurrence information in calendar
4824 components.
4826 4.8.5.1 Exception Date/Times
4828 Property Name: EXDATE
4830 Purpose: This property defines the list of date/time exceptions for a
4831 recurring calendar component.
4833 Value Type: The default value type for this property is DATE-TIME.
4834 The value type can be reset to DATE.
4836 Property Parameters: Non-standard, value data type and time zone
4837 identifier property parameters can be specified on this property.
4839 Conformance: This property can be specified in an iCalendar object
4840 that includes a recurring calendar component.
4842 Description: The exception dates, if specified, is used in computing
4843 the recurrence set. The recurrence set is the complete set of
4844 recurrence instances for a calendar component. The recurrence set is
4845 generated by considering the initial "DTSTART" property along with
4846 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
4847 within the iCalendar object. The "DTSTART" property defines the first
4848 instance in the recurrence set. Multiple instances of the "RRULE" and
4849 "EXRULE" properties can also be specified to define more
4850 sophisticated recurrence sets. The final recurrence set is generated
4851 by gathering all of the start date-times generated by any of the
4852 specified "RRULE" and "RDATE" properties, and then excluding any
4853 start date and times which fall within the union of start date and
4854 times generated by any specified "EXRULE" and "EXDATE" properties.
4855 This implies that start date and times within exclusion related
4856 properties (i.e., "EXDATE" and "EXRULE") take precedence over those
4857 specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where
4858 duplicate instances are generated by the "RRULE" and "RDATE"
4859 properties, only one recurrence is considered. Duplicate instances
4860 are ignored.
4862 The "EXDATE" property can be used to exclude the value specified in
4863 "DTSTART". However, in such cases the original "DTSTART" date MUST
4864 still be maintained by the calendaring and scheduling system because
4865 the original "DTSTART" value has inherent usage dependencies by other
4866 properties such as the "RECURRENCE-ID".
4868 Format Definition: The property is defined by the following notation:
4870 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
4872 exdtparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
4873 [";" tzidparam]
4874 *(";" xparam)
4876 exdtval = date-time / date
4877 ;Value MUST match value type
4879 Example: The following is an example of this property:
4881 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
4883 4.8.5.2 Exception Rule
4885 Property Name: EXRULE
4887 Purpose: This property defines a rule or repeating pattern for an
4888 exception to a recurrence set.
4890 Value Type: RECUR
4891 Property Parameters: Non-standard property parameters can be
4892 specified on this property.
4894 Conformance: This property can be specified in the "VEVENT", "VTODO"
4895 or "VJOURNAL" calendar components.
4897 Description: The exception rule, if specified, is used in computing
4898 the recurrence set. The recurrence set is the complete set of
4899 recurrence instances for a calendar component. The recurrence set is
4900 generated by considering the initial "DTSTART" property along with
4901 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
4902 within the iCalendar object. The "DTSTART" defines the first instance
4903 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
4904 properties can also be specified to define more sophisticated
4905 recurrence sets. The final recurrence set is generated by gathering
4906 all of the start date-times generated by any of the specified "RRULE"
4907 and "RDATE" properties, and excluding any start date and times which
4908 fall within the union of start date and times generated by any
4909 specified "EXRULE" and "EXDATE" properties. This implies that start
4910 date and times within exclusion related properties (i.e., "EXDATE"
4911 and "EXRULE") take precedence over those specified by inclusion
4912 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
4913 generated by the "RRULE" and "RDATE" properties, only one recurrence
4914 is considered. Duplicate instances are ignored.
4916 The "EXRULE" property can be used to exclude the value specified in
4917 "DTSTART". However, in such cases the original "DTSTART" date MUST
4918 still be maintained by the calendaring and scheduling system because
4919 the original "DTSTART" value has inherent usage dependencies by other
4920 properties such as the "RECURRENCE-ID".
4922 Format Definition: The property is defined by the following notation:
4924 exrule = "EXRULE" exrparam ":" recur CRLF
4926 exrparam = *(";" xparam)
4928 Example: The following are examples of this property. Except every
4929 other week, on Tuesday and Thursday for 4 occurrences:
4931 EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
4933 Except daily for 10 occurrences:
4935 EXRULE:FREQ=DAILY;COUNT=10
4937 Except yearly in June and July for 8 occurrences:
4939 EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
4941 4.8.5.3 Recurrence Date/Times
4943 Property Name: RDATE
4944 Purpose: This property defines the list of date/times for a
4945 recurrence set.
4947 Value Type: The default value type for this property is DATE-TIME.
4948 The value type can be reset to DATE or PERIOD.
4950 Property Parameters: Non-standard, value data type and time zone
4951 identifier property parameters can be specified on this property.
4953 Conformance: The property can appear within the "VEVENT", "VTODO",
4954 "VJOURNAL" and "VTIMEZONE" calendar components.
4956 Description: This property can appear along with the "RRULE" property
4957 to define an aggregate set of repeating occurrences. When they both
4958 appear in an iCalendar object, the recurring events are defined by
4959 the union of occurrences defined by both the "RDATE" and "RRULE".
4961 The recurrence dates, if specified, is used in computing the
4962 recurrence set. The recurrence set is the complete set of recurrence
4963 instances for a calendar component. The recurrence set is generated
4964 by considering the initial "DTSTART" property along with the "RRULE",
4965 "RDATE", "EXDATE" and "EXRULE" properties contained within the
4966 iCalendar object. The "DTSTART" property defines the first instance
4967 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
4968 properties can also be specified to define more sophisticated
4969 recurrence sets. The final recurrence set is generated by gathering
4970 all of the start date-times generated by any of the specified "RRULE"
4971 and "RDATE" properties, and excluding any start date and times which
4972 fall within the union of start date and times generated by any
4973 specified "EXRULE" and "EXDATE" properties. This implies that start
4974 date and times within exclusion related properties (i.e., "EXDATE"
4975 and "EXRULE") take precedence over those specified by inclusion
4976 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
4977 generated by the "RRULE" and "RDATE" properties, only one recurrence
4978 is considered. Duplicate instances are ignored.
4980 Format Definition: The property is defined by the following notation:
4982 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
4984 rdtparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE"
4985 / "PERIOD")]
4986 [";" tzidparam]
4987 *(";" xparam)
4989 rdtval = date-time / date / period
4990 ;Value MUST match value type
4992 Example: The following are examples of this property:
4994 RDATE:19970714T123000Z
4996 RDATE;TZID=US-EASTERN:19970714T083000
4997 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
4998 19960404T010000Z/PT3H
5000 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
5001 19970526,19970704,19970901,19971014,19971128,19971129,19971225
5003 4.8.5.4 Recurrence Rule
5005 Property Name: RRULE
5007 Purpose: This property defines a rule or repeating pattern for
5008 recurring events, to-dos, or time zone definitions.
5010 Value Type: RECUR
5012 Property Parameters: Non-standard property parameters can be
5013 specified on this property.
5015 Conformance: This property can be specified one or more times in
5016 recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. It
5017 can also be specified once in each STANDARD or DAYLIGHT sub-component
5018 of the "VTIMEZONE" calendar component.
5020 Description: The recurring rule, if specified, is used in computing
5021 the recurrence set. The recurrence set is the complete set of
5022 recurrence instances for a calendar component. The recurrence set is
5023 generated by considering the initial "DTSTART" property along with
5024 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
5025 within the iCalendar object. The "DTSTART" property defines the first
5026 instance in the recurrence set. Multiple instances of the "RRULE" and
5027 "EXRULE" properties can also be specified to define more
5028 sophisticated recurrence sets. The final recurrence set is generated
5029 by gathering all of the start date-times generated by any of the
5030 specified "RRULE" and "RDATE" properties, and excluding any start
5031 date and times which fall within the union of start date and times
5032 generated by any specified "EXRULE" and "EXDATE" properties. This
5033 implies that start date and times within exclusion related properties
5034 (i.e., "EXDATE" and "EXRULE") take precedence over those specified by
5035 inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate
5036 instances are generated by the "RRULE" and "RDATE" properties, only
5037 one recurrence is considered. Duplicate instances are ignored.
5039 The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
5040 property pair, specified within the iCalendar object defines the
5041 first instance of the recurrence. When used with a recurrence rule,
5042 the "DTSTART" and "DTEND" properties MUST be specified in local time
5043 and the appropriate set of "VTIMEZONE" calendar components MUST be
5044 included. For detail on the usage of the "VTIMEZONE" calendar
5045 component, see the "VTIMEZONE" calendar component definition.
5047 Any duration associated with the iCalendar object applies to all
5048 members of the generated recurrence. Any modified duration for
5049 specific recurrences would have to be explicitly specified using the
5050 "RDATE" property.
5052 Format Definition: This property is defined by the following
5053 notation:
5055 rrule = "RRULE" rrulparam ":" recur CRLF
5057 rrulparam = *(";" xparam)
5059 Example: All examples assume the Eastern United States time zone.
5061 Daily for 10 occurrences:
5063 DTSTART;TZID=America-New York:19970902T090000
5064 RRULE:FREQ=DAILY;COUNT=10
5066 ==> (1997 9:00 AM EDT)September 2-11
5068 Daily until December 24, 1997:
5070 DTSTART;TZID=America-New York:19970902T090000
5071 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
5073 ==> (1997 9:00 AM EDT)September 2-30;October 1-25
5074 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23
5076 Every other day - forever:
5078 DTSTART;TZID=America-New York:19970902T090000
5079 RRULE:FREQ=DAILY;INTERVAL=2
5080 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
5081 October 2,4,6...20,22,24
5082 (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
5083 Dec 1,3,...
5085 Every 10 days, 5 occurrences:
5087 DTSTART;TZID=America-New York:19970902T090000
5088 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
5090 ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12
5092 Everyday in January, for 3 years:
5094 DTSTART;TZID=America-New York:19980101T090000
5095 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
5096 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
5097 or
5098 RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1
5100 ==> (1998 9:00 AM EDT)January 1-31
5101 (1999 9:00 AM EDT)January 1-31
5102 (2000 9:00 AM EDT)January 1-31
5104 Weekly for 10 occurrences
5105 DTSTART;TZID=America-New York:19970902T090000
5106 RRULE:FREQ=WEEKLY;COUNT=10
5108 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5109 (1997 9:00 AM EST)October 28;November 4
5111 Weekly until December 24, 1997
5113 DTSTART;TZID=America-New York:19970902T090000
5114 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
5116 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5117 (1997 9:00 AM EST)October 28;November 4,11,18,25;
5118 December 2,9,16,23
5120 Every other week - forever:
5122 DTSTART;TZID=America-New York:19970902T090000
5123 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
5125 ==> (1997 9:00 AM EDT)September 2,16,30;October 14
5126 (1997 9:00 AM EST)October 28;November 11,25;December 9,23
5127 (1998 9:00 AM EST)January 6,20;February
5128 ...
5130 Weekly on Tuesday and Thursday for 5 weeks:
5132 DTSTART;TZID=America-New York:19970902T090000
5133 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
5134 or
5135 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
5137 ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2
5139 Every other week on Monday, Wednesday and Friday until December 24,
5140 1997, but starting on Tuesday, September 2, 1997:
5142 DTSTART;TZID=America-New York:19970902T090000
5143 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
5144 BYDAY=MO,WE,FR
5145 ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October
5146 1,3,13,15,17
5147 (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28;
5148 December 8,10,12,22
5150 Every other week on Tuesday and Thursday, for 8 occurrences:
5152 DTSTART;TZID=America-New York:19970902T090000
5153 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
5155 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16
5157 Monthly on the 1st Friday for ten occurrences:
5159 DTSTART;TZID=America-New York:19970905T090000
5160 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
5162 ==> (1997 9:00 AM EDT)September 5;October 3
5163 (1997 9:00 AM EST)November 7;Dec 5
5164 (1998 9:00 AM EST)January 2;February 6;March 6;April 3
5165 (1998 9:00 AM EDT)May 1;June 5
5167 Monthly on the 1st Friday until December 24, 1997:
5169 DTSTART;TZID=America-New York:19970905T090000
5170 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
5172 ==> (1997 9:00 AM EDT)September 5;October 3
5173 (1997 9:00 AM EST)November 7;December 5
5175 Every other month on the 1st and last Sunday of the month for 10
5176 occurrences:
5178 DTSTART;TZID=America-New York:19970907T090000
5179 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
5181 ==> (1997 9:00 AM EDT)September 7,28
5182 (1997 9:00 AM EST)November 2,30
5183 (1998 9:00 AM EST)January 4,25;March 1,29
5184 (1998 9:00 AM EDT)May 3,31
5186 Monthly on the second to last Monday of the month for 6 months:
5188 DTSTART;TZID=America-New York:19970922T090000
5189 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
5191 ==> (1997 9:00 AM EDT)September 22;October 20
5192 (1997 9:00 AM EST)November 17;December 22
5193 (1998 9:00 AM EST)January 19;February 16
5195 Monthly on the third to the last day of the month, forever:
5197 DTSTART;TZID=America-New York:19970928T090000
5198 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
5200 ==> (1997 9:00 AM EDT)September 28
5201 (1997 9:00 AM EST)October 29;November 28;December 29
5202 (1998 9:00 AM EST)January 29;February 26
5203 ...
5205 Monthly on the 2nd and 15th of the month for 10 occurrences:
5207 DTSTART;TZID=America-New York:19970902T090000
5208 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
5210 ==> (1997 9:00 AM EDT)September 2,15;October 2,15
5211 (1997 9:00 AM EST)November 2,15;December 2,15
5212 (1998 9:00 AM EST)January 2,15
5213 Monthly on the first and last day of the month for 10 occurrences:
5215 DTSTART;TZID=America-New York:19970930T090000
5216 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
5218 ==> (1997 9:00 AM EDT)September 30;October 1
5219 (1997 9:00 AM EST)October 31;November 1,30;December 1,31
5220 (1998 9:00 AM EST)January 1,31;February 1
5222 Every 18 months on the 10th thru 15th of the month for 10
5223 occurrences:
5225 DTSTART;TZID=America-New York:19970910T090000
5226 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
5227 15
5229 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15
5230 (1999 9:00 AM EST)March 10,11,12,13
5232 Every Tuesday, every other month:
5234 DTSTART;TZID=America-New York:19970902T090000
5235 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
5237 ==> (1997 9:00 AM EDT)September 2,9,16,23,30
5238 (1997 9:00 AM EST)November 4,11,18,25
5239 (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31
5240 ...
5242 Yearly in June and July for 10 occurrences:
5244 DTSTART;TZID=America-New York:19970610T090000
5245 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
5247 ==> (1997 9:00 AM EDT)June 10;July 10
5248 (1998 9:00 AM EDT)June 10;July 10
5249 (1999 9:00 AM EDT)June 10;July 10
5250 (2000 9:00 AM EDT)June 10;July 10
5251 (2001 9:00 AM EDT)June 10;July 10
5252 Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components
5253 are specified, the day is gotten from DTSTART
5255 Every other year on January, February, and March for 10 occurrences:
5257 DTSTART;TZID=America-New York:19970310T090000
5258 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
5260 ==> (1997 9:00 AM EST)March 10
5261 (1999 9:00 AM EST)January 10;February 10;March 10
5262 (2001 9:00 AM EST)January 10;February 10;March 10
5263 (2003 9:00 AM EST)January 10;February 10;March 10
5265 Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
5267 DTSTART;TZID=America-New York:19970101T090000
5268 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
5270 ==> (1997 9:00 AM EST)January 1
5271 (1997 9:00 AM EDT)April 10;July 19
5272 (2000 9:00 AM EST)January 1
5273 (2000 9:00 AM EDT)April 9;July 18
5274 (2003 9:00 AM EST)January 1
5275 (2003 9:00 AM EDT)April 10;July 19
5276 (2006 9:00 AM EST)January 1
5278 Every 20th Monday of the year, forever:
5280 DTSTART;TZID=America-New York:19970519T090000
5281 RRULE:FREQ=YEARLY;BYDAY=20MO
5283 ==> (1997 9:00 AM EDT)May 19
5284 (1998 9:00 AM EDT)May 18
5285 (1999 9:00 AM EDT)May 17
5286 ...
5288 Monday of week number 20 (where the default start of the week is
5289 Monday), forever:
5291 DTSTART;TZID=America-New York:19970512T090000
5292 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
5294 ==> (1997 9:00 AM EDT)May 12
5295 (1998 9:00 AM EDT)May 11
5296 (1999 9:00 AM EDT)May 17
5297 ...
5299 Every Thursday in March, forever:
5301 DTSTART;TZID=America-New York:19970313T090000
5302 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
5304 ==> (1997 9:00 AM EST)March 13,20,27
5305 (1998 9:00 AM EST)March 5,12,19,26
5306 (1999 9:00 AM EST)March 4,11,18,25
5307 ...
5309 Every Thursday, but only during June, July, and August, forever:
5311 DTSTART;TZID=America-New York:19970605T090000
5312 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
5314 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;
5315 August 7,14,21,28
5316 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30;
5317 August 6,13,20,27
5318 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29;
5319 August 5,12,19,26
5320 ...
5322 Every Friday the 13th, forever:
5324 DTSTART;TZID=America-New York:19970902T090000
5325 EXDATE;TZID=America-New York:19970902T090000
5326 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
5328 ==> (1998 9:00 AM EST)February 13;March 13;November 13
5329 (1999 9:00 AM EDT)August 13
5330 (2000 9:00 AM EDT)October 13
5331 ...
5333 The first Saturday that follows the first Sunday of the month,
5334 forever:
5336 DTSTART;TZID=America-New York:19970913T090000
5337 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
5339 ==> (1997 9:00 AM EDT)September 13;October 11
5340 (1997 9:00 AM EST)November 8;December 13
5341 (1998 9:00 AM EST)January 10;February 7;March 7
5342 (1998 9:00 AM EDT)April 11;May 9;June 13...
5343 ...
5345 Every four years, the first Tuesday after a Monday in November,
5346 forever (U.S. Presidential Election day):
5348 DTSTART;TZID=America-New York:19961105T090000
5349 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
5350 5,6,7,8
5352 ==> (1996 9:00 AM EST)November 5
5353 (2000 9:00 AM EST)November 7
5354 (2004 9:00 AM EST)November 2
5355 ...
5357 The 3rd instance into the month of one of Tuesday, Wednesday or
5358 Thursday, for the next 3 months:
5360 DTSTART;TZID=America-New York:19970904T090000
5361 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
5363 ==> (1997 9:00 AM EDT)September 4;October 7
5364 (1997 9:00 AM EST)November 6
5366 The 2nd to last weekday of the month:
5368 DTSTART;TZID=America-New York:19970929T090000
5369 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
5371 ==> (1997 9:00 AM EDT)September 29
5372 (1997 9:00 AM EST)October 30;November 27;December 30
5373 (1998 9:00 AM EST)January 29;February 26;March 30
5374 ...
5376 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
5378 DTSTART;TZID=America-New York:19970902T090000
5379 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
5381 ==> (September 2, 1997 EDT)09:00,12:00,15:00
5383 Every 15 minutes for 6 occurrences:
5385 DTSTART;TZID=America-New York:19970902T090000
5386 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
5388 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15
5390 Every hour and a half for 4 occurrences:
5392 DTSTART;TZID=America-New York:19970902T090000
5393 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
5395 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30
5397 Every 20 minutes from 9:00 AM to 4:40 PM every day:
5399 DTSTART;TZID=America-New York:19970902T090000
5400 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
5401 or
5402 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
5404 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5405 ... 16:00,16:20,16:40
5406 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5407 ...16:00,16:20,16:40
5408 ...
5410 An example where the days generated makes a difference because of
5411 WKST:
5413 DTSTART;TZID=America-New York:19970805T090000
5414 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
5416 ==> (1997 EDT)Aug 5,10,19,24
5418 changing only WKST from MO to SU, yields different results...
5420 DTSTART;TZID=America-New York:19970805T090000
5421 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
5422 ==> (1997 EDT)August 5,17,19,31
5424 4.8.6 Alarm Component Properties
5426 The following properties specify alarm information in calendar
5427 components.
5429 4.8.6.1 Action
5431 Property Name: ACTION
5433 Purpose: This property defines the action to be invoked when an alarm
5434 is triggered.
5436 Value Type: TEXT
5438 Property Parameters: Non-standard property parameters can be
5439 specified on this property.
5441 Conformance: This property MUST be specified once within a "VALARM"
5442 calendar component.
5444 Description: Each "VALARM" calendar component has a particular type
5445 of action associated with it. This property specifies the type of
5446 action
5448 Format Definition: The property is defined by the following notation:
5450 action = "ACTION" actionparam ":" actionvalue CRLF
5452 actionparam = *(";" xparam)
5454 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
5455 / iana-token / x-name
5457 Example: The following are examples of this property in a "VALARM"
5458 calendar component:
5460 ACTION:AUDIO
5462 ACTION:DISPLAY
5464 ACTION:PROCEDURE
5466 4.8.6.2 Repeat Count
5468 Property Name: REPEAT
5470 Purpose: This property defines the number of time the alarm should be
5471 repeated, after the initial trigger.
5473 Value Type: INTEGER
5475 Property Parameters: Non-standard property parameters can be
5476 specified on this property.
5478 Conformance: This property can be specified in a "VALARM" calendar
5479 component.
5481 Description: If the alarm triggers more than once, then this property
5482 MUST be specified along with the "DURATION" property.
5484 Format Definition: The property is defined by the following notation:
5486 repeatcnt = "REPEAT" repparam ":" integer CRLF
5487 ;Default is "0", zero.
5489 repparam = *(";" xparam)
5491 Example: The following is an example of this property for an alarm
5492 that repeats 4 additional times with a 5 minute delay after the
5493 initial triggering of the alarm.:
5495 REPEAT:4
5496 DURATION:PT5M
5498 4.8.6.3 Trigger
5500 Property Name: TRIGGER
5502 Purpose: This property specifies when an alarm will trigger.
5504 Value Type: The default value type is DURATION. The value type can be
5505 reset to a DATE-TIME value type, in which case the value MUST specify
5506 a UTC formatted DATE-TIME value.
5508 Property Parameters: Non-standard, value data type, time zone
5509 identifier or trigger relationship property parameters can be
5510 specified on this property. The trigger relationship property
5511 parameter MUST only be specified when the value type is DURATION.
5513 Conformance: This property MUST be specified within the "VALARM"
5514 calendar component.
5516 Description: Within the "VALARM" calendar component, this property
5517 defines when the alarm will trigger. The default value type is
5518 DURATION, specifying a relative time for the trigger of the alarm.
5519 The default duration is relative to the start of an event or to-do
5520 that the alarm is associated with. The duration can be explicitly set
5521 to trigger from either the end or the start of the associated event
5522 or to-do with the "RELATED" parameter. A value of START will set the
5523 alarm to trigger off the start of the associated event or to-do. A
5524 value of END will set the alarm to trigger off the end of the
5525 associated event or to-do.
5527 Either a positive or negative duration may be specified for the
5528 "TRIGGER" property. An alarm with a positive duration is triggered
5529 after the associated start or end of the event or to-do. An alarm
5530 with a negative duration is triggered before the associated start or
5531 end of the event or to-do.
5533 The "RELATED" property parameter is not valid if the value type of
5534 the property is reset to DATE-TIME (i.e., for an absolute date and
5535 time alarm trigger). If a value type of DATE-TIME is specified, then
5536 the property value MUST be specified in the UTC time format. If an
5537 absolute trigger is specified on an alarm for a recurring event or
5538 to-do, then the alarm will only trigger for the specified absolute
5539 date/time, along with any specified repeating instances.
5541 If the trigger is set relative to START, then the "DTSTART" property
5542 must be present in the associated "VEVENT" or "VTODO" calendar
5543 component. If an alarm is specified for an event with the trigger set
5544 relative to the END, then the "DTEND" property or the "DSTART" and
5545 "DURATION' properties must be present in the associated "VEVENT"
5546 calendar component. If the alarm is specified for a to-do with a
5547 trigger set relative to the END, then either the "DUE" property or
5548 the "DSTART" and "DURATION' properties must be present in the
5549 associated "VTODO" calendar component.
5551 Alarms specified in an event or to-do which is defined in terms of a
5552 DATE value type will be triggered relative to 00:00:00 UTC on the
5553 specified date. For example, if "DTSTART:19980205, then the duration
5554 trigger will be relative to19980205T000000Z.
5556 Format Definition: The property is defined by the following notation:
5558 trigger = "TRIGGER" (trigrel / trigabs)
5560 trigrel = [";" "VALUE" "=" "DURATION"]
5561 [";" trigrelparam] *(";" xparam)
5562 ":" duration
5564 trigabs = ";" "VALUE" "=" "DATE-TIME" *(";" xparam)
5565 ":" date-time
5567 Example: A trigger set 15 minutes prior to the start of the event or
5568 to-do.
5570 TRIGGER:-P15M
5572 A trigger set 5 minutes after the end of the event or to-do.
5574 TRIGGER;RELATED=END:P5M
5576 A trigger set to an absolute date/time.
5578 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
5580 4.8.7 Change Management Component Properties
5582 The following properties specify change management information in
5583 calendar components.
5585 4.8.7.1 Date/Time Created
5587 Property Name: CREATED
5589 Purpose: This property specifies the date and time that the calendar
5590 information was created by the calendar user agent in the calendar
5591 store.
5593 Note: This is analogous to the creation date and time for a file
5594 in the file system.
5596 Value Type: DATE-TIME
5598 Property Parameters: Non-standard property parameters can be
5599 specified on this property.
5601 Conformance: The property can be specified once in "VEVENT", "VTODO"
5602 and "VJOURNAL" calendar components.
5604 Description: The date and time is an UTC value.
5606 Format Definition: The property is defined by the following notation:
5608 created = "CREATED" creaparam ":" date-time CRLF
5610 creaparam = *(";" xparam)
5612 Example: The following is an example of this property:
5614 CREATED:19960329T133000Z
5616 4.8.7.2 Date/Time Stamp
5618 Property Name: DTSTAMP
5620 Purpose: The property indicates the date/time that the instance of
5621 the iCalendar object was created.
5623 Value Type: DATE-TIME
5625 Property Parameters: Non-standard property parameters can be
5626 specified on this property.
5628 Conformance: This property MUST be included in the "VEVENT", "VTODO",
5629 "VJOURNAL" and "VFREEBUSY" calendar components.
5631 Description: The value must be specified in the UTC time format.
5633 This property is also useful to protocols such as [IMIP] that have
5634 inherent latency issues with the delivery of content. This property
5635 will assist in the proper sequencing of messages containing iCalendar
5636 objects.
5638 This property is different than the "CREATED" and "LAST-MODIFIED"
5639 properties. These two properties are used to specify when the
5640 calendar service information was created and last modified. This is
5641 different than when the iCalendar object representation of the
5642 calendar service information was created or last modified.
5644 Format Definition: The property is defined by the following notation:
5646 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
5647 stmparam = *(";" xparam)
5649 Example:
5651 DTSTAMP:19971210T080000Z
5653 4.8.7.3 Last Modified
5655 Property Name: LAST-MODIFIED
5657 Purpose: The property specifies the date and time that the
5658 information associated with the calendar component was last revised
5659 in the calendar store.
5661 Note: This is analogous to the modification date and time for a
5662 file in the file system.
5664 Value Type: DATE-TIME
5666 Property Parameters: Non-standard property parameters can be
5667 specified on this property.
5669 Conformance: This property can be specified in the "EVENT", "VTODO",
5670 "VJOURNAL" and "VTIMEZONE" calendar components.
5672 Description: The property value MUST be specified in the UTC time
5673 format.
5675 Format Definition: The property is defined by the following notation:
5677 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
5679 lstparam = *(";" xparam)
5681 Example: The following is are examples of this property:
5683 LAST-MODIFIED:19960817T133000Z
5685 4.8.7.4 Sequence Number
5687 Property Name: SEQUENCE
5689 Purpose: This property defines the revision sequence number of the
5690 calendar component within a sequence of revisions.
5692 Value Type: integer
5694 Property Parameters: Non-standard property parameters can be
5695 specified on this property.
5697 Conformance: The property can be specified in a "VEVENT", "VTODO",
5698 "VJOURNAL" calendar component.
5700 Description: When a calendar component is created, its sequence
5701 number is zero (US-ASCII decimal 48). It is monotonically incremented
5702 by the "Organizer's" CUA each time the "Organizer" makes a
5703 significant revision to the calendar component. When the "Organizer"
5704 makes changes to one of the following properties, the sequence number
5705 MUST be incremented:
5707 . "DTSTART"
5709 . "DTEND"
5711 . "DUE"
5713 . "RDATE"
5715 . "RRULE"
5717 . "EXDATE"
5719 . "EXRULE"
5721 . "STATUS"
5723 In addition, changes made by the "Organizer" to other properties can
5724 also force the sequence number to be incremented. The "Organizer" CUA
5725 MUST increment the sequence number when ever it makes changes to
5726 properties in the calendar component that the "Organizer" deems will
5727 jeopardize the validity of the participation status of the
5728 "Attendees". For example, changing the location of a meeting from one
5729 locale to another distant locale could effectively impact the
5730 participation status of the "Attendees".
5732 The "Organizer" includes this property in an iCalendar object that it
5733 sends to an "Attendee" to specify the current version of the calendar
5734 component.
5736 The "Attendee" includes this property in an iCalendar object that it
5737 sends to the "Organizer" to specify the version of the calendar
5738 component that the "Attendee" is referring to.
5740 A change to the sequence number is not the mechanism that an
5741 "Organizer" uses to request a response from the "Attendees". The
5742 "RSVP" parameter on the "ATTENDEE" property is used by the
5743 "Organizer" to indicate that a response from the "Attendees" is
5744 requested.
5746 Format Definition: This property is defined by the following
5747 notation:
5749 seq = "SEQUENCE" seqparam ":" integer CRLF
5750 ; Default is "0"
5752 seqparam = *(";" xparam)
5753 Example: The following is an example of this property for a calendar
5754 component that was just created by the "Organizer".
5756 SEQUENCE:0
5758 The following is an example of this property for a calendar component
5759 that has been revised two different times by the "Organizer".
5761 SEQUENCE:2
5763 4.8.8 Miscellaneous Component Properties
5765 The following properties specify information about a number of
5766 miscellaneous features of calendar components.
5768 4.8.8.1 Non-standard Properties
5770 Property Name: Any property name with a "X-" prefix
5772 Purpose: This class of property provides a framework for defining
5773 non-standard properties.
5775 Value Type: TEXT
5777 Property Parameters: Non-standard and language property parameters
5778 can be specified on this property.
5780 Conformance: This property can be specified in any calendar
5781 component.
5783 Description: The MIME Calendaring and Scheduling Content Type
5784 provides a "standard mechanism for doing non-standard things". This
5785 extension support is provided for implementers to "push the envelope"
5786 on the existing version of the memo. Extension properties are
5787 specified by property and/or property parameter names that have the
5788 prefix text of "X-" (the two character sequence: LATIN CAPITAL LETTER
5789 X character followed by the HYPEN-MINUS character). It is recommended
5790 that vendors concatenate onto this sentinel another short prefix text
5791 to identify the vendor. This will facilitate readability of the
5792 extensions and minimize possible collision of names between different
5793 vendors. User agents that support this content type are expected to
5794 be able to parse the extension properties and property parameters but
5795 can ignore them.
5797 At present, there is no registration authority for names of extension
5798 properties and property parameters. The data type for this property
5799 is TEXT. Optionally, the data type can be any of the other valid data
5800 types.
5802 Format Definition: The property is defined by the following notation:
5804 x-prop = x-name *(";" xparam) [";" languageparam] ":" text CRLF
5805 ; Lines longer than 75 octets should be folded
5806 Example: The following might be the ABC vendor's extension for an
5807 audio-clip form of subject property:
5809 X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav
5811 4.8.8.2 Request Status
5813 Property Name: REQUEST-STATUS
5815 Purpose: This property defines the status code returned for a
5816 scheduling request.
5818 Value Type: TEXT
5820 Property Parameters: Non-standard and language property parameters
5821 can be specified on this property.
5823 Conformance: The property can be specified in a "VEVENT", "VTODO",
5824 "VJOURNAL" and "VFREEBUSY" calendar component.
5826 Description: This property is used to return status code information
5827 related to the processing of an associated iCalendar object. The data
5828 type for this property is TEXT.
5830 The value consists of a short return status, a longer return status
5831 description, and optionally the offending data. The components of the
5832 value are separated by the SEMICOLON character (US-ASCII decimal 59).
5834 The short return status is a PERIOD character (US-ASCII decimal 46)
5835 separated 3-tuple of integers. For example, "3.1.1". The successive
5836 levels of integers provide for a successive level of status code
5837 granularity.
5839 The following are initial classes for the return status code.
5840 Individual iCalendar object methods will define specific return
5841 status codes for these classes. In addition, other classes for the
5842 return status code may be defined using the registration process
5843 defined later in this memo.
5845 |==============+===============================================|
5846 | Short Return | Longer Return Status Description |
5847 | Status Code | |
5848 |==============+===============================================|
5849 | 1.xx | Preliminary success. This class of status |
5850 | | of status code indicates that the request has |
5851 | | request has been initially processed but that |
5852 | | completion is pending. |
5853 |==============+===============================================|
5854 | 2.xx | Successful. This class of status code |
5855 | | indicates that the request was completed |
5856 | | successfuly. However, the exact status code |
5857 | | can indicate that a fallback has been taken. |
5858 |==============+===============================================|
5859 | 3.xx | Client Error. This class of status code |
5860 | | indicates that the request was not successful.|
5861 | | The error is the result of either a syntax or |
5862 | | a semantic error in the client formatted |
5863 | | request. Request should not be retried until |
5864 | | the condition in the request is corrected. |
5865 |==============+===============================================|
5866 | 4.xx | Scheduling Error. This class of status code |
5867 | | indicates that the request was not successful.|
5868 | | Some sort of error occurred within the |
5869 | | calendaring and scheduling service, not |
5870 | | directly related to the request itself. |
5871 |==============+===============================================|
5873 Format Definition: The property is defined by the following notation:
5875 rstatus = "REQUEST-STATUS" rstatparam ":"
5876 statcode ";" statdesc [";" extdata]
5878 rstatparam = [";" languageparm]
5879 *(";" xparam)
5881 statcode = 1*DIGIT *("." 1*DIGIT)
5882 ;Hierarchical, numeric return status code
5884 statdesc = text
5885 ;Textual status description
5887 extdata = text
5888 ;Textual exception data. For example, the offending property
5889 ;name and value or complete property line.
5891 Example: The following are some possible examples of this property.
5892 The COMMA and SEMICOLON separator characters in the property value
5893 are BACKSLASH character escaped because they appear in a text value.
5895 REQUEST-STATUS:2.0;Success
5897 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
5899 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
5900 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
5902 REQUEST-STATUS:4.1;Event conflict. Date/time is busy.
5904 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
5905 MAILTO:jsmith@host.com
5907 5 iCalendar Object Examples
5909 The following examples are provided as an informational source of
5910 illustrative iCalendar objects consistent with this content type.
5912 The following example specifies a three-day conference that begins at
5913 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20,
5914 1996.
5916 BEGIN:VCALENDAR
5917 PRODID:-//xyz Corp//NONSGML PDA Calendar Verson 1.0//EN
5918 VERSION:2.0
5919 BEGIN:VEVENT
5920 DTSTAMP:19960704T120000Z
5921 UID:uid1@host.com
5922 ORGANIZER:MAILTO:jsmith@host.com
5923 DTSTART:19960918T143000Z
5924 DTEND:19960920T220000Z
5925 STATUS:CONFIRMED
5926 CATEGORIES:CONFERENCE
5927 SUMMARY:Networld+Interop Conference
5928 DESCRIPTION:Networld+Interop Conference
5929 and Exhibit\nAtlanta World Congress Center\n
5930 Atlanta, Georgia
5931 END:VEVENT
5932 END:VCALENDAR
5934 The following example specifies a group scheduled meeting that begin
5935 at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12,
5936 1998. The "Organizer" has scheduled the meeting with one or more
5937 calendar users in a group. A time zone specification for Eastern
5938 United States has been specified.
5940 BEGIN:VCALENDAR
5941 PRODID:-//RDU Software//NONSGML HandCal//EN
5942 VERSION:2.0
5943 BEGIN:VTIMEZONE
5944 TZID:Eastern US
5945 BEGIN:STANDARD
5946 DTSTART:19981025T020000
5947 RDATE:19981025T020000
5948 TZOFFSETFROM:-0400
5949 TZOFFSETTO:-0500
5950 TZNAME:EST
5951 END:STANDARD
5952 BEGIN:DAYLIGHT
5953 DTSTART:19990404T020000
5954 RDATE:19990404T020000
5955 TZOFFSETFROM:-0500
5956 TZOFFSETTO:-0400
5957 TZNAME:EDT
5958 END:DAYLIGHT
5959 END:VTIMEZONE
5960 BEGIN:VEVENT
5961 DTSTAMP:19980309T231000Z
5962 UID:guid-1.host1.com
5963 ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
5964 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
5965 MAILTO:employee-A@host.com
5966 DESCRIPTION:Project XYZ Review Meeting
5967 CATEGORIES:MEETING
5968 CLASS:PUBLIC
5969 CREATED:19980309T130000Z
5970 SUMMARY:XYZ Project Review
5971 DTSTART;TZID=US-Eastern:19980312T083000
5972 DTEND;TZID=US-Eastern:19980312T093000
5973 LOCATION:1CP Conference Room 4350
5974 END:VEVENT
5975 END:VCALENDAR
5977 The following is an example of an iCalendar object passed in a MIME
5978 message with a single body part consisting of a "text/calendar"
5979 Content Type.
5981 TO:jsmith@host1.com
5982 FROM:jdoe@host1.com
5983 MIME-VERSION:1.0
5984 MESSAGE-ID:
5985 CONTENT-TYPE:text/calendar
5987 BEGIN:VCALENDAR
5988 METHOD:xyz
5989 VERSION:2.0
5990 PRODID:-//ABC Corporation//NONSGML My Product//EN
5991 BEGIN:VEVENT
5992 DTSTAMP:19970324T1200Z
5993 SEQUENCE:0
5994 UID:uid3@host1.com
5995 ORGANIZER:MAILTO:jdoe@host1.com
5996 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
5997 DTSTART:19970324T123000Z
5998 DTEND:19970324T210000Z
5999 CATEGORIES:MEETING,PROJECT
6000 CLASS:PUBLIC
6001 SUMMARY:Calendaring Interoperability Planning Meeting
6002 DESCRIPTION:Discuss how we can test c&s interoperability\n
6003 using iCalendar and other IETF standards.
6004 LOCATION:LDB Lobby
6005 ATTACH:file:///xyzCorp.com/conf/bkgrnd.ps
6006 END:VEVENT
6007 END:VCALENDAR
6009 The following is an example of a to-do due on April 15, 1998. An
6010 audio alarm has been specified to remind the calendar user at noon,
6011 the day before the to-do is expected to be completed and repeat
6012 hourly, four additional times. The to-do definition has been modified
6013 twice since it was initially created.
6015 BEGIN:VCALENDAR
6016 VERSION:2.0
6017 PRODID:-//ABC Corporation//NONSGML My Product//EN
6018 BEGIN:VTODO
6019 DTSTAMP:19980130T134500Z
6020 SEQUENCE:2
6021 UID:uid4@host1.com
6022 ORGANIZER:MAILTO:unclesam@us.gov
6023 ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com
6024 DUE:19980415T235959
6025 STATUS:NEEDS-ACTION
6026 SUMMARY:Submit Income Taxes
6027 BEGIN:VALARM
6028 ACTION:AUDIO
6029 TRIGGER:19980403T120000
6030 ATTACH:http://host.com/pub/audio-files/ssbanner.wav
6031 REPEAT:4
6032 DURATION:PT1H
6033 END:VALARM
6034 END:VTODO
6035 END:VCALENDAR
6037 The following is an example of a journal entry.
6039 BEGIN:VCALENDAR
6040 VERSION:2.0
6041 PRODID:-//ABC Corporation//NONSGML My Product//EN
6042 BEGIN:VJOURNAL
6043 DTSTAMP:19970324T120000Z
6044 UID:uid5@host1.com
6045 ORGANIZER:MAILTO:jsmith@host.com
6046 STATUS:DRAFT
6047 CLASS:PUBLIC
6048 CATEGORY:Project Report, XYZ, Weekly Meeting
6049 DESCRIPTION:Project xyz Review Meeting Minutes\n
6050 Agenda\n1. Review of project version 1.0 requirements.\n2.
6051 Definition
6052 of project processes.\n3. Review of project schedule.\n
6053 Participants: John Smith, Jane Doe, Jim Dandy\n-It was
6054 decided that the requirements need to be signed off by
6055 product marketing.\n-Project processes were accepted.\n
6056 -Project schedule needs to account for scheduled holidays
6057 and employee vacation time. Check with HR for specific
6058 dates.\n-New schedule will be distributed by Friday.\n-
6059 Next weeks meeting is cancelled. No meeting until 3/23.
6060 END:VJOURNAL
6061 END:VCALENDAR
6063 The following is an example of published busy time information. The
6064 iCalendar object might be placed in the network resource
6065 www.host.com/calendar/busytime/jsmith.ifb.
6067 BEGIN:VCALENDAR
6068 VERSION:2.0
6069 PRODID:-//RDU Software//NONSGML HandCal//EN
6070 BEGIN:VFREEBUSY
6071 ORGANIZER:MAILTO:jsmith@host.com
6072 DTSTART:19980313T141711Z
6073 DTEND:19980410T141711Z
6074 FREEBUSY:19980314T233000Z/19980315T003000Z
6075 FREEBUSY:19980316T153000Z/19980316T163000Z
6076 FREEBUSY:19980318T030000Z/19980318T040000Z
6077 URL:http://www.host.com/calendar/busytime/jsmith.ifb
6078 END:VFREEBUSY
6079 END:VCALENDAR
6081 6 Recommended Practices
6083 These recommended practices should be followed in order to assure
6084 consistent handling of the following cases for an iCalendar object.
6086 1. Content lines longer than 75 octets SHOULD be folded.
6088 2. A calendar entry with a "DTSTART" property but no "DTEND" property
6089 - The event does not take up any time. It is intended to represent
6090 an event that is associated with a given calendar date and time of
6091 day, such as an anniversary. Since the event does not take up any
6092 time, it MUST NOT be used to record busy time no matter what the
6093 value for the "TRANSP" property.
6095 3. When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and
6096 "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
6097 "VTODO" calendar components, have the same value data type (e.g.,
6098 DATE-TIME), they SHOULD specify values in the same time format
6099 (e.g., UTC time format).
6101 4. A combination of "RRULE" and "RDATE" properties that produces more
6102 than one instance for a given date/time - Only one recurrence can
6103 occur on a given date/time interval. Just one instance for the
6104 date/time is recorded.
6106 5. A particular iCalendar object method that specifies "ATTENDEE"
6107 properties with the "MEMBER" property parameter, for which the
6108 recipient has multiple memberships - Recipient should reply to
6109 only the first "MEMBER" property parameter value that it can
6110 match.
6112 6. An implementation can truncate a "SUMMARY" property value to 255
6113 characters.
6115 7. If seconds of the minute are not supported by an implementation,
6116 then a value of "00" should be specified for the seconds component
6117 in a time value.
6119 8. If the value type parameter (VALUE=) contains an unknown value
6120 type, it should be treated as TEXT.
6122 9. TZURL values SHOULD NOT be specified as a FILE URI type. This URI
6123 form can be useful within an organization, but is problematic in
6124 the Internet.
6126 10. Some possible English values for CATEGORIES property include
6127 "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY",
6128 "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE",
6129 "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION",
6130 "TRAVEL", "VACATION". Categories can be specified in any
6131 registered language.
6133 11. Some possible English values for RESOURCES property include
6134 "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD
6135 PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PHONE",
6136 "VEHICLE". Resources can be specified in any registered language.
6138 7 Registration of Content Type Elements
6140 This section provide the process for registration of MIME Calendaring
6141 and Scheduling Content Type iCalendar object methods and new or
6142 modified properties.
6144 7.1 Registration of New and Modified iCalendar Object Methods
6146 New MIME Calendaring and Scheduling Content Type iCalendar object
6147 methods are registered by the publication of an IETF Request for
6148 Comment (RFC). Changes to an iCalendar object method are registered
6149 by the publication of a revision of the RFC defining the method.
6151 7.2 Registration of New Properties
6153 This section defines procedures by which new properties or enumerated
6154 property values for the MIME Calendaring and Scheduling Content Type
6155 can be registered with the IANA. Non-IANA properties can be used by
6156 bilateral agreement, provided the associated properties names follow
6157 the "X-" convention.
6159 The procedures defined here are designed to allow public comment and
6160 review of new properties, while posing only a small impediment to the
6161 definition of new properties.
6163 Registration of a new property is accomplished by the following
6164 steps.
6166 7.2.1 Define the property
6168 A property is defined by completing the following template.
6170 To: ietf-calendar@imc.org
6172 Subject: Registration of text/calendar MIME property XXX
6174 Property name:
6176 Property purpose:
6178 Property value type(s):
6180 Property parameter (s):
6182 Conformance:
6184 Description:
6186 Format definition:
6188 Examples:
6190 The meaning of each field in the template is as follows.
6192 Property name: The name of the property, as it will appear in the
6193 body of an text/calendar MIME Content-Type "property: value" line to
6194 the left of the colon ":".
6196 Property purpose: The purpose of the property (e.g., to indicate a
6197 delegate for the event or to-do, etc.). Give a short but clear
6198 description.
6200 Property value type (s): Any of the valid value types for the
6201 property value needs to be specified. The default value type also
6202 needs to be specified. If a new value type is specified, it needs to
6203 be declared in this section.
6205 Property parameter (s): Any of the valid property parameters for the
6206 property needs to be specified.
6208 Conformance: The calendar components that the property can appear in
6209 needs to be specified.
6211 Description: Any special notes about the property, how it is to be
6212 used, etc.
6214 Format definition: The ABNF for the property definition needs to be
6215 specified.
6217 Examples: One or more examples of instances of the property needs to
6218 be specified.
6220 7.2.2 Post the Property definition
6222 The property description MUST be posted to the new property
6223 discussion list, ietf-calendar@imc.org.
6225 7.2.3 Allow a comment period
6227 Discussion on the new property MUST be allowed to take place on the
6228 list for a minimum of two weeks. Consensus MUST be reached on the
6229 property before proceeding to the next step.
6231 7.2.4 Submit the property for approval
6233 Once the two-week comment period has elapsed, and the proposer is
6234 convinced consensus has been reached on the property, the
6235 registration application should be submitted to the Method Reviewer
6236 for approval. The Method Reviewer is appointed to the Application
6237 Area Directors and can either accept or reject the property
6238 registration. An accepted registration should be passed on by the
6239 Method Reviewer to the IANA for inclusion in the official IANA method
6240 registry. The registration can be rejected for any of the following
6241 reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
6242 Technical deficiencies raised on the list or elsewhere have not been
6243 addressed. The Method Reviewer's decision to reject a property can be
6244 appealed by the proposer to the IESG, or the objections raised can be
6245 addressed by the proposer and the property resubmitted.
6247 7.3 Property Change Control
6249 Existing properties can be changed using the same process by which
6250 they were registered.
6252 1. Define the change
6254 2. Post the change
6256 3. Allow a comment period
6258 4. Submit the property for approval
6260 Note that the original author or any other interested party can
6261 propose a change to an existing property, but that such changes
6262 should only be proposed when there are serious omissions or errors in
6263 the published memo. The Method Reviewer can object to a change if it
6264 is not backward compatible, but is not required to do so.
6266 Property definitions can never be deleted from the IANA registry, but
6267 properties which are no longer believed to be useful can be declared
6268 OBSOLETE by a change to their "intended use" field.
6270 8 References
6272 The following documents are referred to within this memo.
6274 [ICMS] "Internet Calendaring Model Specification", Internet-Draft,
6275 October 1997, ftp://ftp.ietf.org/internet-drafts/draft-ietf-calsch-
6276 mod-03.txt.
6278 [IMIP] "iCalendar Message-based Interoperability Protocol (IMIP)",
6279 Internet Draft, April 1998, http://www.imc.org/draft-ietf-calsch-
6280 imip-05.txt.
6282 [ITIP] "iCalendar Transport-Independent Interoperability Protocol
6283 (iTIP) : Scheduling Events, Busy Time, To-dos and Journal Entries ",
6284 Internet-Draft, April 1998, http://www.imc.org/draft-ietf-calsch-
6285 itip-05.txt.
6287 [ISO 8601] ISO 8601, "Data elements and interchange formats_
6288 Information interchange--Representation of dates and times",
6289 International Organization for Standardization, June, 1988. This
6290 standard is also addressed by the Internet Draft document
6291 ftp://ds.internic.net/internet-drafts/draft-newman-datetime-00.txt.
6293 [ISO 9070] ISO/IEC 9070, "Information Technology_SGML Support
6294 Facilities--Registration Procedures for Public Text Owner
6295 Identifiers", Second Edition, International Organization for
6296 Standardization, April 1991.
6298 [MIME DIR] Howes, T., Smith, M., "A MIME Content-Type for Directory
6299 Information", Internet-draft-ietf-asid-mime-direct-07.txt, November
6300 1997.
6302 [RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text
6303 Messages", STD 11, RFC 822, August 1982.
6305 [RFC 1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform
6306 Resource Locators (URL)", RFC 1738, December 1994.
6308 [RFC 1766] Alvestrand, H., "Tags for the Identification of
6309 Languages", March 1995.
6311 [RFC 2045] Freed, N., Borenstein, N., " Multipurpose Internet Mail
6312 Extensions (MIME) - Part One: Format of Internet Message Bodies", RFC
6313 2045, November 1996.
6315 [RFC 2046] Freed, N., Borenstein, N., " Multipurpose Internet Mail
6316 Extensions (MIME) - Part Two: Media Types", RFC 2046, November 1996.
6318 [RFC 2047] Moore, K., "Multipurpose Internet Mail Extensions (MIME) -
6319 Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047,
6320 November 1996.
6322 [RFC 2048] Freed, N., J. Klensin, J. Postel, "Multipurpose Internet
6323 Mail Extensions (MIME) - Part Four: Registration Procedures", RFC
6324 2048, January 1997.
6326 [RFC 2111] "Content-ID and Message-ID Uniform Resource Locators", RFC
6327 2111, March 1997.
6329 [RFC 2119] "Key words for use in RFCs to Indicate Requirement
6330 Levels", RFC 2119, March 1997.
6332 [RFC 2234] Crocker, D., Overell, P., "Augmented BNF for Syntax
6333 Specifications: ABNF", RFC 2234, November 1997.
6335 [RFC 2279] "UTF-8, a transformation format of ISO 10646", RFC 2279,
6336 January 1998.
6338 [VCARD] Internet Mail Consortium, "vCard - The Electronic Business
6339 Card Version 2.1", http://www.imc.org/pdi/vcard-21.txt, September
6340 18, 1996.
6342 [VCAL] Internet Mail Consortium, "vCalendar - The Electronic
6343 Calendaring and Scheduling Exchange Format",
6344 http://www.imc.org/pdi/vcal-10.txt, September 18, 1996.
6346 [XAPIA] "XAPIA CSA, Calendaring and Scheduling Application
6347 Programming Interface (CSA) Version 1.0", X.400 API Association,
6348 November 15, 1994.
6350 9 Acknowledgments
6352 A hearty thanks to the IETF Calendaring and Scheduling Working Group
6353 and also the following individuals who have participated in the
6354 drafting, review and discussion of this memo:
6356 Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John
6357 Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre
6358 Courtemanche, Dave Crocker, David Curley, Alec Dun, John Evans, Ross
6359 Finlayson, Randell Flint, Ned Freed, Patrik Falstrom, Chuck
6360 Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Paul Hoffman,
6361 Ross Hopson, Mark Horton, Daryl Huff, Bruce Kahn, C. Harald Koch,
6362 Ryan Jansen, Don Lavange, Antoine Leca, Theodore Lorek, Steve
6363 Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris Newman,
6364 John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes, Robert
6365 Ripberger, John Rose, Doug Royer, Andras Salamar, Ted Schuh, Vinod
6366 Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg,
6367 William P. Spencer, John Sun, Mark Towfiq, Yvonne Tso, Robert Visnov,
6368 James L. Weiner, Mike Weston, William Wyatt.
6370 10 Author's Address
6372 The following address information is provided in a MIME-VCARD,
6373 Electronic Business Card, format.
6375 The authors of this draft are:
6377 BEGIN:VCARD
6378 VERSION:2.1
6379 FN:Frank Dawson
6380 ORG:Lotus Development Corporation
6381 ADR;WORK;POSTAL;PARCEL:;6544 Battleford Drive;
6382 Raleigh;NC;27613-3502;USA
6383 TEL;WORK;MSG:+1-919-676-9515
6384 TEL;WORK;FAX:+1-919-676-9564
6385 EMAIL;INTERNET;PREF:Frank_Dawson@Lotus.com
6386 EMAIL;INTERNET:fdawson@earthlink.net
6387 URL:http://home.earthlink.net/~fdawson
6388 END:VCARD
6390 BEGIN:VCARD
6391 VERSION:2.1
6392 FN:Derik Stenerson
6393 ORG:Microsoft Corporation
6394 ADR;WORK;POSTAL;PARCEL:;One Microsoft Way;
6395 Redmond;WA;98052-6399;USA
6396 TEL;WORK;MSG:+1-425-936-5522
6397 TEL;WORK;FAX:+1-425-936-7329
6398 EMAIL;INTERNET:deriks@Microsoft.com
6399 END:VCARD
6401 The iCalendar object is a result of the work of the Internet
6402 Engineering Task Force Calendaring and Scheduling Working Group. The
6403 chairman of that working group is:
6405 BEGIN:VCARD
6406 VERSION:2.1
6407 FN:Anik Ganguly
6408 ORG:OnTime, Inc.
6409 ADR;WORK;POSTAL;PARCEL:10 Floor;21700 Northwestern Highway;
6410 Southfield;MI;48075;USA
6411 TEL;WORK;MSG:+1-248-559-5955
6412 TEL;WORK;FAX:+1-248-559-5034
6413 EMAIL;INTERNET:anik@ontime.com
6414 END:VCARD
6416 11 Full Copyright Statement
6418 "Copyright (C) The Internet Society (date). All Rights Reserved.
6420 This document and translations of it may be copied and furnished to
6421 others, and derivative works that comment on or otherwise explain it
6422 or assist in its implmentation may be prepared, copied, published and
6423 distributed, in whole or in part, without restriction of any kind,
6424 provided that the above copyright notice and this paragraph are
6425 included on all such copies and derivative works. However, this
6426 document itself may not be modified in any way, such as by removing
6427 the copyright notice or references to the Internet Society or other
6428 Internet organizations, except as needed for the purpose of
6429 developing Internet standards in which case the procedures for
6430 copyrights defined in the Internet Standards process MUST be
6431 followed, or as required to translate it into languages other than
6432 English.
6434 The limited permissions granted above are perpetual and will not be
6435 revoked by the Internet Society or its successors or assigns.
6437 This document and the information contained herein is provided on an
6438 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
6439 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
6440 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
6441 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
6442 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.