ByteScope

ICS Viewer

Read an .ics calendar file: every event laid out as a list, a month view, and a CSV you can open in a spreadsheet. The file never leaves your browser.

The calendar is read here, on your machine. Events, attendees and locations are parsed in the page and never sent anywhere — no upload, no account, and nothing is added to your own calendar.

Drop an .ics calendar file here

An invitation, a subscription export or a whole calendar — or click to browse.

Dropping again replaces what is on screen, so a failed file leaves no stale rows.

About this tool

An .ics file is what Google Calendar, Outlook, Apple Calendar and every conference booking system hand you when they attach an invitation or export a schedule — and double-clicking it usually means importing it into your own calendar before you have even seen what is inside. Drop it here instead and it is parsed in the page: one row per event with its start, end, location, organizer, attendees and status, plus a month view that shows how a schedule actually falls across the weeks.

The file never leaves this machine. A calendar export names who you meet, when and where, which is not something to hand to a stranger's server just to read it — so the parsing, the month grid and the CSV are all built in your browser, and there is no upload endpoint to send the file to even by accident.

Recurring events are expanded only where the answer is certain. FREQ=DAILY, FREQ=WEEKLY and FREQ=MONTHLY with INTERVAL, BYDAY, COUNT and UNTIL are computed and drawn on the calendar. Anything past that subset — BYSETPOS, FREQ=YEARLY, a rule this parser does not fully understand — is listed with its raw rule text and left uncomputed, because a calendar that quietly invents the wrong dates is worse than one that admits the rule is complicated.

Times are shown exactly as the file writes them. There is no timezone database in the page, so a value carrying TZID=Europe/Berlin or a trailing Z is labelled with that frame rather than silently shifted into yours — the difference between the two is where double-booked meetings come from. The CSV export uses the same rule, one row per event as written, with the recurrence rule kept in its own column so nothing about the schedule is lost on the way into a spreadsheet.

Frequently asked questions

Is my calendar file uploaded anywhere?

No. The browser reads the file off your own disk, parses it in the page and builds the CSV locally. There is no server involved, no account, and closing the tab leaves no copy behind.

How do I open an .ics file without importing it into my calendar?

That is exactly what this page is for. Drop the file here and you get the event list and a month view without touching your own calendar — nothing is added to Google Calendar, Outlook or Apple Calendar, because the page has no access to them.

Which recurring events are expanded onto the calendar?

The common shapes: FREQ=DAILY, FREQ=WEEKLY and FREQ=MONTHLY, with INTERVAL, BYDAY, COUNT and UNTIL. Those are computed exactly, including the rule that a monthly event on the 31st simply skips the months that have no 31st instead of sliding to the 30th.

What happens to a recurrence rule the tool does not support?

It is listed separately with its raw RRULE text and the reason it was refused, and only the event's own DTSTART is drawn. No approximate series is invented — a plausible-looking wrong date on a calendar is the one failure that costs you a meeting.

Are the times converted to my timezone?

No, and that is deliberate. The page carries no timezone database, so a TZID= value or a UTC value ending in Z is shown as written and labelled with its frame. Converting with a guessed rule set would be worse than showing you what the file actually says.

Can I get the events into Excel or Google Sheets?

Yes. Pick the columns you want and download the CSV — UID, summary, start, end, all-day flag, location, description, status, organizer, attendees, categories and the recurrence rule. Keep the byte-order mark option on so Excel reads non-English titles correctly.

Does the CSV contain one row per repeat of a recurring event?

No. The CSV mirrors the file: one row per VEVENT as written, with the RRULE in the recurrence column. The month view is where the repeats are drawn out, so nothing in the export depends on how far into the future you happened to scroll.

What if the file is broken or is not really a calendar?

It says so specifically. A file with no BEGIN:VCALENDAR line, a block that was never closed, an unparseable date and a malformed duration each get their own message with the line number that caused them, and events that parsed fine are still shown rather than thrown away with the rest.