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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Turn a .vcf contact export into a CSV Excel opens cleanly.
Convert Unix timestamps and ISO dates in both directions.
Identify a file by its bytes when the extension is wrong or missing.