Calendar invite (.ics) maker
Fill in the event, get a file anyone can open in Google Calendar, Outlook, Apple Calendar or anything else. Repeats, reminders and attendees included. Free, no signup, nothing uploaded.
The paid “add to calendar” services hand you a link to a page they host. That page counts every click, and it stops working the day they pivot or the plan lapses. An .ics file is just a file: it lives in your email, your download folder or on your web server, and it keeps working because nobody is running a service behind it. This page writes that file — correct line endings, correct folding, correct all-day end dates — on your device.
The times you type above are read as times in the zone you pick here — nothing is converted behind your back.
Adding attendees does not email anyone — this page sends nothing. It marks them in the file, so your own mail client can invite them when you attach it.
One event per file. A calendar file is allowed to hold several events at once, but the form for that would be worse to use than making two files, so it does not.
These three are ordinary links to Google, Microsoft and Yahoo with the event details in the query string — so those companies do see the event. The .ics file does not: it goes from this page to your disk. The links also cannot carry repeats or reminders, which the file can.
Questions people ask
Is my event uploaded anywhere?
No. The file is assembled by JavaScript in your browser and saved straight to your disk, so the uploads counter in the top bar stays at 0. That matters for a calendar invite: an event carries names, email addresses, a home address or a meeting link with a password in it. The one exception is the three “add to calendar” buttons — those are links to Google, Microsoft and Yahoo, and following one hands the details to them, as it must.
Why do all-day events sometimes show up a day short?
Because the iCalendar standard makes the end date of an all-day event exclusive: an event on the 1st has to be written as ending on the 2nd. Tools that write the last day directly lose a day, and multi-day events look wrong in every calendar that reads them properly. You pick the last day here and the file gets the day after it.
Will the file work in Google Calendar, Outlook and Apple Calendar?
Yes. An .ics file is the common format all three import — in Google Calendar it is Settings, Import & export; in Outlook and Apple Calendar you can usually just open the file. Emailing it as an attachment also works, and most mail clients show it as an invitation the recipient can accept.
What do the paid add-to-calendar services do differently?
They host a landing page in the middle. Your poster or email points at their URL, that page logs the click and then forwards people to a calendar. It gives them an analytics dashboard and gives you a dependency: when the free tier changes, the trial ends or the company is bought, the link dies and the poster is already printed. There is no watermark or paywall here because there is no service to bill you for — just a file.
Does the file include a full time-zone definition?
No, and this is a real limit worth knowing. When you pick a named zone the file writes TZID=Europe/London without the VTIMEZONE block that spells out that zone's daylight-saving rules. Google, Outlook, Apple and every other mainstream calendar recognise the name and get it right; a strict or old client may refuse it. If you need certainty, pick UTC, which is unambiguous everywhere.
How this works & why it’s private
An .ics file is plain text in the iCalendar format, RFC 5545. Most of the craft is in details nobody sees until something breaks: every line has to end with a carriage return and a line feed, not just a line feed; lines longer than 75 octets have to be folded onto continuation lines that begin with a space, counted in bytes rather than characters so an emoji or an accented letter is never cut in half; commas, semicolons and backslashes inside text have to be escaped; and an all-day event's end date is the day after the last day. This page does all four, and shows you the result so you can read it before you send it.
Nothing is transmitted at any point. There is no server here that could hold your event, no account, and no redirect page counting who opened it. Open your dev-tools Network tab and use the whole tool — you will see nothing leave. The share link is the same idea: the event is packed into the link's own hash, so sending it stores nothing anywhere.