跳到主要内容
AZ Tools

ICS 日历查看器与重复规则展开

.ics 文件是日历应用看得懂、而你看不懂的附件。用文本编辑器打开,只会看到被折行的内容、转义过的逗号,以及 RRULE:FREQ=MONTHLY;BYDAY=-1FR 这样的一行——它并不告诉你到底指哪几个星期五。 这个查看器会正确地还原折行,显示每个事件的时间、地点、组织者、参与者和状态,然后完成人脑算不出来的那部分:把重复规则展开成具体日期。每周一和周三、每月最后一个工作日、从某个开始日期起每隔一周的周二——你会直接看到日期列表,其中 EXDATE 排除的日期已被去掉,RDATE 追加的日期也已合并进来。 时间可以按文件中写的样子(事件本身的时区)显示,也可以换成你所在的时区或 UTC。重复按照标准规定在挂钟时间上展开,所以夏令时切换后 09:00 的会议仍然是 09:00,而不会平移一小时。 文件在你的浏览器中读取,不会上传任何内容。这一点在这里尤其重要:日历导出文件通常包含其他人的姓名和邮箱地址。

拖入或粘贴 .ics 文件即可查看。

使用方法

  1. 拖入 .ics 或 .ical 文件,或直接粘贴其文本。
  2. 查看事件列表:时间、时长、地点、组织者、参与者和状态。
  3. 对于重复事件,查看规则下方展开出来的实际日期。
  4. 切换时区,对比按原文、按本地时区和按 UTC 的显示结果。
  5. 需要时复制纯文本摘要,粘贴到别处。

常见问题

FREQ=MONTHLY;BYDAY=-1FR 这样的规则是什么意思?
每月最后一个星期五。这个工具不去讲解语法,而是直接把规则展开成日期列表——你真正想知道的就是这些日期。
支持 RRULE 的哪些部分?
支持 FREQ(每日、每周、每月、每年)、INTERVAL、COUNT、UNTIL、含 2TU 和 -1FR 这类序数的 BYDAY、含负数的 BYMONTHDAY、BYMONTH、BYSETPOS、WKST,以及 EXDATE 和 RDATE。较少使用的 BYYEARDAY、BYWEEKNO 和 BYHOUR 不做展开。
为什么夏令时切换后时间没有变?
因为标准把重复定义在挂钟时间上。每天 09:00 的会议,在切换前后都是 09:00;变化的是两次事件之间的实际间隔,而不是邀请上写的时间。
什么是浮动时间?
既没有时区标记、结尾也没有 Z 的开始时间。它表示无论在哪里读取都是同一个挂钟时刻,全天提醒和部分导出文件就是这样写的。
为什么我的文件里有些行从词中间断开?
该格式会把超过 75 个八位字节的行折到下一行,并以一个空格开头。查看器在解析之前会先把它们接回去,所以在编辑器里看起来错乱的描述,在这里显示是正确的。
我的日历会被上传吗?
不会。文件在你的浏览器中解析,不会发送到任何地方。日历文件通常列有其他人的姓名和邮箱,所以这一点比平时更重要。

相关工具