CalWitness · synthetic examples
Inspect an ICS migration before trusting it.
These reports were generated by the real local comparison API from invented calendars. There is no upload field or server-side processing here. Run CalWitness locally for private files.
以下为真实比较代码生成的人工示例,不含真实账户数据。 本页没有上传功能或服务端处理;私人日历请在本地运行。
2026-10-01T00:00:00Z ≤ occurrence start < 2026-11-01T00:00:00Z, in either input.
The start is included; the end is excluded. Matched counterparts may lie outside the window. This is not a guarantee about every date or calendar property.
Migration differences
2 added · 1 removed · 1 moved · 2 duration changes · 1 unchanged.
A removed exclusion restores an instance. A lost override changes its time. Timed and all-day durations change, and a standalone event is replaced.
遗漏排除日期和单次例外,同时改变时长与单次事件。 查看前后时间、时长和匹配依据。
Open differences / 查看差异 JSONIncomplete: duplicate identity
1 issue · no clean result claimed.
A duplicate component prevents reliable expansion. The comparison reports the identity issue and suppresses differences, so failed expansion does not look like lost events.
同一身份出现重复组件,比较标记不完整。 零项差异不代表迁移成功。
Open incomplete report / 查看问题 JSONSource evidence / 示例来源
All inputs below are synthetic. The changed case compares before → after; the incomplete case compares before → duplicate.
Scope and local use / 边界与本地使用
Matches require stable UID and complete recurrence identity. No title or nearby-time guessing. Equivalent timezone instants are clean; unresolved interpretation is incomplete. Titles, reminders, attendees and other calendar properties are outside this comparison.
Reports omit raw UIDs, event text and source filenames, but dates, times, hashes and structural locations can still be sensitive. Review private reports before sharing.
匹配依赖稳定身份,不按标题或相近时间猜测。 时区表示等价不算漂移;无法确定的解释会标记不完整。报告仍可能暴露日程时间等信息。
Rebuild from the source checkout:
python docs/demo/build.py. No scripts, external assets or tracking on these pages.