Free · no sign-up · no email
ICS Calendar Generator
Type a meeting title, pick a start date & time and a timezone, and download a valid .ics file that imports into Google Calendar, Apple Calendar or Outlook.
Build your event
UTC output · CRLF · 75-octet foldingPick a start date & time to continue.
Your meeting data never leaves the browser — no uploads, no accounts, no tracking.
How it works
Title, start date & time, and the IANA timezone the meeting is in.
The wall-clock time is converted to absolute UTC using your browser's Intl data for that zone — DST included.
A VCALENDAR/VEVENT file with CRLF endings and 75-octet folding lands in your downloads, plus a raw preview you can copy.
What goes in the file
Every event is a single VEVENT inside a minimal VCALENDAR envelope.
Absolute YYYYMMDDTHHMMSSZ stamps instead of a VTIMEZONE block — the form every major calendar app imports without complaint.
A random UID on every generate and the current UTC timestamp, so re-imports replace rather than duplicate the event.
Commas, semicolons, backslashes and line breaks in the title are escaped so the file structure can never break.
meeting-YYYY-MM-DD.ics, named for the day the meeting starts in your chosen zone.
No location, no attendees, no recurrence, no alarms — v1 keeps the payload small and the import clean.
No API calls, no keys and no server round-trip: once the page has loaded it keeps working with the network off.
FAQ
Does my meeting data get uploaded?
No. The .ics text is built entirely in your browser and handed to you as a local file. There is no API route behind this tool.
Will Outlook accept the file?
Yes. Lines use CRLF endings, long lines fold at 75 octets with a leading space, and VERSION:2.0 plus a PRODID are present — the three things Outlook is strict about.
Why are the times in UTC rather than my timezone?
Absolute UTC stamps avoid the VTIMEZONE/DST traps that make calendar apps disagree. The instant is identical — the result card shows the UTC start and end so you can verify it before importing.
What is the "ambiguous time" warning?
On the day clocks go back, one wall-clock time happens twice. The generator picks the first occurrence and tells you — check the UTC value in the result card. Times skipped by the spring-forward jump get the same treatment.
The download did nothing — now what?
Some in-app browsers block programmatic downloads. Use the copy button under the preview and paste the raw ICS into your calendar app; the contents are identical.
Can I set an end time, location or attendees?
Not in this version. The event is always 1 hour and carries the title, start and duration only. You can edit the copied text by hand before importing if you need more.