iCalendar
iCalendar是“日历数据交换”的标准(RFC 5545)。 此标准有时指的是“iCal”,即苹果公司的出品的一款同名日历软件(见iCal),这个软件也是此标准的一种实现方式。
iCalendar允许用户通过电子邮件的方式发送“会议请求”或“任务”。收信人使用支持iCalendar邮件客户端,便可以很方便地回应发件人,接受请求或另外提议一个新的会议时间。
iCalendar已得到很多产品的支持。通常情况下,iCalendar数据是使用电子邮件交换,但它也可以独立使用,而不局限于某种传输协议。例如,可以通过WebDav服务器或SyncML来进行共享与修改。简单的网页服务器(只使用HTTP协议)也常常被用来分发公共事件的iCalendar数据,或发布个人的时间谋划安排。发布者可以使用hCalendar把iCalendar数据嵌入到网页中。(hCalendar是一种通过(X)HTML来表现iCalendar的微格式)
iCalendar是由互联网工程任务组的日历与计划工作组设计(OpenText公司的Anik Ganguly主导),并由莲花公司的Frank Dawson和微软的Derik Stenerson发表。iCalendar本身是基于互联网邮件协会(IMC)的vCalendar开发设计而来的。它通常是以文件名后缀为.ics或.ifb的文本文件保存的。现有标准是于2009年九月发布的RFC 5545,上一个标准是RFC 2445。
以.ics为后缀名的文件(在Apple Mac系统中使用"iCal"类型代码),表示该文件包含了日历和计划信息。而以.ifb为后缀名的文件(在Apple Mac系统中使用"iFBf"类型代码),表示该文件包含 了空闲和忙碌时间信息。
通常iCalendar使用UTF-8字符编码;但也可以使用MIME中的charset参数来指其它的字符编码(如果它的传送协议支持MIME的话)。
在iCalendar文件中,每一行必须以CR+LF(十六进制代码为0D0A)为结尾。每一行不得超过75字节/八字节。如果一行数据长于这个限制,则必须换行;后面一行使用空格符(十六进制代码为20)或者制表符(十六进制代码为09)作开始,以表示本行内容是上面一行内容的继续。内容数据中的换行符,可以反斜杠符'/'后跟数字(UTF-8中为5C 6E或5C 4E)来表示。
iCalendar的MIME类型被定义为text/calendar。
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT UID:uid1@example.com DTSTAMP:19970714T170000Z ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR