sitekits.dev
press ⌘K to switch tools
TIME

ICS Calendar Viewer

View and parse ICS calendar file contents.

local
ics-viewer
§01 ABOUT THIS TOOL

Overview

.ics (iCalendar) files power meeting invites and calendar exports, but the raw format — folded lines, escaped commas, DTSTART;TZID=… property parameters — is unpleasant to read. This viewer unfolds continuation lines, walks every VEVENT block, and renders a table of Summary, Start, End, and Location with timestamps reformatted to YYYY-MM-DD HH:MM. Handy for previewing an invite before accepting it, or sanity-checking an .ics file your own code generates.

How to use

  1. Open the .ics file in a text editor or copy the invite attachment’s contents.
  2. Paste it into Paste .ics content — the events table appears immediately.
  3. Verify each row’s Start / End / Location against what you expect.

Examples

  • DTSTART:20260723T093000Z → shown as 2026-07-23 09:30
  • An export with 12 VEVENT blocks → a 12-row table you can scan at a glance
  • Testing your app’s calendar export → confirm SUMMARY and LOCATION fields land in the right columns

Notes

Times are displayed exactly as written in the file; TZID parameters and Z (UTC) suffixes are not converted to your local timezone. Recurrence rules (RRULE) are not expanded — a repeating event appears once. Escaped \n and \, sequences in descriptions are unescaped during parsing.

FAQ
Is my calendar data uploaded anywhere?
No. The .ics text is parsed entirely in your browser — nothing is sent to a server or stored, which matters since calendar files often contain meeting titles, attendee details, and locations.
How are dates displayed?
ICS timestamps like 20260723T093000Z are reformatted to 2026-07-23 09:30 for readability; all-day values such as 20260723 display as 2026-07-23. Values are shown as written in the file — no timezone conversion is applied.
Why does it say No VEVENT blocks found?
The parser lists only BEGIN:VEVENT / END:VEVENT blocks. A file containing only VTODO tasks, VTIMEZONE definitions, or free-busy data has no events to show. Also check that line breaks survived the paste, since ICS is line-oriented.