EN
返回档案库

案例库 · 软件与 IT · 技术决策 · 1998–2009

iCalendar让所有日历都讲同一种纯文本格式,邀请因此畅通无阻

IETF的iCalendar(RFC 5545)定义了事件和忙闲状态的统一纯文本格式;Outlook注册了.ics和webcal,因此会议邀请变得通用。

IETF · Microsoft

解法

在1990年代,每个日历应用都以自己的方式存储事件,因此使用不同软件的两个人无法交换会议。1998年,IETF的日历和调度工作组制定了iCalendar,这是一种用于表示和交换日历及调度信息(如事件、待办事项、日记条目和忙闲状态)的数据格式,独立于任何特定的日历服务或协议。

设计选择是平凡无奇。iCalendar文件是纯文本,MIME类型为text/calendar,结构简单:BEGIN:VCALENDAR,VEVENT块包含开始和结束时间等。任何具备文本读取器的客户端都能解析它,这意味着没有供应商需要许可库或逆向工程竞争对手才能参与。

该格式依托会议邀请而普及。微软的Outlook注册了.ics和.vcs扩展名以及webcal://和webcals://协议,当它打开此类文件时,会将其解释为日历文件夹或日历对象——将电子邮件邀请变成Outlook用户可以接受、编辑或提出修改建议的事件。

生效的原因

  • 纯文本意味着客户端可以用已有的工具解析它。
  • text/calendar MIME类型使邀请能通过电子邮件传播。
  • 服务独立性让每个供应商可以保留自己的日历应用。
  • IETF免费发布意味着没有许可或专利障碍。
取得的成效一种所有客户端都能读取的纯文本格式利落

可借鉴之处

当格式既平淡又普适时,互通标准才能胜出——纯文本加上注册的MIME类型——这样每个供应商都能实现它,同时保留自己的界面。

后续进展

.ics会议邀请成为日历跨供应商交换事件的方式;2009年9月发布的RFC 5545仍然是定义该格式的标准,Outlook对.ics和webcal的注册表明它在客户端中嵌入得有多深。

资料来源

发现哪里写错了?告诉我们。

相关案例