CalWitness · local calendar comparison

Synthetic example / 人工示例
Generated from bundled invented calendars, without real account data. 仅使用人工构造的日历,无真实账户数据。 All examples / 示例目录

What changed in this calendar?

Before and after occurrences, matched by stable identity. A finite-window audit of saved ICS files; no guessed matches.

Comparison incomplete

Some input could not be compared reliably. Review the issues first. Reported differences, if any, are partial evidence; zero differences is not a clean result.

Comparison window

Start · included

End · excluded

Selection: occurrence start in either input, using [start,end) bounds. A matched counterpart may fall outside this window.

No floating-time interpretation zone was supplied.

0Removed
0Added
0Moved
0Duration changed
0Moved + duration
0Unchanged
1Issues

Issues that affect interpretation

errorDUPLICATE_IDENTITY

More than one master event has the same UID; no copy is selected.

After · VEVENT[5]

Known differences

No difference entries are available. The comparison remains incomplete.

Evidence and scope

Before source

Expansion
Complete for supported input in this window
Source VEVENTs
5
Occurrences retained for matching
5
Input bytes
988
Source SHA-256
be4bcd6531d863125af5ad1d12dc2d14d25fdb0503b1caf95d5af96fadbd24a6

After source

Expansion
Incomplete
Source VEVENTs
Not established (input incomplete)
Occurrences retained for matching
Not established (input incomplete)
Input bytes
1254
Source SHA-256
2b79ba7de0aa1f2d9194d27a7d930290d0f4685fd2f180caaff0a354737287f0

How to interpret this report

Duplicate or ambiguous identities are issues, not guessed matches. Inspect the original source component locally using its location and the source checksum.

Source occurrence counts include candidates retained outside the selected window for matching, including explicit overrides and expansion margins. The difference counts apply to the window.

Equivalent timezone representations of the same instant are not drift. A timezone change that shifts an instant appears as a move; unresolved time interpretation makes the comparison incomplete.

Date-only values remain calendar dates. Instant values are normalized for comparison. Titles, descriptions, attendees and reminders are outside this occurrence comparison.

Raw UIDs, calendar text and source filenames are omitted. UID digests, occurrence times and structural locations can still reveal information; treat this report as private unless reviewed.

Configured limits: input_bytes: 4194304 · events: 1000 · occurrences: 10000 · candidate_work: 200000 · worker_timeout_seconds: 10.0

Runtime provenance: python: 3.12.15 · icalendar: 7.3.0 · recurring_ical_events: 3.8.2 · tzdata: 2026.5 · python_dateutil: 2.9.0.post0 · x_wr_timezone: 2.0.1 · timezone_source: pinned tzdata and embedded VTIMEZONE