vcalendar中文版
- 格式:doc
- 大小:97.00 KB
- 文档页数:10
2.Vcalendar
2.1 编码特性
2.1.1 vcalendar 对象
一个vcalendar数据流可以包含一个或多个vcalendar对象。一个独立的vcalendar对象由begin标志开始:
BEGIN:VCALENDAR
由END结束:
END:VCALENDAR
Vcalendar对象包含日历和日程安排实体。他们可以使event事件,也可以是todo实体。
2.1.1.1 vEvent对象
一个vEvent对象是包含calendar和scheduling属性的集合,它定义了语法:
BEGIN:vEVENT
结束:
END:vEVENT
vEvent实体不能被嵌套在另一个vEvent或者vTodo实体里。如果他们之间x需要进行相关联,可以通过定义RELATED-TO属性来实现.
2.1.1.2 vTodo对象
vTodo对象包含在vCalendar之内。语法:
BEGIN:vTODO
结束:
END:vTODO
2.1.2 属性(Property)
属性用来定义描述与vcalendar 相关的event或todo事件的个人属性。属性的语法格式如下:
PropertyName [„;„ PropertyParameters] ‟:„ PropertyValue
例如:
DTSTART:19960415T083000
“DTSTART”是起始日期/时间属性,“19960415T083000”是ISO8601定义的该属性值
属性值也可以由属性参数表达式构成。例如:
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Don‟t forget to order Girl=
Scout cookies from Stacey today! //Full property parameter expression
上式也可以简写成:
DESCRIPTION;QUOTED-PRINTABLE:Don‟t forget to order Girl=
Scout cookies from Stacey today! //Full property parameter expression
2.1.3 分隔符(Delimiters)
2.1.4 编码(Encodings)
vCalendar默认7位编码方式。默认的编码方式可以通过使用“ENCODING”属性参数来修改。这个参数值可以是“BASE64”, “QUOTED-PRINTABLE”, 或者“8-bit”中的某一个。该参数可以用于任何属性,
2.1.5 字符集(Character Set)
默认为ASCII,默认的字符集可以通过使用“CHARSET”属性参数来改变,该参数可以用于任何属性,尽管对某些属性来说没有任何意义。
任何一个在因特网分配号码权威机构注册过的字符集都可以用这个参数来指定,例如ISO 8859-8 or the Latin/Hebrew就可以这样指定:
DESCRIPTION;CHARSET=ISO-8859-8:...
2.1.6 语言(language)
默认为美式英语。可以用“LANGUAGE”属性参数来修改。该属性值可以参照RFC1776。例如修改为加拿大语:
SUMMARY;LANGUAGE=fr-CA:...
2.1.7 日期和时间
所有 Vcalendar对象属性中的日期和时间的值,都由ISO8601规定的制式字符串表示。为防止发生时区混乱,应尽可能统一使用UTC时间,而不是当地时间。格式如下:
例如当地时间1996年4月15日上午8:30写为:
19960415T083000
如果用UTC来写,则是:
19960415T083000Z
当日期/时间不止一个时,应当连写,并用分号隔开,例如:
19960101T090000Z; 19960201T090000Z; 19960301T090000Z; 19960401T090000Z; ...
2.1.8 持续时间(Time Duration)
持续周期的表示方法:以P开头,Y表示年,M:月;W:周;D:天数;
具体时间序列以T开头,H表示小时,M:分钟;S:秒
例如:
P2Y10M15DT10H30M20S 2年10个月15天10小时30分钟20秒
PT1H30M 1小时30分
2.1.9 属性值定位
属性值一般内嵌在属性里,但是,有些情况下,把属性值作为一个单独的实体效率是比较高的。
属性参数“VALUE”可以覆盖属性值的“INLINE”定位。
当使用MIME email信息传递VCalendar时,属性值可以用一个包含“CONTENT-ID”或者“CID”值的独立的MIME实体来定位。另外,属性值还可以用“URL”值进行网络定位。
例:ATTACH;VALUE=URL:/dir_photos/my_photo.gif
2.1.10 二进制值
vCalendar支持二进制信息
2.1.11 重复的基本语法规则
Frequency:: interval::frequency modifier::end date OR duration
其中: frequency:描述重复事件的类型 ,如按月或者按周重复
Interval :描述重复频率 ,如每天或每三天等等
frequency modifier 可选项,包含频率信息
end date OR duration:end date 和duration 二选一
例子:W2 TU TH #4
W 是frequency,表示按周;2是interval 表示每两周重复一次,TU和TH分别表示周二和周四,属于频率信息,即周二周四各一次,#4是duration,表示共发生4次,周二周四加一块共8次。
2.1.11.1 按日重复规则 以“D”开头,例子:
每天一次共10次: D1 #10
每天重复一次,直到12/24/94 D1 19941224T000000Z
每隔一天,一直重复 D2 #0
每隔10天,重复5次 D10 #5
2.1.11.2 按周规则
以“W”开头,与日类似
每周一次共10次: W1 #10
每周重复一次,直到12/24/94 W1 19941224T000000Z
每隔一周,一直重复 W2 #0
每周二、四重复,重复5周 W1 TU TH #5
每隔一周的一、三、五重复,直到12/24/94为止 W2 MO WE FR 19941224T000000Z
2.1.11.3 按月规则
按月重复有两种类型,一种是“by-position”,一种是“by-day”
“by-position”,描述了本月中工作日发生的位置,有两种表示方法:
1+, 2+, ... 5+,本月中第一次、第二次、、、、第五次 发生
1-, 2-, ... 5- 本月中最后一次、倒数第二次、、、、、倒数第五次 发生
例如; 2+ FR SA 表示 本月第二个星期五和星期六
1- MO 本月最后一个周一
“by-position” 以“MP”开头,“by-day”以“MD”开头。“LD”表示最后一天。
每月第一个周五重复 ,重复10次: MP1 1+ FR #10
每月第一个周五重复,直到12/24/94结束 MP1 1+ FR 19941224T000000Z
每六个月一次,该月的第二个周一、二、三四、五重复,重复10次
MP6 2+ MO TU WE TH FR #10
每个月的第一天和最后一天重复,重复10次 MD1 1 LD #10 or MD1 1 1- #10
每隔18个月重复一次该月第10到15天重复,重复10次 MD18 10 11 12 13 14 15 #10
2.1.11.4 按年规则
有两种类型“by-month”“by-day”
“by-month”以“YM”开头
“by-day”以“YD”开头
例子
每年6、7月重复,重复10次 YM1 6 7 #10
三年一次,该年第1、100、200天重复,重复10次 YD3 1 100 200 #10
2.1.11.5 语法
{} 0 or more
[] 0 or 1
start ::=
digit ::= <0|1|2|3|4|5|6|7|8|9>
digits ::=
enddate ::= ISO 8601_date_time value(e.g., 19940712T101530Z)
interval ::=
duration ::= #
lastday ::= LD
plus ::= +
minus ::= -
daynumber ::= <1-31> [
daynumberlist ::= daynumber {
month ::= <1-12>
monthlist ::=
day ::= <1-366>
daylist ::=
occurrence ::= <1-5>
occurrencelist ::=
weekday ::=
weekdaylist ::=
daily ::= D
weekly ::= W
monthlybypos ::= MP
monthlybyday ::= MD
yearlybymonth ::= YM
yearlybyday ::= YD
2.2 vCalendar属性
这里的属性赋值出现在BEGIN:VCALENDAR之后,在BEGIN:VEVENT 或者BEGIN:VTODO之前,切记
2.2.1 夏令时 规则 Daylight Savings Rule
该属性由属性名“DAYLIGHT”标识。
2.2.2 地理位置 Geographic Position
属性名 “GEO”
该属性描述了创建该vCalendar对象的系统所在地理位置的相关信息。该属性记录了经度和纬度。
例如 : GEO:37.24,-17.87 东经37.24 南纬 17.87度
2.2.3 产品标识 Product Identifier
属性名 “PRODID”
例: PRODID:-//ABC Corporation//NONSGML My Product//EN
2.2.4 时区 Time Zone
属性名 TZ
该属性描述了创建该vCalendar对象的系统的时区,其属性值由ISO 8601指定。世界协调时以东为正,以西为负
例: TZ:-05
TZ:+05:30