Move calendars with evidence / KitForma

ICS viewer, calendar merger & ICS to CSV

Inspect and merge ICS files locally. Audit recurring events, exceptions and timezones, select event versions, and export a calendar plus CSV snapshots.

No account neededRuns in your browserFree to use
Calendar File DeskLOCAL WORKSPACE
Choose · review · download
From question to next step

Calendar File Desk

The original files stay untouched. Use the selector after inspection to include complete UID series and resolve competing versions before importing the result.

Supported scope: 8 UTF-8 ICS files · 10 MiB combined · 2,000 event components · 64 KiB unfolded property · 366-date preview window · 5,000 output occurrences / 50,000 iterator steps · one-minute worker limit. Event-only ICS export. Embedded timezone conversion: 1900–2100 with yearly observance rules. DAILY/WEEKLY/MONTHLY/YEARLY expansion; unsupported rules stay in ICS with clear snapshot warnings.

Calendar sources and preview window

Required fields are marked with an asterisk.

01

1–8 UTF-8 ICS files; 10 MiB combined and up to 2,000 VEVENT components.

A complete VERSION:2.0 VCALENDAR envelope. No content is uploaded.

Required summary,start headers. Optional end,uid,description,location. Dates: YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS with optional Z. Named zones and recurrence require ICS.

YYYY-MM-DD. Uses each occurrence’s original calendar date, not your browser timezone.

YYYY-MM-DD. Maximum 366 dates; ICS keeps full selected recurrence rules beyond this window.

Exact duplicates collapse automatically. Different UIDs are never merged just because titles match.

Off removes VALARM components and records the change. This tool never executes alarms, attachments or URLs.

Adds a new UID for non-recurring events or a current DTSTAMP only when absent. This creates new metadata; it cannot recover lost identity or history. Missing UID in recurring series remains blocked.

Loading the local tool… Your files stay in this browser.

Your result

Review your output, then save it to your device.

02

Make the next step clear.

Your findings, assumptions and next steps will appear here after you run the check.

Calendar File Desk · https://calendar.kitforma.com/ · KitForma

01

Recurring rules and exceptions retained in ICS

02

Explicit UTC, embedded-zone, floating and all-day handling

03

Selected ICS, two CSV views and migration audit

Good questions

Before you start

Will this connect to my Google, Apple or Microsoft account?

No. You supply exported ICS files or local text. Parsing and conversion run on your device; no login, platform approval or calendar API is needed. The tool does not send invitations or import changes into an account.

Why are the ICS and occurrence CSV different?

ICS retains selected event components and their recurrence rules, exclusions and exceptions. The occurrence CSV expands only the chosen date window within stated limits. It is a snapshot, not a replacement for recurring-calendar structure.

Does matching a UID mean two records are duplicates?

No. UID plus RECURRENCE-ID identifies the relevant event or instance. Identical component copies collapse; different versions need a choice. The optional newest policy compares SEQUENCE and DTSTAMP but does not prove which source is authoritative.

Can you convert every named timezone to UTC?

Only a UTC value or an embedded usable VTIMEZONE definition can provide a UTC result here. Embedded conversion is bounded to 1900–2100 and yearly observance rules. Missing or unsupported zone definitions remain explicitly unresolved. Floating times have no assigned timezone, and all-day dates are not shifted to UTC.

What can calendar repair actually fix?

The tool normalizes supported UTF-8 folding and line endings. If explicitly enabled, it can generate missing UID metadata for a non-recurring event or a current missing DTSTAMP. It cannot reconstruct deleted events, historical timestamps, missing recurring identities or an unknown timezone definition.

What is intentionally outside the occurrence preview?

Sub-daily rules, RDATE periods, legacy EXRULE, RANGE exceptions and incompatible recurrence-date types are preserved in selected ICS but not expanded. The audit also marks exhausted limits and detached exceptions. CSV creation accepts one-off UTC, floating or all-day events only.

The evidence behind the check

Sources & assumptions

Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.

Reviewed 2026-10-18. Read our methodology or report an issue.

Essential local storage remembers this choice for up to 180 days. Your choice applies to this subdomain. Global Privacy Control and Do Not Track override optional measurement.

Advertising has a separate choice. Use Advertising preferences in the footer to allow or reject the optional guide-page banner.