LOCAL ICALENDAR VIEWER

ICS 日历文件查看器

把日历文件变成可读的事件清单,展开 RRULE 重复实例,区分全天与具体时间,并检查 UID、DTSTAMP、日期顺序和重复规则。文件只在当前浏览器解析,不连接 Google、Apple、Outlook 或公司日历账户。

打开后可以做什么

按日期看真实实例

把每周、每月等 RRULE 在选定范围内展开,而不是只显示一条规则。

识别全天结束日

全天 DTEND 是不包含的终点,7 月 25 日到 28 日表示覆盖 25、26、27 日。

检查导入身份

UID 和 DTSTAMP 会影响日历应用判断新增、更新还是重复导入。

筛选后交付

导出当前筛选的 CSV、JSON,或把选中实例另存为单次 ICS。

首版不会联网补齐外部时区库。文件若使用命名时区却没有内嵌 VTIMEZONE,务必在最终导入的日历应用中核对。

上传一个或多个 .ics,或粘贴 iCalendar 文本。

全天 DTEND 不包含结束日

全天活动覆盖 7 月 25 至 27 日时,规范通常写 DTSTART:20260725、DTEND:20260728。不要再自行减一天后导入。

浮动时间与 UTC 含义不同

浮动时间按导入者本地时钟显示,UTC 则代表同一个绝对时刻。跨时区会议应保留明确时区并在目标日历核对。

重复展开有安全上限

没有 COUNT 或 UNTIL 的 RRULE 可能无限持续。页面只展开所选日期范围,最多显示 2,000 个实例,避免浏览器被异常文件拖慢。

RELATED TOOLS

查看全部工具 →

USE & REVIEW

ICS 日历查看 / 转 CSV JSON常见问题

查看全部工具指南 →

ICS 文件会上传或连接我的日历账户吗?

不会。iCalendar 解析、RRULE 展开、搜索和 CSV/JSON/ICS 生成都在当前浏览器完成。页面不要求 Google、Apple、Outlook 或 CalDAV 授权,也不会替你导入事件;关闭页面前请下载需要的结果。

为什么全天事件的结束日期看起来多了一天?

RFC 5545 中,全天事件的 DTEND 是不包含的终点。例如活动覆盖 7 月 25、26、27 日,通常写 DTSTART:20260725 和 DTEND:20260728。查看器会明确标注“结束日不包含”,不要为了显示三天而手工把原文件减一天。

UTC、命名时区和浮动本地时间有什么区别?

UTC 表示全球同一个绝对时刻;TZID 如 Asia/Shanghai 表示按指定地区规则解释;没有 Z 或 TZID 的浮动时间表示谁导入就按谁的本地时钟显示。跨地区会议最怕把浮动时间误当 UTC,正式导入前应在目标设备核对。

RRULE 重复事件为什么只展开一部分?

没有 COUNT 或 UNTIL 的规则可以无限持续。工具只在你选择的日期范围内展开,范围最多 5 年、结果最多 2,000 条,并为异常庞大的规则设置迭代上限。缩短日期范围可以更快定位需要的实例。

UID 和 DTSTAMP 缺失会有什么影响?

UID 用于让日历应用识别同一个逻辑事件,DTSTAMP 记录对象创建或修订相关时间。缺少它们不一定让每个应用立刻拒绝导入,但更新、取消和重复导入会变得不可靠。批量交付前应修复,而不是依赖某一个日历客户端的宽松容错。

下载“单次 ICS”会保留原重复规则和全部提醒吗?

不会。单次导出把当前选中的一个实例写成独立 VEVENT,便于分享具体时间,不保留原 RRULE、例外、VALARM、会议响应状态和全部厂商扩展。完整迁移或备份应保留原始 ICS,CSV/JSON 也只适合查看和数据整理。