viewhack

ICS viewer: open a calendar file in your own time zone

Open an invitation (.ics) or a whole exported calendar without importing it anywhere. Every event is listed in your time zone, with the zone it was written in beside it. Repeating events are expanded for the dates you pick, and each event shows who was invited, who accepted and which reminders it sets.

The file is read on your device. It is not uploaded, and no link or attachment in it is fetched.

What it shows

Repeat rules it follows

From RFC 5545, the iCalendar standard: FREQ (yearly, monthly, weekly, daily, hourly, minutely, secondly), INTERVAL, COUNT, UNTIL, BYDAY with or without a position (1FR, -1SU), BYMONTHDAY (negative counts from the month's end), BYMONTH, BYYEARDAY, BYWEEKNO, BYHOUR, BYMINUTE, BYSECOND, BYSETPOS and WKST, plus RDATE, EXDATE and RECURRENCE-ID. Its test checks 41 of the RFC's own worked examples against the dates the RFC lists.

Not followed: RSCALE and SKIP (RFC 7529 rules for non-Gregorian calendars such as the Hebrew or Chinese calendar), EXRULE (dropped from the standard in 2009), and RANGE=THISANDFUTURE, which is treated as a change to that one occurrence only. Repeating to-dos are listed with their rule but not expanded. When a file uses one of these, the page says so above the agenda.

What it cannot do

Getting the .ics file

An invitation in an e-mail
Invitations from Outlook, Google and Apple carry the event as an attachment, usually named invite.ics or meeting.ics. Save the attachment and drop it here; the invitation's own time zone is inside it.
Google Calendar
On a computer: Settings › Import & export › Export downloads a .zip with one .ics per calendar. Unzip it and drop the files here together. One calendar alone: Settings › the calendar's name › Export calendar.
Outlook
Classic Outlook for Windows: File › Save Calendar, where “More options” sets the date range and how much detail is kept. Outlook on the web can publish a calendar as an ICS link (Settings › Calendar › Shared calendars); open that link in your browser to download the file.
Apple Calendar
On a Mac, select the calendar in the sidebar, then File › Export › Export…, which saves one .ics.

Useful to know about calendar files

Why a repeating meeting moves by an hour for a few weeks
A repeat rule runs on the clock of the zone it was written in. A stand-up at 09:30 New York time is at 15:30 in Copenhagen most of the year, but at 14:30 for about three weeks in March and one in late October and early November, because the United States changes clocks on the second Sunday of March and the first Sunday of November, and the EU on the last Sundays of March and October. Open the sample calendar and look at late October 2026 to see it.
Times with no zone
A time written without a zone (no TZID and no trailing Z) is “floating”: 07:00 wherever you are, the way an alarm clock works. Google and Outlook exports often add X-WR-TIMEZONE for the whole calendar; when they do, this page reads floating times in that zone, as those programs do, and says so beside the time.
All-day events end the day before their end date
An all-day event from 14 to 16 October is stored with DTEND on the 16th: the end is exclusive, so it covers the 14th and 15th. Programs that treat the end as inclusive show a day too many. All-day dates are not converted between time zones.
What METHOD tells you
METHOD:REQUEST is an invitation waiting for a reply, REPLY is someone's answer to one, CANCEL withdraws an event, and PUBLISH (or none) is an export or a published calendar. The page names it at the top.
When the same event appears twice
An updated invitation keeps the event's UID and raises its SEQUENCE number. If you drop several files and two hold the same UID, the copy with the higher SEQUENCE is shown, as a calendar program would.