Create an .ics calendar file

Fill in an event, set a time zone, a repeat and a reminder, and download a standard .ics file or a Google Calendar link.

How it works

  1. Type the event title and pick the dates and times
  2. Choose a time zone, a repeat and a reminder
  3. Download the .ics file or open the Google Calendar link

What the file contains

An .ics file is a plain-text calendar event in the iCalendar format, defined in RFC 5545, and this tool writes one from the fields you fill in. The file starts with BEGIN:VCALENDAR and holds one VEVENT with a unique ID, the time the file was made (DTSTAMP, in UTC), the start, the end, your title, and optionally a location, a description, a repeat rule and a reminder. Lines end with CRLF. Any line longer than 75 octets is folded: the break is a CRLF followed by one space, and a multi-byte character such as an accent or an emoji is never cut in half. In text values a backslash, a semicolon, a comma and a line break are escaped, so Agenda, notes becomes Agenda\, notes. The ID is built from the event details, so importing the same event twice updates it instead of adding a second copy.

Time zones, UTC and all-day events

Pick UTC and the times you type are written with a Z, such as 20261015T130000Z. Pick a named time zone and the tool writes DTSTART;TZID=America/New_York:20261015T090000 and adds a VTIMEZONE block that lists every clock change from the year before the event to the last year of the series, read from your browser's own time zone data. Example: 9:00 to 10:00 on Thursday 15 October 2026 in New York is 13:00 to 14:00 UTC, because New York is on daylight time (UTC minus 4 hours) until 1 November 2026. Two clock-change cases follow RFC 5545 section 3.3.5. A time that happens twice, such as 1:30 on 4 November 2007 in New York, is the first one. A time that does not exist, such as 2:30 on 11 March 2007, is read with the offset before the gap and becomes 3:30 daylight time. The tool shows a notice when this happens. An all-day event is written as dates only, and the end date is the day after your last day, as the format requires.

Repeats and reminders

A repeat becomes an RRULE. Daily and weekly repeats take an interval, so every 2 weeks on Tuesday and Thursday for 8 events gives FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH;WKST=MO;COUNT=8 and, from Thursday 15 October 2026, the dates 15 and 27 and 29 October, 10 and 12 and 24 and 26 November, and 8 December. Weekly repeats must include the weekday of the start date. Monthly repeats use either the same date or the same weekday, such as the 3rd Thursday. A 5th weekday is written as the last one, and a date such as the 31st skips months that do not have it. An end date is written as UNTIL in UTC at the end of that local day, or as a plain date for an all-day event, which is what the format asks for. A reminder is a VALARM that shows a message: from 5 minutes to 2 days before the start. For an all-day event the choices are 09:00 on the day or 1 or 2 days before at 09:00.

The Google Calendar link and what the tool does not do

The Add to Google Calendar button opens a link in the form calendar.google.com/calendar/render?action=TEMPLATE with the title, the start and end in UTC, the place and the description in it. Google does not publish this link format as an official interface, so it could change. The link adds the first event only and does not set a reminder; import the .ics file to get the whole series and the alarm. Clicking the link sends the event details to Google, as any link to a website would. The tool does not send invitations, add attendees or an organiser, make meetings with a video link, or read your calendar. It makes one event per file, with a series of at most 2,000 repeats.

Frequently asked questions

How do I create an .ics file?

Type the title, pick the start and end, choose UTC or a time zone, then press Download .ics. The file is named event.ics. Open it, or drag it into your calendar app, and the event is added. Add a repeat or a reminder first if you want them in the file.

Why does my event show the wrong time after I import it?

Most often the time zone was not the one you meant. A file written in UTC shows the same moment everywhere, so 13:00 UTC is 9:00 in New York in October 2026. If you meant 9:00 local time, choose the named time zone instead of UTC. The summary under the form shows the UTC time for a named zone, so you can check it.

How do I make a weekly event that repeats on Tuesday and Thursday?

Set Repeat to Weekly, tick Tue and Thu, and choose how many events or an end date. The start date must be a Tuesday or a Thursday, otherwise the tool asks you to change it. The file gets RRULE:FREQ=WEEKLY;BYDAY=TU,TH with COUNT or UNTIL.

How do I make an all-day event that lasts several days?

Tick All-day event, then set the start date and the last day. A conference from 12 to 14 October 2026 is written with DTSTART 20261012 and DTEND 20261015, because the end of an all-day event in the file is the day after the last day. The page shows the length as 3 days.

Does the same file work in Google, Apple and Outlook calendars?

The file follows RFC 5545, the standard these calendars read, and it carries a VTIMEZONE block for named zones. Calendar apps differ in small ways, such as how they show reminders, so open the imported event once and check the time and the alarm.

Is my event uploaded anywhere?

No. The text is processed in your browser and not uploaded. The file is built on your device. Only the time zone choice and the reminder are saved in this browser, never the title, place or description. If you click Add to Google Calendar, the event details go to Google in that link.