RFC2445 - Internet Calendaring and Scheduling Core Object Sp(2)

时间:2005-02-16 来源: 作者: 点击:
value FREE indicates that the time interval is free for scheduling. The value BUSY indicates that the time interval is busy because one or more events have been scheduled for that interval. The value
  
value FREE indicates that the time interval is free for scheduling.
The value BUSY indicates that the time interval is busy because one
or more events have been scheduled for that interval. The value
BUSY-UNAVAILABLE indicates that the time interval is busy and that
the interval can not be scheduled. The value BUSY-TENTATIVE indicates
that the time interval is busy because one or more events have been
tentatively scheduled for that interval. If not specified on a
property that allows this parameter, the default is BUSY.

Example: The following is an example of this parameter on a FREEBUSY
property.

FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z

4.2.10 Language

Parameter Name: LANGUAGE

Purpose: To specify the language for text values in a property or
property parameter.

Format Definition: The property parameter is defined by the following
notation:

languageparam = "LANGUAGE" "=" language

language = <Text identifying a language, as defined in [RFC1766]>

Description: This parameter can be specified on properties with a
text value type. The parameter identifies the language of the text in
the property or property parameter value. The value of the "language"
property parameter is that defined in [RFC1766].

For transport in a MIME entity, the Content-Language header field can
be used to set the default language for the entire body part.
Otherwise, no default language is assumed.

Example:

SUMMARY;LANGUAGE=us-EN:Company Holiday Party

LOCATION;LANGUAGE=en:Germany
LOCATION;LANGUAGE=no:Tyskland

The following example makes use of the Quoted-Printable encoding in
order to represent non-ASCII characters.

LOCATION;LANGUAGE=da:K=F8benhavn
LOCATION;LANGUAGE=en:Copenhagen

4.2.11 Group or List Membership

Parameter Name: MEMBER

Purpose: To specify the group or list membership of the calendar user
specified by the property.

Format Definition: The property parameter is defined by the following
notation:

memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE
*("," DQUOTE cal-address DQUOTE)

Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the groups or list
membership for the calendar user specified by the property. The
parameter value either a single calendar address in a quoted-string
or a COMMA character (US-ASCII decimal 44) list of calendar
addresses, each in a quoted-string. The individual calendar address
parameter values MUST each be specified in a quoted-string.

Example:

ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com

ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.
com":MAILTO:janedoe@host.com

4.2.12 Participation Status

Parameter Name: PARTSTAT

Purpose: To specify the participation status for the calendar user
specified by the property.

Format Definition: The property parameter is defined by the following
notation:

partstatparam = "PARTSTAT" "="
("NEEDS-ACTION" ; Event needs action
/ "ACCEPTED" ; Event accepted
/ "DECLINED" ; Event declined

/ "TENTATIVE" ; Event tentatively
; accepted
/ "DELEGATED" ; Event delegated
/ x-name ; Experimental status
/ iana-token) ; Other IANA registered
; status
; These are the participation statuses for a "VEVENT". Default is
; NEEDS-ACTION
partstatparam /= "PARTSTAT" "="
("NEEDS-ACTION" ; To-do needs action
/ "ACCEPTED" ; To-do accepted
/ "DECLINED" ; To-do declined
/ "TENTATIVE" ; To-do tentatively
; accepted
/ "DELEGATED" ; To-do delegated
/ "COMPLETED" ; To-do completed.
; COMPLETED property has
;date/time completed.
/ "IN-PROCESS" ; To-do in process of
; being completed
/ x-name ; Experimental status
/ iana-token) ; Other IANA registered
; status
; These are the participation statuses for a "VTODO". Default is
; NEEDS-ACTION

partstatparam /= "PARTSTAT" "="
("NEEDS-ACTION" ; Journal needs action
/ "ACCEPTED" ; Journal accepted
/ "DECLINED" ; Journal declined
/ x-name ; Experimental status
/ iana-token) ; Other IANA registered
; status
; These are the participation statuses for a "VJOURNAL". Default is
; NEEDS-ACTION

Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the participation
status for the calendar user specified by the property value. The
parameter values differ depending on whether they are associated with
a group scheduled "VEVENT", "VTODO" or "VJOURNAL". The values MUST
match one of the values allowed for the given calendar component. If
not specified on a property that allows this parameter, the default
value is NEEDS-ACTION.

Example:

ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com

4.2.13 Recurrence Identifier Range

Parameter Name: RANGE

Purpose: To specify the effective range of recurrence instances from
the instance specified by the recurrence identifier specified by the
property.

Format Definition: The property parameter is defined by the following
notation:

rangeparam = "RANGE" "=" ("THISANDPRIOR"
; To specify all instances prior to the recurrence identifier
/ "THISANDFUTURE")
; To specify the instance specified by the recurrence identifier
; and all subsequent recurrence instances

Description: The parameter can be specified on a property that
specifies a recurrence identifier. The parameter specifies the
effective range of recurrence instances that is specified by the
property. The effective range is from the recurrence identified
specified by the property. If this parameter is not specified an
allowed property, then the default range is the single instance
specified by the recurrence identifier value of the property. The
parameter value can be "THISANDPRIOR" to indicate a range defined by
the recurrence identified value of the property and all prior
instances. The parameter value can also be "THISANDFUTURE" to
indicate a range defined by the recurrence identifier and all
subsequent instances.

Example:

RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z

4.2.14 Alarm Trigger Relationship

Parameter Name: RELATED

Purpose: To specify the relationship of the alarm trigger with
respect to the start or end of the calendar component.

Format Definition: The property parameter is defined by the following
notation:

trigrelparam = "RELATED" "="
("START" ; Trigger off of start
/ "END") ; Trigger off of end

Description: The parameter can be specified on properties that
specify an alarm trigger with a DURATION value type. The parameter
specifies whether the alarm will trigger relative to the start or end
of the calendar component. The parameter value START will set the
alarm to trigger off the start of the calendar component; the
parameter value END will set the alarm to trigger off the end of the
calendar component. If the parameter is not specified on an allowable
property, then the default is START.

Example:

TRIGGER;RELATED=END:PT5M

4.2.15 Relationship Type

Parameter Name: RELTYPE

Purpose: To specify the type of hierarchical relationship associated
with the calendar component specified by the property.

Format Definition: The property parameter is defined by the following
notation:

reltypeparam = "RELTYPE" "="
("PARENT" ; Parent relationship. Default.
/ "CHILD" ; Child relationship
/ "SIBLING ; Sibling relationship
/ iana-token ; Some other IANA registered
; iCalendar relationship type
/ x-name) ; A non-standard, experimental
; relationship type

Description: This parameter can be specified on a property that
references another related calendar. The parameter specifies the
hierarchical relationship type of the calendar component referenced
by the property. The parameter value can be PARENT, to indicate that
the referenced calendar component is a superior of calendar
component; CHILD to indicate that the referenced calendar component
is a subordinate of the calendar component; SIBLING to indicate that
the referenced calendar component is a peer of the calendar
component. If this parameter is not specified on an allowable
property, the default relationship type is PARENT.

Example:

RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com>

4.2.16 Participation Role

Parameter Name: ROLE

Purpose: To specify the participation role for the calendar user
specified by the property.

Format Definition: The property parameter is defined by the following
notation:

roleparam = "ROLE" "="
("CHAIR" ; Indicates chair of the
; calendar entity
/ "REQ-PARTICIPANT" ; Indicates a participant whose
; participation is required
/ "OPT-PARTICIPANT" ; Indicates a participant whose
; participation is optional
/ "NON-PARTICIPANT" ; Indicates a participant who is
; copied for information
; purposes only
/ x-name ; Experimental role
/ iana-token) ; Other IANA role
; Default is REQ-PARTICIPANT

Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the participation
role for the calendar user specified by the property in the group
schedule calendar component. If not specified on a property that
allows this parameter, the default value is REQ-PARTICIPANT.

Example:

ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com

4.2.17 RSVP Expectation

Parameter Name: RSVP

Purpose: To specify whether there is an expectation of a favor of a
reply from the calendar user specified by the property value.

Format Definition: The property parameter is defined by the following
notation:

rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
; Default is FALSE

Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the expectation of a
reply from the calendar user specified by the property value. This
parameter is used by the "Organizer" to request a participation
status reply from an "Attendee" of a group scheduled event or to-do.
If not specified on a property that allows this parameter, the
default value is FALSE.

Example:

ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com

4.2.18 Sent By

Parameter Name: SENT-BY

Purpose: To specify the calendar user that is acting on behalf of the
calendar user specified by the property.

Format Definition: The property parameter is defined by the following
notation:

sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE

Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the calendar user
that is acting on behalf of the calendar user specified by the
property. The parameter value MUST be a MAILTO URI as defined in [RFC
1738]. The individual calendar address parameter values MUST each be
specified in a quoted-string.

Example:

ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com

4.2.19 Time Zone Identifier

Parameter Name: TZID

Purpose: To specify the identifier for the time zone definition for a
time component in the property value.

Format Definition: This property parameter is defined by the
following notation:

tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF

tzidprefix = "/"

Description: The parameter MUST be specified on the "DTSTART",
"DTEND", "DUE", "EXDATE" and "RDATE" properties when either a DATE-
TIME or TIME value type is specified and when the value is not either
a UTC or a "floating" time. Refer to the DATE-TIME or TIME value type
definition for a description of UTC and "floating time" formats. This
property parameter specifies a text value which uniquely identifies
the "VTIMEZONE" calendar component to be used when evaluating the
time portion of the property. The value of the TZID property
parameter will be equal to the value of the TZID property for the
matching time zone definition. An individual "VTIMEZONE" calendar
component MUST be specified for each unique "TZID" parameter value
specified in the iCalendar object.

The parameter MUST be specified on properties with a DATE-TIME value
if the DATE-TIME is not either a UTC or a "floating" time.

The presence of the SOLIDUS character (US-ASCII decimal 47) as a
prefix, indicates that this TZID represents a unique ID in a globally
defined time zone registry (when such registry is defined).

Note: This document does not define a naming convention for time
zone identifiers. Implementers may want to use the naming
conventions defined in existing time zone specifications such as
the public-domain Olson database [TZ]. The specification of
globally unique time zone identifiers is not addressed by this
document and is left for future study.

The following are examples of this property parameter:

DTSTART;TZID=US-Eastern:19980119T020000

DTEND;TZID=US-Eastern:19980119T030000

The TZID property parameter MUST NOT be applied to DATE-TIME or TIME
properties whose time values are specified in UTC.

The use of local time in a DATE-TIME or TIME value without the TZID
property parameter is to be interpreted as a local time value,
regardless of the existence of "VTIMEZONE" calendar components in the
iCalendar object.

For more information see the sections on the data types DATE-TIME and
TIME.

4.2.20 Value Data Types

Parameter Name: VALUE

Purpose: To explicitly specify the data type format for a property
value.

Format Definition: The "VALUE" property parameter is defined by the
following notation:

valuetypeparam = "VALUE" "=" valuetype

valuetype = ("BINARY"
/ "BOOLEAN"
/ "CAL-ADDRESS"
/ "DATE"
/ "DATE-TIME"
/ "DURATION"
/ "FLOAT"
/ "INTEGER"
/ "PERIOD"
/ "RECUR"
/ "TEXT"
/ "TIME"
/ "URI"
/ "UTC-OFFSET"
/ x-name
; Some experimental iCalendar data type.
/ iana-token)
; Some other IANA registered iCalendar data type.

Description: The parameter specifies the data type and format of the
property value. The property values MUST be of a single value type.
For example, a "RDATE" property cannot have a combination of DATE-
TIME and TIME value types.

If the property's value is the default value type, then this
parameter need not be specified. However, if the property's default
value type is overridden by some other allowable value type, then
this parameter MUST be specified.

4.3 Property Value Data Types

The properties in an iCalendar object are strongly typed. The
definition of each property restricts the value to be one of the
value data types, or simply value types, defined in this section. The
value type for a property will either be specified implicitly as the
default value type or will be explicitly specified with the "VALUE"

parameter. If the value type of a property is one of the alternate
valid types, then it MUST be explicitly specified with the "VALUE"
parameter.

4.3.1 Binary

Value Name: BINARY

Purpose: This value type is used to identify properties that contain
a character encoding of inline binary data. For example, an inline
attachment of an object code might be included in an iCalendar
object.

Formal Definition: The value type is defined by the following
notation:

binary = *(4b-char) [b-end]
; A "BASE64" encoded character string, as defined by [RFC2045].

b-end = (2b-char "==") / (3b-char "=")

b-char = ALPHA / DIGIT / "+" / "/"

Description: Property values with this value type MUST also include
the inline encoding parameter sequence of ";ENCODING=BASE64". That
is, all inline binary data MUST first be character encoded using the
"BASE64" encoding method defined in [RFC2045]. No additional content
value encoding (i.e., BACKSLASH character encoding) is defined for
this value type.

Example: The following is an abridged example of a "BASE64" encoded
binary value data.

ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY
JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
<...remainder of "BASE64" encoded binary data...>

4.3.2 Boolean

Value Name: BOOLEAN

Purpose: This value type is used to identify properties that contain
either a "TRUE" or "FALSE" Boolean value.

Formal Definition: The value type is defined by the following
notation:

boolean = "TRUE" / "FALSE"

Description: These values are case insensitive text. No additional
content value encoding (i.e., BACKSLASH character encoding) is
defined for this value type.

Example: The following is an example of a hypothetical property that
has a BOOLEAN value type:

GIBBERISH:TRUE

4.3.3 Calendar User Address

Value Name: CAL-ADDRESS

Purpose: This value type is used to identify properties that contain
a calendar user address.

Formal Definition: The value type is as defined by the following
notation:

cal-address = uri

Description: The value is a URI as defined by [RFC1738] or any other
IANA registered form for a URI. When used to address an Internet
email transport address for a calendar user, the value MUST be a
MAILTO URI, as defined by [RFC1738]. No additional content value
encoding (i.e., BACKSLASH character encoding) is defined for this
value type.

Example:

ATTENDEE:MAILTO:jane_doe@host.com

4.3.4 Date

Value Name: DATE

Purpose: This value type is used to identify values that contain a
calendar date.

Formal Definition: The value type is defined by the following
notation:

date = date-value

date-value = date-fullyear date-month date-mday
date-fullyear = 4DIGIT

date-month = 2DIGIT ;01-12
date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
;based on month/year

Description: If the property permits, multiple "date" values are
specified as a COMMA character (US-ASCII decimal 44) separated list
of values. The format for the value type is expressed as the [ISO
8601] complete representation, basic format for a calendar date. The
textual format specifies a four-digit year, two-digit month, and
two-digit day of the month. There are no separator characters between
the year, month and day component text.

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

Example: The following represents July 14, 1997:

19970714

4.3.5 Date-Time

Value Name: DATE-TIME

Purpose: This value type is used to identify values that specify a
precise calendar date and time of day.

Formal Definition: The value type is defined by the following
notation:

date-time = date "T" time ;As specified in the date and time
;value definitions

Description: If the property permits, multiple "date-time" values are
specified as a COMMA character (US-ASCII decimal 44) separated list
of values. No additional content value encoding (i.e., BACKSLASH
character encoding) is defined for this value type.

The "DATE-TIME" data type is used to identify values that contain a
precise calendar date and time of day. The format is based on the
[ISO 8601] complete representation, basic format for a calendar date
and time of day. The text format is a concatenation of the "date",
followed by the LATIN CAPITAL LETTER T character (US-ASCII decimal
84) time designator, followed by the "time" format.

The "DATE-TIME" data type expresses time values in three forms:

The form of date and time with UTC offset MUST NOT be used. For
example, the following is not valid for a date-time value:

DTSTART:19980119T230000-0800 ;Invalid time format

FORM #1: DATE WITH LOCAL TIME

The date with local time form is simply a date-time value that does
not contain the UTC designator nor does it reference a time zone. For
example, the following represents Janurary 18, 1998, at 11 PM:

DTSTART:19980118T230000

Date-time values of this type are said to be "floating" and are not
bound to any time zone in particular. They are used to represent the
same hour, minute, and second value regardless of which time zone is
currently being observed. For example, an event can be defined that
indicates that an individual will be busy from 11:00 AM to 1:00 PM
every day, no matter which time zone the person is in. In these
cases, a local time can be specified. The recipient of an iCalendar
object with a property value consisting of a local time, without any
relative time zone information, SHOULD interpret the value as being
fixed to whatever time zone the ATTENDEE is in at any given moment.
This means that two ATTENDEEs, in different time zones, receiving the
same event definition as a floating time, may be participating in the
event at different actual times. Floating time SHOULD only be used
where that is the reasonable behavior.

In most cases, a fixed time is desired. To properly communicate a
fixed time in a property value, either UTC time or local time with
time zone reference MUST be specified.

The use of local time in a DATE-TIME value without the TZID property
parameter is to be interpreted as floating time, regardless of the
existence of "VTIMEZONE" calendar components in the iCalendar object.

FORM #2: DATE WITH UTC TIME

The date with UTC time, or absolute time, is identified by a LATIN
CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
designator, appended to the time value. For example, the following
represents January 19, 1998, at 0700 UTC:

DTSTART:19980119T070000Z

The TZID property parameter MUST NOT be applied to DATE-TIME
properties whose time values are specified in UTC.

FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE

The date and local time with reference to time zone information is
identified by the use the TZID property parameter to reference the
appropriate time zone definition. TZID is discussed in detail in the
section on Time Zone. For example, the following represents 2 AM in
New York on Janurary 19, 1998:

DTSTART;TZID=US-Eastern:19980119T020000

Example: The following represents July 14, 1997, at 1:30 PM in New
York City in each of the three time formats, using the "DTSTART"
property.

DTSTART:19970714T133000 ;Local time
DTSTART:19970714T173000Z ;UTC time
DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time
; zone reference

A time value MUST ONLY specify 60 seconds when specifying the
periodic "leap second" in the time value. For example:

COMPLETED:19970630T235960Z

4.3.6 Duration

Value Name: DURATION

Purpose: This value type is used to identify properties that contain
a duration of time.

Formal Definition: The value type is defined by the following
notation:

dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)

dur-date = dur-day [dur-time]
dur-time = "T" (dur-hour / dur-minute / dur-second)
dur-week = 1*DIGIT "W"
dur-hour = 1*DIGIT "H" [dur-minute]
dur-minute = 1*DIGIT "M" [dur-second]
dur-second = 1*DIGIT "S"
dur-day = 1*DIGIT "D"

Description: If the property permits, multiple "duration" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values. The format is expressed as the [ISO 8601] basic format for
the duration of time. The format can represent durations in terms of
weeks, days, hours, minutes, and seconds.

No additional content value encoding (i.e., BACKSLASH character
encoding) are defined for this value type.

Example: A duration of 15 days, 5 hours and 20 seconds would be:

P15DT5H0M20S

A duration of 7 weeks would be:

P7W

4.3.7 Float

Value Name: FLOAT

Purpose: This value type is used to identify properties that contain
a real number value.

Formal Definition: The value type is defined by the following
notation:

float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]

Description: If the property permits, multiple "float" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values.

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

Example:

1000000.0000001
1.333
-3.14

4.3.8 Integer

Value Name:INTEGER

Purpose: This value type is used to identify properties that contain
a signed integer value.

Formal Definition: The value type is defined by the following
notation:

integer = (["+"] / "-") 1*DIGIT

Description: If the property permits, multiple "integer" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values. The valid range for "integer" is -2147483648 to
2147483647. If the sign is not specified, then the value is assumed
to be positive.

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

Example:

1234567890
-1234567890
+1234567890
432109876

4.3.9 Period of Time

Value Name: PERIOD

Purpose: This value type is used to identify values that contain a
precise period of time.

Formal Definition: The data type is defined by the following
notation:

period = period-explicit / period-start

period-explicit = date-time "/" date-time
; [ISO 8601] complete representation basic format for a period of
; time consisting of a start and end. The start MUST be before the
; end.

period-start = date-time "/" dur-value
; [ISO 8601] complete representation basic format for a period of
; time consisting of a start and positive duration of time.

Description: If the property permits, multiple "period" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values. There are two forms of a period of time. First, a period
of time is identified by its start and its end. This format is
expressed as the [ISO 8601] complete representation, basic format for
"DATE-TIME" start of the period, followed by a SOLIDUS character
(US-ASCII decimal 47), followed by the "DATE-TIME" of the end of the
period. The start of the period MUST be before the end of the period.
Second, a period of time can also be defined by a start and a
positive duration of time. The format is expressed as the [ISO 8601]
complete representation, basic format for the "DATE-TIME" start of

the period, followed by a SOLIDUS character (US-ASCII decimal 47),
followed by the [ISO 8601] basic format for "DURATION" of the period.

Example: The period starting at 18:00:00 UTC, on January 1, 1997 and
ending at 07:00:00 UTC on January 2, 1997 would be:

19970101T180000Z/19970102T070000Z

The period start at 18:00:00 on January 1, 1997 and lasting 5 hours
and 30 minutes would be:

19970101T180000Z/PT5H30M

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

4.3.10 Recurrence Rule

Value Name: RECUR

Purpose: This value type is used to identify properties that contain
a recurrence rule specification.

Formal Definition: The value type is defined by the following
notation:

recur = "FREQ"=freq *(

; either UNTIL or COUNT may appear in a 'recur',
; but UNTIL and COUNT MUST NOT occur in the same 'recur'

( ";" "UNTIL" "=" enddate ) /
( ";" "COUNT" "=" 1*DIGIT ) /

; the rest of these keywords are optional,
; but MUST NOT occur more than once

( ";" "INTERVAL" "=" 1*DIGIT ) /
( ";" "BYSECOND" "=" byseclist ) /
( ";" "BYMINUTE" "=" byminlist ) /
( ";" "BYHOUR" "=" byhrlist ) /
( ";" "BYDAY" "=" bywdaylist ) /
( ";" "BYMONTHDAY" "=" bymodaylist ) /
( ";" "BYYEARDAY" "=" byyrdaylist ) /
( ";" "BYWEEKNO" "=" bywknolist ) /
( ";" "BYMONTH" "=" bymolist ) /
( ";" "BYSETPOS" "=" bysplist ) /
( ";" "WKST" "=" weekday ) /

( ";" x-name "=" text )
)

freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
/ "WEEKLY" / "MONTHLY" / "YEARLY"

enddate = date
enddate =/ date-time ;An UTC value

byseclist = seconds / ( seconds *("," seconds) )

seconds = 1DIGIT / 2DIGIT ;0 to 59

byminlist = minutes / ( minutes *("," minutes) )

minutes = 1DIGIT / 2DIGIT ;0 to 59

byhrlist = hour / ( hour *("," hour) )

hour = 1DIGIT / 2DIGIT ;0 to 23

bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )

weekdaynum = [([plus] ordwk / minus ordwk)] weekday

plus = "+"

minus = "-"

ordwk = 1DIGIT / 2DIGIT ;1 to 53

weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
;FRIDAY, SATURDAY and SUNDAY days of the week.

bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )

monthdaynum = ([plus] ordmoday) / (minus ordmoday)

ordmoday = 1DIGIT / 2DIGIT ;1 to 31

byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )

yeardaynum = ([plus] ordyrday) / (minus ordyrday)

ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366

bywknolist = weeknum / ( weeknum *("," weeknum) )

weeknum = ([plus] ordwk) / (minus ordwk)

bymolist = monthnum / ( monthnum *("," monthnum) )

monthnum = 1DIGIT / 2DIGIT ;1 to 12

bysplist = setposday / ( setposday *("," setposday) )

setposday = yeardaynum

Description: If the property permits, multiple "recur" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values. The value type is a structured value consisting of a list
of one or more recurrence grammar parts. Each rule part is defined by
a NAME=VALUE pair. The rule parts are separated from each other by
the SEMICOLON character (US-ASCII decimal 59). The rule parts are not
ordered in any particular sequence. Individual rule parts MUST only
be specified once.

The FREQ rule part identifies the type of recurrence rule. This rule
part MUST be specified in the recurrence rule. Valid values include
SECONDLY, to specify repeating events based on an interval of a
second or more; MINUTELY, to specify repeating events based on an
interval of a minute or more; HOURLY, to specify repeating events
based on an interval of an hour or more; DAILY, to specify repeating
events based on an interval of a day or more; WEEKLY, to specify
repeating events based on an interval of a week or more; MONTHLY, to
specify repeating events based on an interval of a month or more; and
YEARLY, to specify repeating events based on an interval of a year or
more.

The INTERVAL rule part contains a positive integer representing how
often the recurrence rule repeats. The default value is "1", meaning
every second for a SECONDLY rule, or every minute for a MINUTELY
rule, every hour for an HOURLY rule, every day for a DAILY rule,
every week for a WEEKLY rule, every month for a MONTHLY rule and
every year for a YEARLY rule.

The UNTIL rule part defines a date-time value which bounds the
recurrence rule in an inclusive manner. If the value specified by
UNTIL is synchronized with the specified recurrence, this date or
date-time becomes the last instance of the recurrence. If specified
as a date-time value, then it MUST be specified in an UTC time
format. If not present, and the COUNT rule part is also not present,
the RRULE is considered to repeat forever.

The COUNT rule part defines the number of occurrences at which to
range-bound the recurrence. The "DTSTART" property value, if

specified, counts as the first occurrence.

The BYSECOND rule part specifies a COMMA character (US-ASCII decimal
44) separated list of seconds within a minute. Valid values are 0 to
59. The BYMINUTE rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of minutes within an hour. Valid values
are 0 to 59. The BYHOUR rule part specifies a COMMA character (US-
ASCII decimal 44) separated list of hours of the day. Valid values
are 0 to 23.

The BYDAY rule part specifies a COMMA character (US-ASCII decimal 44)
separated list of days of the week; MO indicates Monday; TU indicates
Tuesday; WE indicates Wednesday; TH indicates Thursday; FR indicates
Friday; SA indicates Saturday; SU indicates Sunday.

Each BYDAY value can also be preceded by a positive (+n) or negative
(-n) integer. If present, this indicates the nth occurrence of the
specific day within the MONTHLY or YEARLY RRULE. For example, within
a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday
within the month, whereas -1MO represents the last Monday of the
month. If an integer modifier is not present, it means all days of
this type within the specified frequency. For example, within a
MONTHLY rule, MO represents all Mondays within the month.

The BYMONTHDAY rule part specifies a COMMA character (ASCII decimal
44) separated list of days of the month. Valid values are 1 to 31 or
-31 to -1. For example, -10 represents the tenth to the last day of
the month.

The BYYEARDAY rule part specifies a COMMA character (US-ASCII decimal
44) separated list of days of the year. Valid values are 1 to 366 or
-366 to -1. For example, -1 represents the last day of the year
(December 31st) and -306 represents the 306th to the last day of the
year (March 1st).

The BYWEEKNO rule part specifies a COMMA character (US-ASCII decimal
44) separated list of ordinals specifying weeks of the year. Valid
values are 1 to 53 or -53 to -1. This corresponds to weeks according
to week numbering as defined in [ISO 8601]. A week is defined as a
seven day period, starting on the day of the week defined to be the
week start (see WKST). Week number one of the calendar year is the
first week which contains at least four (4) days in that calendar
year. This rule part is only valid for YEARLY rules. For example, 3
represents the third week of the year.

Note: Assuming a Monday week start, week 53 can only occur when
Thursday is January 1 or if it is a leap year and Wednesday is
January 1.

The BYMONTH rule part specifies a COMMA character (US-ASCII decimal
44) separated list of months of the year. Valid values are 1 to 12.

The WKST rule part specifies the day on which the workweek starts.
Valid values are MO, TU, WE, TH, FR, SA and SU. This is significant
when a WEEKLY RRULE has an interval greater than 1, and a BYDAY rule
part is specified. This is also significant when in a YEARLY RRULE
when a BYWEEKNO rule part is specified. The default value is MO.

The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal
44) separated list of values which corresponds to the nth occurrence
within the set of events specified by the rule. Valid values are 1 to
366 or -366 to -1. It MUST only be used in conjunction with another
BYxxx rule part. For example "the last work day of the month" could
be represented as:

RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1

Each BYSETPOS value can include a positive (+n) or negative (-n)
integer. If present, this indicates the nth occurrence of the
specific occurrence within the set of events specified by the rule.

If BYxxx rule part values are found which are beyond the available
scope (ie, BYMONTHDAY=30 in February), they are simply ignored.

Information, not contained in the rule, necessary to determine the
various recurrence instance start time and dates are derived from the
Start Time (DTSTART) entry attribute. For example,
"FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
month or a time. This information would be the same as what is
specified for DTSTART.

BYxxx rule parts modify the recurrence in some manner. BYxxx rule
parts for a period of time which is the same or greater than the
frequency generally reduce or limit the number of occurrences of the
recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" reduces the
number of recurrence instances from all days (if BYMONTH tag is not
present) to all days in January. BYxxx rule parts for a period of
time less than the frequency generally increase or expand the number
of occurrences of the recurrence. For example,
"FREQ=YEARLY;BYMONTH=1,2" increases the number of days within the
yearly recurrence set from 1 (if BYMONTH tag is not present) to 2.

If multiple BYxxx rule parts are specified, then after evaluating the
specified FREQ and INTERVAL rule parts, the BYxxx rule parts are
applied to the current set of evaluated occurrences in the following
order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR,
BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are evaluated.

Here is an example of evaluating multiple BYxxx rule parts.

DTSTART;TZID=US-Eastern:19970105T083000
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
BYMINUTE=30

First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to arrive
at "every other year". Then, "BYMONTH=1" would be applied to arrive
at "every January, every other year". Then, "BYDAY=SU" would be
applied to arrive at "every Sunday in January, every other year".
Then, "BYHOUR=8,9" would be applied to arrive at "every Sunday in
January at 8 AM and 9 AM, every other year". Then, "BYMINUTE=30"
would be applied to arrive at "every Sunday in January at 8:30 AM and
9:30 AM, every other year". Then, lacking information from RRULE, the
second is derived from DTSTART, to end up in "every Sunday in January
at 8:30:00 AM and 9:30:00 AM, every other year". Similarly, if the
BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY or BYMONTH rule part were
missing, the appropriate minute, hour, day or month would have been
retrieved from the "DTSTART" property.

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

Example: The following is a rule which specifies 10 meetings which
occur every other day:

FREQ=DAILY;COUNT=10;INTERVAL=2

There are other examples specified in the "RRULE" specification.

4.3.11 Text

Value Name: TEXT

Purpose This value type is used to identify values that contain human
readable text.

Formal Definition: The character sets supported by this revision of
iCalendar are UTF-8 and US ASCII thereof. The applicability to other
character sets is for future work. The value type is defined by the
following notation.

text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
; Folded according to description above

ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
; \\ encodes \, \N or \n encodes newline
; \; encodes ;, \, encodes ,

TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
%x5D-7E / NON-US-ASCII
; Any character except CTLs not needed by the current
; character set, DQUOTE, ";", ":", "\", ","

Note: Certain other character sets may require modification of the
above definitions, but this is beyond the scope of this document.

Description: If the property permits, multiple "text" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values.

The language in which the text is represented can be controlled by
the "LANGUAGE" property parameter.

An intentional formatted text line break MUST only be included in a
"TEXT" property value by representing the line break with the
character sequence of BACKSLASH (US-ASCII decimal 92), followed by a
LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL LETTER
N (US-ASCII decimal 78), that is "\n" or "\N".

The "TEXT" property values may also contain special characters that
are used to signify delimiters, such as a COMMA character for lists
of values or a SEMICOLON character for structured values. In order to
support the inclusion of these special characters in "TEXT" property
values, they MUST be escaped with a BACKSLASH character. A BACKSLASH
character (US-ASCII decimal 92) in a "TEXT" property value MUST be
escaped with another BACKSLASH character. A COMMA character in a
"TEXT" property value MUST be escaped with a BACKSLASH character
(US-ASCII decimal 92). A SEMICOLON character in a "TEXT" property
value MUST be escaped with a BACKSLASH character (US-ASCII decimal
92). However, a COLON character in a "TEXT" property value SHALL NOT
be escaped with a BACKSLASH character.Example: A multiple line value
of:

Project XYZ Final Review
Conference Room - 3B
Come Prepared.

would be represented as:

Project XYZ Final Review\nConference Room - 3B\nCome Prepared.

4.3.12 Time

Value Name: TIME

Purpose: This value type is used to identify values that contain a
time of day.

Formal Definition: The data type is defined by the following
notation:

time = time-hour time-minute time-second [time-utc]

time-hour = 2DIGIT ;00-23
time-minute = 2DIGIT ;00-59
time-second = 2DIGIT ;00-60
;The "60" value is used to account for "leap" seconds.

time-utc = "Z"

Description: If the property permits, multiple "time" values are
specified by a COMMA character (US-ASCII decimal 44) separated list
of values. No additional content value encoding (i.e., BACKSLASH
character encoding) is defined for this value type.

The "TIME" data type is used to identify values that contain a time
of day. The format is based on the [ISO 8601] complete
representation, basic format for a time of day. The text format
consists of a two-digit 24-hour of the day (i.e., values 0-23), two-
digit minute in the hour (i.e., values 0-59), and two-digit seconds
in the minute (i.e., values 0-60). The seconds value of 60 MUST only
to be used to account for "leap" seconds. Fractions of a second are
not supported by this format.

In parallel to the "DATE-TIME" definition above, the "TIME" data type
expresses time values in three forms:

The form of time with UTC offset MUST NOT be used. For example, the
following is NOT VALID for a time value:

230000-0800 ;Invalid time format

FORM #1 LOCAL TIME

The local time form is simply a time value that does not contain the
UTC designator nor does it reference a time zone. For example, 11:00
PM:

230000

Time values of this type are said to be "floating" and are not bound
to any time zone in particular. They are used to represent the same
hour, minute, and second value regardless of which time zone is
currently being observed. For example, an event can be defined that
indicates that an individual will be busy from 11:00 AM to 1:00 PM
every day, no matter which time zone the person is in. In these
cases, a local time can be specified. The recipient of an iCalendar
object with a property value consisting of a local time, without any
relative time zone information, SHOULD interpret the value as being
fixed to whatever time zone the ATTENDEE is in at any given moment.
This means that two ATTENDEEs may participate in the same event at
different UTC times; floating time SHOULD only be used where that is
reasonable behavior.

In most cases, a fixed time is desired. To properly communicate a
fixed time in a property value, either UTC time or local time with
time zone reference MUST be specified.

The use of local time in a TIME value without the TZID property
parameter is to be interpreted as a local time value, regardless of
the existence of "VTIMEZONE" calendar components in the iCalendar
object.

FORM #2: UTC TIME

UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z
suffix character (US-ASCII decimal 90), the UTC designator, appended
to the time value. For example, the following represents 07:00 AM
UTC:

070000Z

The TZID property parameter MUST NOT be applied to TIME properties
whose time values are specified in UTC.

FORM #3: LOCAL TIME AND TIME ZONE REFERENCE

The local time with reference to time zone information form is
identified by the use the TZID property parameter to reference the
appropriate time zone definition. TZID is discussed in detail in the
section on Time Zone.

Example: The following represents 8:30 AM in New York in Winter, five
hours behind UTC, in each of the three formats using the "X-
TIMEOFDAY" non-standard property:

X-TIMEOFDAY:083000

X-TIMEOFDAY:133000Z

X-TIMEOFDAY;TZID=US-Eastern:083000

4.3.13 URI

Value Name: URI

Purpose: This value type is used to identify values that contain a
uniform resource identifier (URI) type of reference to the property
value.

Formal Definition: The data type is defined by the following
notation:

uri = <As defined by any IETF RFC>

Description: This data type might be used to reference binary
information, for values that are large, or otherwise undesirable to
include directly in the iCalendar object.

The URI value formats in RFC1738, RFC2111 and any other IETF
registered value format can be specified.

Any IANA registered URI format can be used. These include, but are
not limited to, those defined in RFC1738 and RFC2111.

When a property parameter value is a URI value type, the URI MUST be
specified as a quoted-string value.

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

Example: The following is a URI for a network file:

http://host1.com/my-report.txt

4.3.14 UTC Offset

Value Name: UTC-OFFSET

Purpose: This value type is used to identify properties that contain
an offset from UTC to local time.

Formal Definition: The data type is defined by the following
notation:

utc-offset = time-numzone ;As defined above in time data type

time-numzone = ("+" / "-") time-hour time-minute [time-
second]

Description: The PLUS SIGN character MUST be specified for positive
UTC offsets (i.e., ahead of UTC). The value of "-0000" and "-000000"
are not allowed. The time-second, if present, may not be 60; if
absent, it defaults to zero.

No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type.

Example: The following UTC offsets are given for standard time for
New York (five hours behind UTC) and Geneva (one hour ahead of UTC):

-0500

+0100

4.4 iCalendar Object

The Calendaring and Scheduling Core Object is a collection of
calendaring and scheduling information. Typically, this information
will consist of a single iCalendar object. However, multiple
iCalendar objects can be sequentially grouped together. The first
line and last line of the iCalendar object MUST contain a pair of
iCalendar object delimiter strings. The syntax for an iCalendar
object is as follows:

icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
icalbody
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容