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.

Occurrence differences found

Review the before and after values below. These findings apply only to this window.

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.

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

Issues that affect interpretation

No comparison issues were reported.

Occurrence differences

Removed · 1

Present before, absent after within this window.

Occurrence 4

UID identity

Before

UTC instant

Start
End
Duration
1 h
Source component
VEVENT[4] · Original or generated occurrence

After

No occurrence on this side of the selected window.

Identity and matching evidence
UID digest
sha256:686642dc7477495cdec4f3c14e362a3838198bc06d4e1126b057b5eb75d7b7d6
Full occurrence key
single
Match basis
UID identity. No match was inferred from a title or nearby time.
Added · 2

Absent before, present after within this window.

Occurrence 2

UID + recurrence identity

Before

No occurrence on this side of the selected window.

After

UTC instant

Start
End
Duration
1 h
Source component
VEVENT[0] · Original or generated occurrence
Identity and matching evidence
UID digest
sha256:242b939637cd1d803da46334dd5707b715928d30bdcf96ad4ab0b9520b71e0b4
Full occurrence key
2026-10-24T07:00:00Z
Match basis
UID + recurrence identity. No match was inferred from a title or nearby time.

Occurrence 5

UID identity

Before

No occurrence on this side of the selected window.

After

UTC instant

Start
End
Duration
1 h
Source component
VEVENT[3] · Original or generated occurrence
Identity and matching evidence
UID digest
sha256:6f98471565b5fdea13ec4087678daddcb1760be50a8d1f2fd44171530aa2cefd
Full occurrence key
single
Match basis
UID identity. No match was inferred from a title or nearby time.
Moved · 1

The matched occurrence starts at a different time.

Occurrence 3

UID + recurrence identity

Before

UTC instant

Start
End
Duration
1 h
Source component
VEVENT[1] · Recurrence override

After

UTC instant

Start
End
Duration
1 h
Source component
VEVENT[0] · Original or generated occurrence
Identity and matching evidence
UID digest
sha256:242b939637cd1d803da46334dd5707b715928d30bdcf96ad4ab0b9520b71e0b4
Full occurrence key
2026-10-25T08:00:00Z
Match basis
UID + recurrence identity. No match was inferred from a title or nearby time.
Duration changed · 2

The matched occurrence has a different duration.

Occurrence 1

UID identity

Before

UTC instant

Start
End
Duration
1 h
Source component
VEVENT[2] · Original or generated occurrence

After

UTC instant

Start
End
Duration
2 h
Source component
VEVENT[1] · Original or generated occurrence
Identity and matching evidence
UID digest
sha256:16cd63c3fd56c2542a39376562d61592d5c3a101ac719aef9257130aa25e18f5
Full occurrence key
single
Match basis
UID identity. No match was inferred from a title or nearby time.

Occurrence 6

UID identity

Before

Date-only event · end date is exclusive

Start
End
Duration
1 day
Source component
VEVENT[3] · Original or generated occurrence

After

Date-only event · end date is exclusive

Start
End
Duration
2 days
Source component
VEVENT[2] · Original or generated occurrence
Identity and matching evidence
UID digest
sha256:9ebecb8604d77894d9bf126ae3ae51b98bfa05e0f0ae92ddcdbd514dba3e082c
Full occurrence key
single
Match basis
UID identity. No match was inferred from a title or nearby time.

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
Complete for supported input in this window
Source VEVENTs
4
Occurrences retained for matching
6
Input bytes
696
Source SHA-256
4f4989b0dadc0f4bd534ced837d86b1e341fa3a58a1f51a0dda50ba5d8e0d51d

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