Skip to content
AZ Tools

ICS Calendar Viewer & Recurrence Expander

An .ics file is the attachment your calendar app knows what to do with and you do not. Opening it in a text editor gives you folded lines, escaped commas and a line like RRULE:FREQ=MONTHLY;BYDAY=-1FR;BYSETPOS=-1 that tells you nothing about which Fridays are meant. This viewer unfolds the file properly, shows every event with its times, location, organiser, attendees and status, and then does the part no one can do in their head: it expands the recurrence rule into the actual dates. Weekly on Mondays and Wednesdays, the last working day of each month, every second Tuesday counting from a start date — you see the list, with the dates removed by EXDATE taken out and any extra RDATE folded in. Times can be shown as written with the event's own zone, converted to your zone, or in UTC. Recurrence is expanded on the wall clock, the way the standard defines it, so a 09:00 meeting stays at 09:00 across a daylight-saving change instead of drifting an hour. The file is read in your browser and nothing is uploaded, which matters here — a calendar export usually carries other people's names and email addresses.

Drop or paste an .ics file to read it.

How to use

  1. Drop an .ics or .ical file, or paste the text of one.
  2. Read the event list: times, duration, location, organiser, attendees and status.
  3. For a repeating event, check the expanded dates under the rule.
  4. Switch the time zone to see the same events as written, in your zone, or in UTC.
  5. Copy the plain-text summary if you need to paste it somewhere.

Frequently asked questions

What does a rule like FREQ=MONTHLY;BYDAY=-1FR mean?
The last Friday of every month. Rather than explain the grammar, the tool expands the rule and lists the dates it produces, which is the answer you actually wanted.
Which parts of RRULE are supported?
FREQ (daily, weekly, monthly, yearly), INTERVAL, COUNT, UNTIL, BYDAY including ordinals like 2TU and -1FR, BYMONTHDAY including negatives, BYMONTH, BYSETPOS and WKST, plus EXDATE and RDATE. The rare BYYEARDAY, BYWEEKNO and BYHOUR parts are not expanded.
Why does the time not shift when the clocks change?
Because the standard defines recurrence on the wall clock. A 09:00 daily meeting is 09:00 before and after a daylight-saving change; the gap between two occurrences is what changes, not the time on the invitation.
What is a floating time?
A start time written with no zone and no trailing Z. It means the same wall clock wherever the reader happens to be, which is how all-day reminders and some exports are written.
Why are the lines in my file broken mid-word?
The format folds any line past 75 octets by continuing it on the next line with a leading space. The viewer joins them back together before reading anything, which is why a description looks correct here and mangled in a text editor.
Is my calendar uploaded?
No. The file is parsed in your browser and never sent anywhere. That matters more than usual with calendar files, which normally list other people's names and email addresses.

Related tools