Make a calendar file for any event, download it, and send it to whoever needs it. An .ics file is a plain text file in the iCalendar format, and every mainstream calendar application knows how to read one.
Your calendar file is ready
Your file is secure. There is no upload, no account and no copy of your event sitting on our server, because the file is built on your own machine as you type.
It is a text file. You can open one in Notepad or TextEdit and read every word of it, which is worth doing once because it takes the mystery out of the whole thing.
Inside are a handful of lines describing an event: when it starts, when it ends, what it is called, where it happens. Your calendar reads those lines and creates an entry. That is the entire job.
The format has been standardised since 2009, when RFC 5545 replaced the older specification, and it has barely changed since. Which is why a file made in a browser in 2026 opens in a copy of Outlook that somebody installed years ago.
The extension is .ics. You will also see the format called iCalendar, and people often say "iCal file", which is the same thing under an older name and nothing to do with Apple's app of that name.
Here is a complete, working file for a one hour webinar.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//The Blue Cube//EventEngine ICS Generator//EN CALSCALE:GREGORIAN METHOD:PUBLISH BEGIN:VEVENT UID:9f3c2a1e-0b77-4e5a-9c31-2f6d8a4b7e10@eventenginepro.com DTSTAMP:20260819T113000Z DTSTART:20260901T090000Z DTEND:20260901T100000Z SUMMARY:Quarterly product webinar DESCRIPTION:A walk through what shipped this quarter. LOCATION:Online STATUS:CONFIRMED END:VEVENT END:VCALENDAR
Reading down: the file opens a calendar, then opens an event inside it. UID is the event's identity, which is how a calendar knows whether it is looking at a new event or an update to one it already has. DTSTAMP is when the file was made. DTSTART and DTEND are the event itself, written in UTC, which is what the Z on the end means. SUMMARY is the title people will see in their diary.
Then it closes the event and closes the calendar. 16 lines, and it works in Outlook, Google Calendar, Apple Calendar and everything else that reads the format.
An .ics file is plain text, so anything that can write a text file can produce one. The work is in producing a file that every calendar application accepts without complaint.
Most of the time you do not need instructions. Double-click the file and your default calendar offers to add the event. The steps below are for when you want the events in a particular calendar, or when double-clicking has not worked.
Open Google Calendar on a computer, click the settings cog and choose Settings. In the left-hand menu, click Import and export, then Select file from your computer. Pick the file, choose which calendar the events should land in, and click Import. It has to be done on a computer, since the mobile apps have no import screen.
Go to the calendar, click Add calendar, then Upload from file. Browse to the file, choose the calendar you want the events in, and click Import. Worth knowing: this brings in a snapshot. If whoever sent the file changes the event later, your copy will not update on its own.
File, then Import, then choose the file. Or drag the file straight onto the Calendar window, which is quicker. Either way it asks which calendar to put the events in.
A file can look perfectly reasonable in a text editor and still refuse to behave. When that happens it is nearly always one of these five.
Somebody has written the local wall clock time into the file and left off the time zone, so the calendar guesses, and it guesses differently depending on where the recipient is sitting. British Summer Time makes this worse between late March and late October, which is most of the event season.
In the iCalendar format the end of an all-day event is exclusive, so a single day event on 1 September has to end on the 2nd. Miss that and every all-day event you send arrives smeared across an extra day.
Those two characters have a meaning in the format, so they have to be escaped with a backslash before they can be used as ordinary punctuation. A file that reads fine in a text editor can still fail on a title as innocent as "Q3 webinar, part 1".
A quieter version of the same problem. The specification says a line should not run past 75 octets, and lines beyond that get folded onto a continuation line starting with a space. Plenty of generators ignore this. Most calendars cope, and then one does not.
Every event needs a UID, and if two files carry the same one, the second is treated as an update to the first. Leave the UID out altogether and some calendars invent one each time, so the same event lands three times because somebody clicked the link three times.
The generator on this page handles all of it, which is rather the point of building another one.
For a single invitation, attach the file to an email and let people open it.
For anything bigger, an event email going out to a list, an attachment is the wrong tool. Attachments make emails heavier, some clients strip them, and marketing platforms would rather you did not. The usual approach is a set of add to calendar links in the email body: a link each for Google, Outlook and Yahoo, which carry the event details in the link itself, and a downloadable file for Apple Mail and Outlook on the desktop.
If you are doing that inside HubSpot, I have written up how to put add to calendar links in HubSpot event emails, which covers the wiring and the traps.
What is an .ics file?
An .ics file is a plain text calendar file in the iCalendar format. It describes an event: the title, the start and end times, the location and a description. Calendar applications read it and create a diary entry from it. The format is defined by RFC 5545 and every major calendar supports it.
How do I make an .ics file?
Fill in the form at the top of this page and click download. There is nothing else to it. You can also write one by hand in a text editor, since the format is plain text, though the escaping and time zone rules are fiddly enough that a generator saves you the trouble.
Why won't my .ics file open in Outlook?
Usually the line endings or the escaping. Outlook is stricter than Google Calendar and rejects files that other applications will tolerate. Check that text values escape their commas and semicolons, that lines fold at 75 octets, and that the file uses carriage return and line feed at the end of every line.
Can one .ics file hold more than one event?
Yes. A single file can hold as many events as you like, each in its own VEVENT block, all inside one VCALENDAR. Importing that file adds every event at once, which is how calendar exports work. The generator on this page makes one event at a time.
Is an .ics file the same as an iCal file?
Yes. iCalendar is the name of the format and .ics is the file extension, so the two terms describe the same thing. People shorten iCalendar to iCal, which causes some confusion with Apple's old calendar app, but the file itself is the same either way.
Making one of these by hand is fine. Making one for every event, then chasing the registrations and the reminders around a spreadsheet, is the point where it stops being fine. EventEngine runs events inside HubSpot, calendar files included.