Skip to main content

Free ICS Calendar Generator

Open an .ics file to see its events, export them to CSV, or edit them. Or create .ics calendar invites for Apple Calendar, Outlook and Google, with recurrence and reminders. Runs entirely in your browser.

Works offline once loaded
Open an .ics file · view events, export to CSV or edit

Drop a calendar file (.ics) to see the events inside it, in your own time zone. You can also paste its text. Nothing is uploaded.

Drop an .ics file here, or click to browse

CALENDAR, ICS, ICAL, IFB, TXT · processed on your device

or press Ctrl+V to paste from your clipboard

You can drop multiple files at once

Browse files
Paste a list of dates · many events at once

One event per line, for example 2026-10-05 09:00 Dentist or 05.10.2026 Meeting. Use | to add a location and notes. Or paste CSV with a header row: date,time,end,title,location,description

Lines with a time become 1-hour events (or use 09:00-10:30). Lines with only a date become all-day events.

Event
Reminders
Link, guests and availability

Each event keeps the same wall-clock time in whatever zone the calendar app is set to — best for personal reminders that should stay at, say, 9:00 AM wherever you are.

Add a title and start time to generate your calendar file.

💡 Download the .ics and open it to add the event to Apple Calendar, Outlook, Google Calendar, or any calendar app. Everything is generated in your browser — nothing is uploaded.

Common uses

  • Create a Calendar Invite for an EventMake an .ics file guests can add to any calendar app in one tap.
  • Send a Meeting InviteGenerate an .ics meeting invite with a reminder and recurrence.
  • Create a Recurring EventBuild a repeating calendar event — daily, weekly, monthly, or yearly.
  • Make a Calendar ReminderTurn a to-do or deadline into a calendar event with an alert.
  • Generate Multiple Events at OnceBundle several events into a single .ics file.

How It Works

An .ics file is the universal calendar format every app understands. This builds a valid RFC 5545 .ics file from your event details — no account or calendar service involved.

  1. 1
    You fill in the event details
    Title, location, description, start/end (or all-day), optional recurrence, and a reminder.
  2. 2
    A valid .ics file is generated
    The fields are assembled into an iCalendar VEVENT with properly escaped text and timecodes, all in your browser.
  3. 3
    Add more events if you like
    Multiple events are written into a single calendar file.
  4. 4
    Download or add to Google
    Download the .ics for Apple Calendar/Outlook/any app, or use the one-click "Add to Google Calendar" link.

Your event details — which can be personal or confidential — are turned into a file entirely on your device. Nothing is sent to a calendar service unless you choose the Google Calendar link.

Guide

Worked example

Open "Paste a list of dates · many events at once" and press "Try a sample". Three lines appear: 2026-10-05 09:00 Dentist, 05.10.2026 14:00-15:30 Team meeting | Room 2, and Nov 12 2026 Project deadline. Under the box it says "3 events found". Press "Add 3 events to the list" and you get "3 events added below. Check them, then download." The untouched starter event is replaced. The cards now hold Dentist on 5 October from 09:00 to 10:00 (a line with one time gets one hour), Team meeting on 5 October from 14:00 to 15:30 with the location "Room 2" (the "|" starts the location), and Project deadline on 12 November as an "All-day event" (a line with no time). The bar over the preview reads "3 events · .ics". With the default "Device local time (floating)", the file has DTSTART:20261005T090000 for the dentist and DTSTART;VALUE=DATE:20261112 with DTEND;VALUE=DATE:20261113 for the deadline. The "Download .ics" button saves events.ics.

Which settings to use, and the limits

  • Choose the time zone model before you share the file. "Time zone for timed events" has three settings. "Device local time (floating)" is the default: the event keeps the same clock time in whatever zone the receiving calendar uses, which suits a personal 9:00 reminder. "UTC (fixed moment in time)" converts your times from your browser's zone to one exact moment, so each guest sees their own local time. "A specific time zone" lets you pick a zone from a list, enter times in that zone, and writes the zone into the file with its daylight-saving changes. The setting applies to every timed event, and all-day events ignore it.
  • For an all-day event, the End date is the last day. Tick "All-day event" and "Start" and "End" become date pickers. The End date is included, so Start and End both on 24 December make a one-day event. The file writes DTEND as the next day, because the format treats the end of an all-day event as exclusive. Unticking the box puts times back (09:00 and 10:00) if they are missing. For reminders on an all-day event, "On the day of the event at" adds one at a clock time you choose, such as "On the day at 08:00".
  • Set up repeats from the "Repeat" menu. "Repeat" offers Daily, Weekly, Monthly and Yearly, and "Repeat every" takes 1 to 999. For Weekly, "Repeat on" shows day buttons; if you pick none, the file names no days. For Monthly, "Monthly on" gives "The same day each month", "The last day of the month" and "The last working day (Mon-Fri)". Under "Ends", "After a number of times" starts at 10 and counts whole occurrences in "Times" (a decimal is rounded down), while "On a date" uses "Last date", which counts through the end of that day.
  • Add reminders, more than one if you like. Under "Reminders", "Add a reminder..." offers At start, 5, 15 and 30 min before, 1 and 2 hours, 1 and 2 days, and 1 week before. "Custom reminder" takes a number with "minutes before", "hours before" or "days before". Each reminder is written as a display alarm, and the same reminder cannot be added twice. A reminder further than 112 days before the start is held at 112 days in the file. The Outlook.com, Office 365 and Yahoo Calendar buttons carry no reminders or repeats, so use the .ics download for those.
  • Paste a list to make many events at once. Put one event per line, with the date, an optional time or range such as 09:00-10:30, and the title. Use "|" to add a location and then notes. A date such as 03/04/2026 follows "Numeric dates such as 03/04/2026 are": "Guess from my language" reads it as Month/Day/Year on English pages, or pick Day/Month/Year or Year/Month/Day. Dotted dates like 05.10.2026 are always day first. Only the first 300 lines are used. For a spreadsheet, "Insert CSV header" adds date,time,end,title,location,description above your rows.
  • Pick the way to hand the event over. For one event, the Google Calendar, Outlook.com, Office 365 and Yahoo Calendar buttons open that service in a new tab with the event filled in, which sends the details to that service when you click. "QR code" shows a code to scan with a phone camera, and "Save QR image" keeps it; if the event is too long it says so. "Copy" copies the file text. "Share file" appears only where the browser can share files. With several events, "Download 3 separate files (.zip)" gives one .ics per event, for apps that read only the first event in a file.

Common problems and how to fix them

It says "End must be after start — this event is excluded from the file until fixed."
The message shows in red under the End box when the end is earlier than the start. A common cause is an evening event that runs past midnight, such as 22:00 to 01:00, with End still on the same date: move End to the next day. It also appears if you move Start later without updating End. While it shows, that event is left out of the preview and the download. An empty End is allowed and means the same time as Start.
It says "Add a title and start time to generate your calendar file."
This replaces the preview and the Download and Copy buttons when no event is complete. A title is required (the box is marked "Event title *"), as is a start. A title of only spaces counts as empty. The message also appears when every event is excluded for another reason, such as an End before Start or a repeat end date before the first event, so check for a red message further up.
It says "The repeat end date is before the first event, so this event is excluded from the file until fixed."
You chose "On a date" under "Ends", and "Last date" is earlier than the Start date. This often happens after you move Start forward, because "Last date" keeps its old value. Set "Last date" to the start date or later, or change "Ends" to "Never" or "After a number of times". The same date as the start is accepted.
It says "Not valid emails, left out: bob@example"
In "Link, guests and availability", each address must look like name@domain.com, with a dot after the @ part. Separate guests with commas, semicolons or spaces. Any address that fails is left out of the file and the rest are kept. If you add guests but no organizer, a note says "Add an organizer email so guests can reply to the invite." The file is only marked as an invitation request when there is both an organizer and at least one valid guest.
The event lands at the wrong hour in someone else's calendar.
The default "Device local time (floating)" keeps the same clock time in every zone, so 15:00 entered in London shows as 15:00 for a guest in New York. Change "Time zone for timed events" to "UTC (fixed moment in time)" or "A specific time zone", then download the file again. With the other two settings, the note under the menu names the zone your times are read in. The Google, Outlook and Yahoo buttons follow the same setting.

How it compares

A calendar app itself is the better place for one event in your own account, because it keeps the event synced and sends real invitations. This tool makes a standalone .ics file that any calendar can import, which suits many events at once. It does not send invitations: with an organizer and guests the file is marked as a request, but you still send it yourself. One time zone setting covers all timed events, and monthly repeats cover only the same date, the last day or the last working day, so a rule like "second Tuesday" must be set in your calendar afterwards. It can also open an existing .ics file of up to 10 MB. Files are built in your browser and are not uploaded.

Related Tools

Frequently Asked Questions