The event
This page builds a .ics calendar file — the format Apple
Calendar, Outlook, Google Calendar and Thunderbird all import — from an
event you describe, and hands you the file to download or attach to an
email. It needs JavaScript, because the file is assembled in your
browser rather than on a server: that is the whole reason nothing you
type leaves the page.
Repeats
The file
What this writes
A single VEVENT in an RFC 5545 VCALENDAR, with
CRLF line endings and lines folded at 75 octets — the two details that
most hand-written .ics files get wrong and that make strict
parsers reject a file that looks fine in a text editor. Semicolons,
commas, backslashes and newlines in the text fields are escaped for you.
Time zones, and why this tool has none
Naming a time zone in a calendar file properly means shipping a
VTIMEZONE block containing that zone’s daylight-saving
rules. Get it wrong and the meeting silently moves by an hour, which is
worse than not offering the feature. So there are two choices here, and
neither can be wrong:
- Local time wherever the reader is — a floating time. “09:00” means 09:00 to everyone who opens it. Right for a daily habit, a lunch break, a reminder.
- A fixed instant, given in UTC — right for a call across time zones, if you can state the time in UTC. Every calendar converts it to the reader’s own zone.
All-day events carry no time zone at all, by design.
The all-day off-by-one
In iCalendar, the end date of an all-day event is exclusive: an event on the 10th ends on the 11th. Writing the 10th makes the event vanish, or show as zero-length, depending on the app. This tool adds the day for you and says so, rather than leaving you to discover it.
What this deliberately does not do
-
Invitations — attendees,
ORGANIZER, and RSVP tracking need a mail server that speaks iTIP. A file cannot collect replies, so offering the fields would be a lie. - Complex recurrence — “the last Friday of the month”, exception dates, and multiple rules are real, and are more than a single form can express honestly. Daily, weekly, monthly and yearly, with an interval, a day-of-week list, and an end, are what is offered.
- Multiple events per file — one event, one file.
Privacy
There is no server side. The file is assembled in the page and handed straight to your browser’s downloads. This page makes no network requests once it has loaded, sets no cookies, stores nothing, and carries no analytics, no tag manager and no webfont. You can confirm all of that by reading the source — it ships unbundled and unminified for exactly that reason.