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 Overview
  • Finances
  • Project 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.