本帖最后由 java 于 2018-5-7 15:11 编辑
iCalendar,简称“iCal”,是“日历数据交换”的标准(RFC 2445),该标准提供了一种公共的数据格式用于存储关于日历方面的信息,比如事件、约定、待办事项等。它不仅允许用户通过电子邮件发送会议或者待办事件等,也允许独立使用,而不局限于某种传输协议。
iCal又称iCalendar,是一种标准的互联网日历格式,让用户能够在各种计算机和各种程序之间创建和共享电子日历。
随着这种格式日益普及,许多公司都选择了使用iCal标准。苹果公司的iCal(一种在Mac OS X操作系统上运行的个人日历应用程序)就是使用该格式的众多程序之一。这类程序还有Mozilla Sunbird和Microsoft Outlook。
iCalendar是“日历数据交换”的标准(RFC 2445)。 此标准有时指的是“iCal”,即苹果公司的出品的一款同名日历软件(见iCal),这个软件也是此标准的一种实现方式。
iCalendar允许用户通过电子邮件的方式发送“会议请求”或“任务”。收信人使用支持iCalendar邮件客户端,便可以很方便地回应发件人,接受请求或另外提议一个新的会议时间。
iCalendar已得到很多产品的支持。通常情况下,iCalendar数据是使用电子邮件交换,但它也可以独立使用,而不局限於某种传输协议。例如,可以通过WebDav服务器或SyncML来进行共享与修改。简单的网页服务器(只使用HTTP协议)也常常被用来分发公共事件的iCalendar数据,或发布个人的时间谋划安排。发布者可以使用hCalendar把iCalendar数据嵌入到网页中。(hCalendar是一种通过(X)HTML来表现iCalendar的微格式)
vCalendar
vCalendar也是一种日历数据交换格式,乃iCalendar的前身,为因特网邮件联盟(IMC)所发布。
iCalendar是“日历数据交换”的标准(RFC 2445)。 此标准有时指的是“iCal”,即苹果公司的出品的一款同名日历软件(见iCal),这个软件也是此标准的一种实现方式。
软件名称icalendar开发商苹果公司软件平台WebDav服务器或SyncML软件版本RFC 5545
iCalendar允许用户通过电子邮件的方式发送“会议请求”或“任务”。收信人使用支持iCalendar邮件客户端,便可以很方便地回应发件人,接受请求或另外提议一个新的会议时间。
iCalendar已得到很多产品的支持。通常情况下,iCalendar数据是使用电子邮件交换,但它也可以独立使用,而不局限于某种传输协议。例如,可以通过WebDav服务器或SyncML来进行共享与修改。简单的网页服务器(只使用HTTP协议)也常常被用来分发公共事件的iCalendar数据,或发布个人的时间谋划安排。发布者可以使用hCalendar把iCalendar数据嵌入到网页中。(hCalendar是一种通过(X)HTML来表现iCalendar的微格式)
在2009年9月,RFC 5545替换 RFC 2445 作为最新的标准。
https://en.wikipedia.org/wiki/ICalendar
iCalendar 日历文件格式 扩展名: .ics the file format is specified in a proposed internet standard (RFC 5545) for calendar data exchange.
iCalendar is used and supported by a large number of products, including Google Calendar, Apple Calendar (formerly iCal), IBM Notes (formerly Lotus Notes),[2] Yahoo! Calendar, Evolution (software), eM Client, Lightning extension for Mozilla Thunderbird and SeaMonkey, and partially by Microsoft Outlook and Novell GroupWise.
iCal 是苹果电脑公司出品的一个日程管理应用程序.
The first line must be BEGIN:VCALENDAR, and the last line must be END:VCALENDAR; the contents between these lines is called the "icalbody".
The second line VERSION:2.0 indicates that the data is in iCalendar format. VERSION:1.0 was used to specify that data is in the old vCalendar format. The body of the iCalendar object (the icalbody) is made up of a list of calendar properties and one or more calendar components. The calendar properties apply to the entire calendar. The calendar components are several calendar properties which create a calendar schematic (design). For example, the calendar component can specify an event, a to-do list, a journal entry, time zone information, or free/busy time information, or an alarm. Empty lines are not allowed in some versions of usage (Google calendar). Here is a simple example of an iCalendar object, "Bastille Day Party" event which occurs July 14, 1997 17:00 (UTC) through July 15, 1997 03:59:59 (UTC):
- 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
复制代码 There are many different types of components which can be used in iCalendar, as described below.
Events (VEVENT)- Events (VEVENT)[edit]
- VEVENT describes an event, which has a scheduled amount of time on a calendar. Normally, when a user accepts the calendar event, this will cause that time to be considered busy.[13] A VEVENT may include a VALARM which allows an alarm. Such events have a DTSTART which sets a starting time, and a DTEND which sets an ending time. If the calendar event is recurring, DTSTART sets up the start of the first event.
- A VALARM code (reminder 1 day before):
- BEGIN:VALARM
- TRIGGER:-PT1440M
- ACTION:DISPLAY
- DESCRIPTION:Reminder
- END:VALARM
- VEVENT also is used for calendar events without a specific time, such as anniversaries and daily reminders.[14] If the user needs to send in a cancellation for an event, the UID should be the same as the original event, and the component properties should be set to cancel Ex.
- METHOD:CANCEL
- STATUS:CANCELLED
- For sending an UPDATE for an event the UID should match the original UID. The other component property to be set is:
- SEQUENCE:<Num of Update>
- I.e., for the first update:
- SEQUENCE:1
- In Microsoft Outlook, the SUMMARY corresponds to the "Subject" entry in the "Appointment" form, and DESCRIPTION to the descriptive text below it. In addition, Outlook 2002 and Outlook 2003 demand a UID and a DTSTAMP.
复制代码
To-do (VTODO)
Journal entry (VJOURNAL)
Free/busy time (VFREEBUSY)
Other component typesOther component types include VTIMEZONE (time zones) and VALARM (alarms). Some components can include other components (VALARM is often included in other components).
Distributing updatesThe UID field distributes updates when a scheduled event changes. When the event is first generated a globally unique identifier is created. If a later event is distributed with the same UID, it replaces the original one.[20] Calendar extensionsvCalendar and iCalendar support private software extensions, with a "X-" prefix, a number of which are in common usage.
Representations
xCal Main article: xCal
xCal is an XML representation of iCalendar data, as defined in RFC 6321. jCaljCal is a JSON representation of iCalendar data, as defined in RFC 7265.
|