跳到正文

日历添加链接与 ICS 生成

Add-to-Calendar & ICS

生成 Google、Outlook.com、Office 365 和 Yahoo 的日历添加链接,外加一份 Apple 日历和 Outlook 桌面版都读得懂的 .ics 文件。

一个事件,写成两种形式:每个桌面客户端都能读的 .ics 文件,以及四个"添加到日历"链接,分别打开 Google、Outlook.com、Office 365 和 Yahoo 并把字段填好。RFC 5545 里别扭的部分——全天事件的结束日期、重复规则、提醒——由这里处理,不留给写邮件的人。

🔒 完全在你的浏览器里运行calendaricseventgenerator

日程内容

重复

加到日历

这些链接只是打开各家自己的日程编辑页并把字段填好;不按保存,就什么都不会建出来。

.ics 文件

Apple 日历、Outlook 桌面版、Thunderbird 以及其他客户端都读这个格式。附到邮件里,它就是一份邀请。

时间写成 UTC,而不是带 TZID。TZID 只有在旁边还有一段装着该时区夏令时规则的 VTIMEZONE 时才算数,写错的 TZID 比不写更糟——用你浏览器自带的时区数据在这里换算一次,是准的。

怎么用

  1. 填写事件

    标题、开始、时长、地点。时区默认是你的,可以改——换算在这里做,做一次。

  2. 需要就加重复或提醒

    每天、工作日、每周、每月、每年,可选次数。提醒写成 VALARM,桌面客户端遵守它,网页链接大多忽略它。

  3. 发链接,或附文件

    聊天消息适合链接;邮件适合 .ics,在邮件里它变成收件人一键就能接受的邀请。

常见问题

点链接就创建事件了吗?

没有。它打开那家服务商自己的事件编辑器,字段已填好。对方按保存之前什么都不存在,这也是链接在对方那边不可能悄悄失败的原因。

文件为什么用 UTC 而不是我的时区?

`TZID` 只有在文件同时带有那个时区完整夏令时历史的 `VTIMEZONE` 块时才有意义,而一个错误的 VTIMEZONE 比没有更有害。用你浏览器自己的时区数据库在这里换算一次是精确的,也不需要那样的块。

我的一天事件在日历里占了两天

RFC 5545 规定全天事件的结束日期是不含的——5 号一天的事件结束于 6 号。写成 5 号的工具生成的事件看起来短半天;这里写 6 号,所以正确显示它的客户端显示一天。

能把几个事件放进一个文件吗?

这个页面不行——它每个文件写一个 VEVENT。一个系列用重复规则;一组无关的事件,每个做一个文件。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。