iCalendar 日程

又称: VEVENT, 日历二维码, ICS 日程, 日程二维码

定义

iCalendar 日程是一段以 BEGIN:VEVENT 开头的标准文本块,用来描述会议或预约。编码进二维码后,手机可以把它添加到日历中。

日程文本长什么样

iCalendar 日程是介于 BEGIN:VEVENT 和 END:VEVENT 之间的一组带标签的行。该格式由 2009 年发布的 RFC 5545 定义,与 .ics 日历文件使用的是同一种格式。

一个二维码大小的示例:BEGIN:VEVENT、SUMMARY:Bread baking class、DTSTART:20261015T170000Z、DTEND:20261015T190000Z、LOCATION:Maple Street Bakery, Portland、END:VEVENT。完整的日历文件会用 BEGIN:VCALENDAR 包住日程,并添加 UID 和 DTSTAMP 等字段,但二维码为节省空间,往往只带日程块。

  • SUMMARY:日程标题
  • DTSTART 和 DTEND:开始和结束时间,格式为 YYYYMMDDTHHMMSS
  • LOCATION:地点或地址
  • DESCRIPTION:较长的备注
  • 末尾的 Z 表示该时间为 UTC 时间

把时间写对

用 UTC 时间并在末尾加 Z,是让日程对每个人都显示在正确本地时间的最简单办法。没有 Z 的时间被当作浮动的本地时间,对其他时区的人可能发生偏移,而带名称的时区需要额外的数据,会让二维码更大。

全天日程可以使用只含日期的值,例如 DTSTART;VALUE=DATE:20261015。

支持情况与替代方案

自带相机应用对日程码的支持各不相同;有些会提示直接添加日程,另一些则只显示文本,或者需要扫描应用。印刷之前,最好在你的受众使用的手机上检查一下。

常见的替代办法,是让二维码链接到托管的 .ics 文件,或带有“添加到日历”按钮的活动页面。链接还允许在二维码印出之后更正时间或地点。

常见问题

二维码能把日程添加到我的日历吗?

能。把日程编码成 iCalendar 的 VEVENT 块,支持它的手机会提示添加。支持情况不一,所以指向 .ics 文件的链接是可靠的备选方案。

日历时间末尾的 Z 是什么意思?

它表示该时间是 UTC 时间。日历应用随后会把它转换成每个人的本地时区。

为什么我的日历二维码把日程添加到了错误的时间?

时间很可能是不带 Z 或时区写的,所以在扫描的手机上被当作本地时间来读取。请用 UTC 时间并在末尾加 Z。

来源与标准

全部术语