fixmint
ZH

如何用 .ics 文件把活动添加到任意日历

作者: · · 更新于 2026年11月8日 · 阅读约 5 分钟

.ics 文件是采用 iCalendar 格式的纯文本文件,格式定义见 RFC 5545,用来描述一个或多个活动。大多数日历应用都能打开它,因此你可以直接发送一个文件,而不必让别人自己输入日期、时间和地点。打开文件,或在日历设置里导入它,就能把活动连同标题、时间和提醒一起加进去。

日历活动发送一个任何人都能添加的活动免费使用

文件里有什么

.ics 文件就是纯文本。一个最简单的单次活动大致是这样的:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example//Calendar//EN
BEGIN:VEVENT
UID:[email protected]
DTSTAMP:20261103T090000Z
DTSTART:20261110T120000Z
DTEND:20261110T130000Z
SUMMARY:Team lunch
LOCATION:Cafe on Main Street
END:VEVENT
END:VCALENDAR

每一行都是一个属性,由名称和值组成。UID 必须是这个活动独有的,这样如果同一个活动收到两次,日历能识别出来。DTSTAMP 记录文件的创建时间,并且必须使用 UTC。DTSTART 和 DTEND 分别是开始和结束时间,SUMMARY 是标题。包含逗号、分号或反斜杠的文本值,前面要加一个反斜杠;描述里的换行写成 \n。

为什么一个文件到处都能用

RFC 5545 是通用标准,谷歌、苹果和微软 Outlook 的日历应用都能读取它。但它们对可选部分的处理并不完全一致,所以文件要保持简单:一个活动,一个清晰的标题,加上开始时间、结束时间,以及可选的地点。打开一个文件只会添加一个活动。订阅式日历则不同,它通过网址让日历保持更新。

大多数手机和电脑在你点击或打开文件时,会提示把它添加到日历。如果没有反应,就到日历应用里找导入选项。

时区和全天活动

时间是日历出错最常见的原因。时间有三种形式。

  • UTC。 以 Z 结尾的时间,比如 20261110T120000Z,在全世界都是同一时刻,各个日历会按查看者所在的时区显示。适合固定的时刻。
  • 指定时区。 DTSTART;TZID=Europe/Istanbul:20261110T150000 会让活动固定在该时区的下午 3 点,即使对方住在别处。适合与某个地点绑定的活动。
  • 浮动时间。 没有 Z、也没有时区的时间,比如 20261110T150000,每位查看者都会按自己的本地时间来读。这适合个人的每日提醒,但用在跨时区的会议上就会出错。为什么会议时间每年变两次介绍了常见的坑。

全天活动使用日期而不是时间:DTSTART;VALUE=DATE:20261110。结束日期是不包含在内的,也就是最后一天的次日。因此,11 月 10 日的一日活动应在 11 月 11 日结束。这里出错,活动就会延续到第二天。计算日期之间的天数解释了包含与不包含两种算法。

发送前先测试

在发给别人之前,先把文件导入你自己的日历,检查四件事:

  1. 标题和地点与你写的完全一致,没有多余的反斜杠,也没有缺少的逗号。
  2. 开始时间在你自己的时区里是正确的,与你想要的时间一致。
  3. 结束时间正确,全天活动尤其要检查,它应该在最后一天的次日结束。
  4. 在其他时区打开文件的人,看到的是同一时刻,这能发现你忘记设置的时区。

四项都通过后再发送。已经发给二十个人的文件出了错,比在自己的日历里发现错误要难修正得多。

提醒

提醒是放在活动内部的 VALARM 块。下面这个会在活动开始前 15 分钟发出通知:

BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT15M
DESCRIPTION:Reminder
END:VALARM

很多日历应用会采用导入文件中的提醒。也有一些会忽略它,改用用户自己的默认提醒,所以导入后最好检查一下活动。

用链接还是用文件

“添加到日历”的链接会打开日历自带的表单,并已填好详情,在任何浏览器里都能用。文件则可以离线使用,也能在任何读取 .ics 的应用中打开。不同的邮件程序和手机处理附件的方式不一样,有些要先下载文件,才会提示添加活动。如果大家要访问一个网页,就用链接;如果需要保存一份东西,就用文件。很多邀请两者都会附上。

带有参会人和回复功能的邀请则不同。它使用 METHOD:REQUEST,这来自 RFC 5546 的日程扩展,并期望收件人的日历把回复发回来。普通活动没有 method,或者使用 PUBLISH。如果只是和朋友办一次性的活动,普通文件就够用了。

在 fixmint 上怎么做

  1. 打开日历活动工具,输入标题,然后填写开始日期、开始时间、结束日期和结束时间。
  2. 如果是全天活动,勾选全天活动,并把结束日期设为包含在内的最后一天。文件会替你保存为不包含在内的结束时间。
  3. 添加地点和描述,并选择提醒:不提醒、提前 10 分钟、提前 1 小时或提前 1 天。
  4. 查看日历文件预览,然后点击下载 .ics。如果想用链接,则使用添加到 Google 日历或添加到 Outlook.com。
  5. 把文件导入你自己的日历,并完成“发送前先测试”中的四项检查。

常见问题

所有设备都能打开 .ics 文件吗?

大多数手机、电脑和日历应用都可以,但不同应用的添加方式有所不同。如果双击没有反应,就用日历内部的导入选项。

为什么我的活动显示的时间不对?

通常是时间没有设置时区,于是每个日历都按自己的本地时间来读,或者时区缺失。对于跨地区的活动,请使用 UTC 时间或指定时区。

做这种文件需要专门的软件吗?

不需要。只要写对相应的行,普通文本文件就行。但使用生成器可以避免时间格式和转义字符出错。

由 AI 辅助翻译自英文原文。

评论

    还没有评论。快来抢沙发。

    你的评分(可选)

    你的邮箱不会被显示或保存。

    AI-Era Starter Shelf 的封面AI-Era Starter Shelf

    三本实用电子书,内容涵盖人工智能、工作,以及机器学习的发展历程,打包购买比单本购买更划算。

    $9.99在 Gumroad 获取英文阅读