跳到主要内容

用 ICS 日历事件文件,让别人两下加入日历

.ics 日历事件文件怎么生成,标题时间地点提醒重复规则一次填好,导入 Google 苹果 Outlook 都不出错,还能做网页加入日历按钮,本文讲清楚做法。

发布于 作者 李雷
#ics #日历 #iCalendar #活动邀请 #RRULE

用 ICS 日历事件文件,让别人两下加入日历

办一场线上讲座,把时间地点贴在邮件正文里,然后等着对方手动抄进日历,这是我以前的做法。结果是一半人记错了时区,另一半干脆忘了加。后来我改成附一个 .ics 文件,情况立刻不一样:收件人点一下,事件就带着正确的时间和提醒进了他们自己的日历。这篇文章讲清楚 .ics 是什么、怎么生成、怎么避开那几个常见的坑。

.ics 到底是什么文件

.ics 是 iCalendar 格式的纯文本文件,对应的标准是 RFC 5545。它不是图片也不是私有格式,就是一段能被人读懂的文字,里面装着一个或多个日历事件。Google 日历、苹果日历、Outlook、Thunderbird,凡是认这个标准的应用,拿到同一个文件都能正确解析,不用为每家单独做一份。

一份文件以 BEGIN:VCALENDAR 开头,中间放一段 VEVENT 描述事件本身。VEVENT 里有几个关键字段:DTSTART 和 DTEND 是开始和结束时间,SUMMARY 是标题,LOCATION 是地点,UID 是这条事件的唯一身份,DTSTAMP 是文件生成的时刻。提醒被包成一段 VALARM,重复规则写成一行 RRULE。理解了这几个字段,你就知道日历应用读到的是什么。

一份真实的 .ics 长什么样

下面是 ICS 日历事件生成器填好一场会议后导出的内容,会议名是「产品评审」,时间是 2026 年 6 月 20 日下午两点到三点,提前 15 分钟提醒:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Toolora//ICS Event Generator//ZH
BEGIN:VEVENT
UID:8f3c2a1e-2026@toolora.info
DTSTAMP:20260613T010000Z
DTSTART:20260620T140000
DTEND:20260620T150000
SUMMARY:产品评审
LOCATION:三号会议室
DESCRIPTION:第二季度路线图过审
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT15M
DESCRIPTION:产品评审
END:VALARM
END:VEVENT
END:VCALENDAR

注意 TRIGGER:-PT15M 这一行,它表示「开始前 15 分钟」,提前一整天就写成 -PT1440M。这套写法是 ISO 8601 的时间间隔表达,日历应用到点就用 SUMMARY 作为提示文字弹通知。

全天事件那条容易踩的规矩

很多人第一次手写 .ics 都会在全天事件上栽跟头。如果一个事件没有具体钟点,比如生日、公共假期、项目交付日,正确写法是 DTSTART;VALUE=DATE:20261225,不带时分。

真正的陷阱在结束日期:iCalendar 把 DTEND 当作「事件已经结束的那个早晨」,也就是不含当天。所以 12 月 25 日的单天全天事件,结束日期必须写 12 月 26 日。如果你把开始和结束都写成 25 日,事件会缩成空的,在某些应用里干脆不显示。生成器会自动替你补上后一天,但手写时务必记得这条。

重复规则和跨平台兼容

每天的站会、每月的发薪日、每年的周年纪念,不该是几百条独立条目。一行 RRULE:FREQ=WEEKLY 就告诉日历按每周的节奏自己把事件展开成一整个系列,你只需要在表单里选「每周」。同理 FREQ=DAILY、FREQ=MONTHLY、FREQ=YEARLY 分别对应每天、每月、每年。

跨平台这件事的关键是时区。浮动时间不带时区,导入方在哪个本地时钟就显示成几点,自己记事没问题,跨地区开会就会错位。参与者分散在不同城市时,要么打开 UTC 开关把时间锚定到协调世界时,要么在描述里写明时区。如果你不确定北京下午三点对应纽约几点,可以先用 时区转换工具算清楚,再回来填表单。

把它接进活动邀请和网页

.ics 最实用的两个场景,一个是活动邀请,一个是网页上的「加入日历」按钮。

活动邀请很直接:生成文件,附在群发邮件里。两百个人收到的是同一条正确条目,没有人需要复制日期。网页按钮稍微多一步:把生成的文本嵌进确认页或落地页,用户买完票、约完时段,点一下「加入日历」就把预约存进去,而不是关掉页面后忘得一干二净。因为整份文件由浏览器里的 JavaScript 拼出来,事件细节不上传服务器,只有用了「分享链接」时字段才会写进查询字符串,涉及敏感安排就用下载或复制,直接把文件发给对方。

填一张表单换一份合规、能跨平台导入、带提醒和重复规则的日历文件,比在邮件正文里贴一串文字可靠太多。下次你要约一群人,试试这个做法。


Made by Toolora · Updated 2026-06-13