event→ics

ICS File Generator

Build a calendar event file that works in every calendar app.

By opening this website or using its tools, you agree to our Terms and Privacy Policy.

All-day events carry no time or time zone, so they show on the same date for everyone.

The times above are read in this zone. The file stores the resulting instant in UTC, so every guest sees it correctly in their own.

Give the event a title to generate the file.

Network activity during processing
0 bytes uploaded

Your file never leaves your browser during processing

How it works

To create an .ics calendar file, fill in the event title, date, and time above and download the result — the file is assembled in your browser and can be opened by Google Calendar, Outlook, Apple Calendar, or attached to an email so recipients can add the event in one click.

An .ics file is plain text in the iCalendar format defined by RFC 5545 — a short list of `KEY:value` lines describing when something happens and what it is called. Every mainstream calendar application reads it, which is why attaching one to an email is the only reliable way to send an event to someone whose calendar system you do not share. This page writes that text directly and hands it to you as a download; the preview below the form is the actual file, not a rendering of it. For a series of dates rather than one event, the recurring date generator writes every occurrence into a single file.

Timed events are stored as UTC instants rather than as a wall time tagged with a zone name. Both are valid, but a zone-tagged time is only correct if the file also carries a full `VTIMEZONE` definition of that zone’s daylight saving rules, and a hand-built one is a guess that importers either reject or quietly mis-shift. Converting your local time to an exact instant needs no zone definition at all, and every calendar renders it back correctly wherever the recipient is. If the event involves people in several zones, check the time on everyone’s clock before you send it.

All-day events work differently and are the more common source of a wrong-looking import. The format stores an all-day end date as *exclusive* — an event ending on the 22nd is written as ending on the 23rd. Enter the last day the event actually runs and this page does that conversion, so the bar in your calendar covers the days you meant.

Text fields are escaped and long lines are folded at 75 bytes, both of which the specification requires and both of which break in unobvious ways if a description happens to contain a comma, a semicolon, or an emoji.

Background reading: RRULE in plain English; How to create an .ics file, and what is inside one.

FAQ

What is an .ics file?

A plain-text calendar file in the iCalendar format (RFC 5545). It describes one or more events and can be opened by Google Calendar, Outlook, Apple Calendar, Thunderbird, and essentially every other calendar application.

How do I send a calendar invite from this file?

Attach the downloaded .ics to an ordinary email. Most mail clients recognise the attachment and offer an "Add to calendar" button; the rest will let the recipient open it manually.

Will the event show at the right time for people in other countries?

Yes. The time you enter is converted to an exact UTC instant using the zone you select, and each recipient’s calendar renders that instant on their own clock. An all-day event carries no time at all, so it appears on the same date everywhere.

Why is the end date of my all-day event a day later in the file?

The iCalendar format defines the all-day end date as exclusive. A single-day event on the 20th is written as ending on the 21st. Enter the last day the event runs and the conversion is handled for you.

Does the reminder work in every calendar app?

The reminder is written as a standard VALARM block, which Apple Calendar and Outlook honour on import. Google Calendar generally applies your own default notification settings instead of the one in the file.

Is my event data sent anywhere?

No. The file is assembled in your browser and the network monitor on this page confirms nothing is transmitted. The one exception is the optional "Open in Google Calendar" button, which is a link you choose to follow, carrying the details in its URL.

Related tools