ICS Viewer
Read the calendar file you were sent — every event in plain words, and a straight answer about the time it claims to be.
Runs in your browser0 bytes uploadedRead the calendar file you were sent — every event in plain words, and a straight answer about the time it claims to be.
Runs in your browser0 bytes uploadedDrop an .ics file here
Nothing is uploaded. The file is read in this tab.
Line endings cannot be reported for pasted text. A text box rewrites them on the way in, so drop the file itself if that is the answer you need.
Drop it above, or paste its contents. What comes back is the same appointment your calendar would show, laid out so that every field is legible: what it is called, when it claims to happen, where, how often it repeats, and the identifier that decides whether re-downloading it later replaces the entry or adds a second one.
Nothing is added to any calendar. That is the distinction worth drawing, because almost every other way of looking at one of these files insists on importing it first — and importing a stranger's meeting to find out what it says is a strange order of operations. Here it is only read.
Search for open ics file and most of what comes back is something to install: a desktop utility, an app-store listing, a converter that wants an email address. None of that is necessary. The contents are text, your browser reads text perfectly well, and the whole exercise takes about four seconds.
All of them, more or less. Apple Calendar, Outlook, Thunderbird and every phone calendar recognize the extension; Google Calendar accepts one too, though only through its import screen rather than by opening the file. The format has been an internet standard since the nineties and the agreement has held remarkably well.
A plain text editor also opens one, and that is the useful fact: the contents are readable words, not compiled data. This page is that reading with the grammar sorted out for you — continuation lines rejoined, escaped punctuation restored, and the timestamps translated out of their compressed form into something a person can check against what they were told.
What no calendar application will do is tell you what is missing. That is the gap this page fills.
A start time in one of these files comes in three varieties, and they are not interchangeable. One ends in a Z and is an absolute instant in universal time. One names a zone and is anchored to a place. The third names nothing at all, and it is the reason people miss meetings.
That third kind is called a floating time, and it means the hour shown, wherever the person reading it happens to be. Two o'clock in Lisbon for the organizer, two o'clock in Denver for the attendee, seven hours apart. Whoever wrote the file never sees the failure, because their machine sits in the zone it was written for and the result looks correct to them every single time they check.
Every viewer we could find renders a floating time as if it were local, which quietly manufactures a certainty the file does not contain. This one labels it instead and declines to convert it, because there is nothing there to convert. When the time genuinely is anchored, the equivalent in your own zone is worked out and printed underneath, so you can compare it against whatever the invitation email claimed.
One more case gets its own answer. Files exported from Outlook often name their zone in Microsoft's vocabulary — W. Europe Standard Time rather thanEurope/Berlin — and a browser has no rules for those names. Rather than guess a near-enough match, the tool says so and leaves the written time alone.
An entry covering a single day on the 12th is recorded as starting on the 12th and ending on the 13th, because the end boundary marks where the event stops rather than the last day it occupies. Read literally, a one-day workshop looks like a two-day one, and plenty of tools present it exactly that way.
So the span is worked out here before it is shown, and the raw boundary is printed next to it so you can confirm the arithmetic. If the two dates are the wrong way round, or identical, that is flagged too — an entry of zero length is something different calendars each handle in their own way, and usually the way they handle it is to not draw it.
Outlook shows you its interpretation, which is not the same artefact as the file. Timezone substitutions have already happened, missing fields have been filled with defaults, and anything the application did not care about has been dropped. If you are trying to work out why a booking system produced something a calendar refuses, that interpretation is the one thing that cannot help you.
The header panel here is aimed at that job. It reports the producer string, which names the software that wrote the file and is the fastest way to identify something that arrived unexpectedly. It reports the method, which separates an invitation awaiting a reply from a bulletin that wants nothing from you. It reports whether the file carries its own timezone definitions or expects you to already know them. And it reports the line endings, which is the reason a file that looks flawless gets refused on import: the specification requires a carriage return before every line feed, some generators emit only the feed, and the strictest parsers reject the lot.
That last figure is only offered when you hand over an actual file. Text pasted into a box on a web page has already had its endings rewritten by the browser before any script can look at them — the behavior is required by the HTML specification and cannot be worked around. Reporting a value there would be inventing one, so the field says it does not know and tells you why.
Yes, and it is a common place to be stuck: an attachment arrives, tapping it offers to add something to your calendar, and all you wanted was to see what it says. Use the file picker and choose the attachment from Files on an iPhone or from your downloads on Android. If the thing arrived as text in a message, paste it instead.
The layout is built for a narrow screen before a wide one, nothing depends on hovering or right-clicking, and the tap targets are sized for thumbs. Long identifiers wrap rather than running off the edge.
Occasionally one of these arrives with nothing in it that a calendar would draw. The format carries more than appointments: a task, a diary note and a block of busy time are all legal contents, and a subscription feed can be entirely empty until it is populated. Reporting "0 events" would be true and useless, so what the file actually holds is named instead.
The other version of that is a file which is not one of these at all — an HTML error page saved with the wrong extension is the classic — and that gets said plainly, with the text still shown underneath so you can see what you were sent.
It does not write anything. There is no export, no editing, no button that adds an entry to your own calendar. Every one of those is a separate job with a separate page: building a file from scratch belongs to theICS file generator, and turning a spreadsheet full of dates into one belongs to Excel to Calendar. If you want the whole standard explained rather than one file examined, that iswhat an .ics file is.
It also does not expand a repeat rule into a list of dates. The rule is described in words and printed in its original form beside the description, but working out every occurrence needs the exception lists and the anchoring zone to be handled properly, and a list that is nearly right is worse than the rule itself.
These files are more sensitive than their size suggests. A meeting export can carry attendee addresses, a conference bridge number, an access code, and the fact that a named person will be at a named address at a stated hour. That is not material to hand to a stranger's server in exchange for a preview.
Reading happens in your own browser. There is no endpoint here that accepts a file, so open the Network tab before you drop one and you will watch nothing go out. You can also load the page, disconnect, and carry on working — which is the version of the claim that cannot be faked.
Drop it on the box above, or paste the text into it. The file is read by this tab and turned into a list of events you can actually read — title, time, place, description, repeat rule. Nothing is installed and nothing is sent anywhere, which also means there is no account and no queue.
Any calendar application: Apple Calendar, Outlook, Thunderbird, and on the web Google Calendar via its import screen. But every one of those wants to add the event to your calendar, which is a different thing from letting you look at it. A text editor opens one too, since it is plain text — this page is that reading, arranged so the fields make sense.
That is what this page is for. Outlook, and any other calendar app, will only show you the version of the event it decided to import — with its own timezone assumptions applied. Here you see what the file says, including whether a start time carries a timezone at all, which is the one detail every calendar app hides from you.
Yes. Tap the file picker and choose the attachment from Files on iOS or from your downloads on Android, or paste the text if the file arrived in a message. The layout is built for a narrow screen first, and nothing here needs a hover or a right-click.
Usually because the file wrote a floating time — a start like 20260812T140000 with no Z on the end and no timezone named. That means "two o'clock wherever the reader is", so it lands at a different moment for everyone. This viewer labels those explicitly rather than converting them, because there is nothing to convert. If instead the time ends in Z it is UTC, an exact moment, and the local equivalent is shown next to it.
No. It is read in this tab and never transmitted, which matters more here than for most formats: an .ics carries attendee email addresses, dial-in numbers, meeting passcodes and the location of a real person at a real time. Open your browser's Network tab before you drop the file and you will see no request go out.