How to create an ICS file (4 methods, with a working example)
An .ics file is the one calendar format that Apple Calendar, Google Calendar, and Outlook all import. You can export one from a calendar you already use, make one from a photo or screenshot, fill in an online form, or write it by hand. This guide covers all four.
Published · Updated · Photo2Calendar Editorial Team
What an ICS file is
An ICS file is a plain-text file in the iCalendar format, defined in RFC 5545. It starts with BEGIN:VCALENDAR, ends with END:VCALENDAR, and holds one or more events, each between BEGIN:VEVENT and END:VEVENT. Each event has lines such as SUMMARY for the title, DTSTART and DTEND for the times, and LOCATION. Because the format is an open standard and not tied to one company, every major calendar app can read it. Importing a file copies the events into your calendar once; it does not stay linked to the source. For the full line-by-line picture, including how time zones are written, see what is an ICS file.
Method 1: Export from a calendar you already have
If the events are already in a calendar, export them. You get a whole calendar in one file, which is the right choice for moving events between accounts or sharing a set of dates. All three exports below run on a computer.
Apple Calendar on Mac
- Click the calendar’s name in the calendar list (View > Show Calendar List if it is hidden).
- Choose File > Export > Export.
- Choose where to save it, then click Export. You get one .ics file with that calendar’s events.
Google Calendar on a computer
- Under My calendars, point to the calendar and click More > Settings and sharing.
- Under Calendar settings, click Export calendar.
- An .ics file downloads. Settings > Import & export > Export gives you a .zip with one .ics per calendar instead.
Classic Outlook for Windows
- Open the Calendar and select the calendar you want to export.
- Click File > Save Calendar and name the file.
- Use More Options to pick the date range and detail level, click OK, then Save.
Google notes that you can only export from a computer, not from the Google Calendar app, and that you need the “Make changes and manage sharing” permission for the calendar. Exporting a single event works differently in each app, so if you only need one event, Method 2 or 3 is often quicker.
Method 2: Create an ICS from a photo, screenshot, or paper schedule
Most events never start in a calendar. They arrive as a flyer on a fridge, a screenshot of a group chat, or a printed schedule. Photo2Calendar reads the image, turns what it finds into event drafts, and lets you check each field before you save or export an .ics file.
- 1
Take a photo or screenshot
Photograph the flyer, invitation, or paper schedule, or take a screenshot of the email, chat, or web page. Keep the date, time, and place in the frame.
- 2
Open it in Photo2Calendar
The app reads the visible text and prepares a draft for each event it finds, with title, date, start and end time, and location.
- 3
Review every field
Compare each draft with the image. Check the year if the source does not print one, am and pm, and the time zone if the event is somewhere else.
- 4
Export the .ics file
Export the reviewed event as an .ics file and open it in Google Calendar, Outlook, or another calendar app. You can also save straight to your iPhone calendar.
Example: a flyer with no year
A fictional flyer, written out here instead of a screenshot.
What the flyer says
“Spring Plant Swap · Saturday, April 17 · 10–1 · Riverside Community Garden”
What to check in the draft
- Year: the flyer has none. April 17 is a Saturday in 2027, which fits.
- Time: “10–1” means 10:00 am to 1:00 pm, not 1:00 am.
- Location: the full name, so maps can find it.
What you export
One event, Saturday, April 17, 2027, 10:00 am–1:00 pm, Riverside Community Garden, as an .ics file you can import anywhere.
Two things always need a human look: the year, when the source leaves it out, and the time zone, when the event is somewhere other than where you are. The image to ICS converter page covers supported image types, and screenshot to calendar covers the screenshot workflow on iPhone.
Make an .ics file from a photo
Free download, plans in the app. Review every field before you export.
Scan with iPhone
Method 3: Free online ICS generators
If you know the details and only need a file, an online generator is the fastest route: type the title, date, times, and place into a form, and download an .ics file. Names that come up often:
- SimpleEvents and ConvertPilot offer free form-based ICS generators.
- Add to Calendar Pro and AddEvent focus on add-to-calendar buttons and links for websites and newsletters, with event pages and RSVPs on top.
- text-2-ics.com says it creates ICS files from plain text, PDFs, images, or CSV.
Generators fit a single event you announce to many people, such as a webinar in a newsletter. They are less handy when the details are in a picture and you would have to type them in first. Before you send a generated file, import it into your own calendar once and check the time.
Method 4: Write it by hand or in code
An .ics file is text, so you can write one in any plain-text editor and save it with the .ics extension. This is a minimal, working file for one event:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example//Hand-written ICS//EN
BEGIN:VEVENT
UID:2027-03-12-team-dinner@example.com
DTSTAMP:20261015T120000Z
DTSTART:20270313T000000Z
DTEND:20270313T020000Z
SUMMARY:Team dinner
LOCATION:Main Street Bistro
END:VEVENT
END:VCALENDAR- VERSION and PRODID are required in the calendar header. PRODID names whatever made the file.
- UID identifies the event. Keep it unique and stable: if you send an update with the same UID, calendar apps can treat it as the same event.
- DTSTAMP is when the file was created, in UTC.
- DTSTART and DTEND are the start and end. For an all-day event, use DTSTART;VALUE=DATE:20270417 and the next day as DTEND.
A note on time zones
The Z at the end of a time means UTC. The example is a dinner at 7:00 pm on Friday, March 12, 2027, in New York, which is 00:00 UTC on March 13. That is why the date in the file says the 13th. A time without Z, such as DTSTART:20270312T190000, is “floating”: it shows as 7:00 pm in whatever zone the calendar is in. To pin an event to a named zone, use DTSTART;TZID=America/New_York:20270312T190000; the standard then expects a matching VTIMEZONE block, which calendar exports add for you. When writing by hand, UTC with Z is the safest choice.
Strictly, lines should end with CRLF and long lines should be folded at 75 bytes; most calendar apps tolerate small slips, but check your file with the iCalendar validator before you share it. Google’s help shows the header and footer it expects. In code, use a library for your language rather than building strings yourself; it handles escaping commas and line folding.
Opening the file you just made
On a Mac, drag the file into Calendar or choose File > Import, then pick the calendar for the events. On iPhone and in Google Calendar, the route depends on where the file is:
- How to open an ICS file on iPhone, from Mail, Files, Safari, WhatsApp, or Messages, into Apple Calendar, Google Calendar, or Outlook.
- How to add an ICS file to Google Calendar, on a computer and the workarounds on iPhone and Android, since the Google Calendar app has no import.
Importing the same file twice can leave you with two copies of an event, so open it once and check the result.
Frequently asked questions
Can I create an ICS file on iPhone?
Yes, but not from the Calendar app: Apple documents calendar export for Calendar on Mac, not on iPhone. On iPhone you can use an app that exports .ics, such as Photo2Calendar for photos and screenshots, or an online generator in Safari.
Is .ics the same as iCal?
Practically, yes. .ics is the file extension of the iCalendar format (RFC 5545). “iCal” was the old name of Apple’s Calendar app, and many people use it for the format. Some sites offer .ical or .ifb files; they usually contain the same format.
Can an ICS file contain multiple events?
Yes. A file can hold many VEVENT blocks between one BEGIN:VCALENDAR and END:VCALENDAR. Calendar exports are full calendars in one file. Google notes that a .zip export contains one .ics file per calendar, which you import one by one.
Why does my event show the wrong time?
Usually the time zone. A time ending in Z is UTC; a time with no Z and no TZID is “floating” and is read as local time wherever the file is opened. Check the source zone, re-export, and check your calendar’s time zone setting.
Can I create an ICS from a PDF?
Yes. Calendar apps cannot read a PDF directly, so something has to pull out the dates first. text-2-ics.com says it accepts PDFs. With Photo2Calendar, take a screenshot of the PDF page and scan it like any other image, then review the drafts.
Do ICS files work with Outlook?
Yes. In Outlook.com or Outlook on the web, choose Add calendar > Upload from file. Classic Outlook can also save a calendar as an .ics file with File > Save Calendar.
More questions about the app are answered in the Photo2Calendar FAQ.
Sources: Apple, Import or export calendars on Mac; Google, Export events from Google Calendar; Microsoft, Export an Outlook calendar to Google Calendar; RFC 5545. Checked October 15, 2026.