ICS Calendar Event Generator
Create a local ICS event with explicit UTC offsets or inclusive all-day dates.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
Generate one local ICS event with UTC timed endpoints or an all-day inclusive date range, plus escaped text and UTF-8-aware line folding.
How to use it
- 1Enter an event title and choose timed or all-day mode.
- 2Enter known offsets for timed endpoints, or the first and last included days.
- 3Add optional location/description, then inspect the event result.
- 4Download the ICS file and review it in your calendar application.
Example
- Input
- 19 October 2026, 14:00–15:00 at +05:30.
- Output
- UTC start 20261019T083000Z; UTC end 20261019T093000Z.
The file does not send invitations or write to a calendar account.
What happens to your data
Event details are processed locally without uploads or storage. The downloaded ICS includes those details; review it before sharing.
Last updated October 2026
An ICS file lets a calendar application import an event without requiring a connection to your account. This generator creates one event locally from a title, dates, optional location and description. Timed events use explicit numeric UTC offsets and are serialized as UTC instants. All-day events use date-only values, with the form asking for the first and last included days.
The generated text can be inspected before downloading. It includes an event identifier, creation timestamp, escaped text and UTF-8-aware line folding. Creating or downloading the file does not email invitations, add attendees, reserve a room or write to a calendar account.
How it works
For a timed event, enter each endpoint as YYYY-MM-DDTHH:MM and supply the known UTC offset that applies at that endpoint. The tool converts both to UTC and requires the end instant to be later than the start. The downloaded DTSTART and DTEND values end with Z. A calendar application can then display that same instant in its own selected timezone. City names and daylight-saving transitions are not looked up; a numeric offset must be correct for its date.
For an all-day event, choose the first and last included calendar dates. RFC 5545 defines an event's end as non-inclusive, so a 19–20 October event is serialized with a DTSTART date of 19 October and a DTEND date of 21 October. Date-only events do not acquire a midnight UTC time. A one-day event uses the same included start/end in the form and the following date in the file. Years 0001–9999 are supported, but the last included day must be before 9999-12-31 so the exclusive end fits the format.
The file uses a VCALENDAR wrapper and one VEVENT. A new result gets a fresh random UID; repeated downloads of that same result keep its UID and generated content. Editing any field removes the old result, and generating again creates a new identifier. Calendar applications can handle repeated imports differently: a new UID or re-import may create duplicates, so review the destination calendar before adding the event again. This tool does not implement event update distribution or scheduling messages.
Title, location and description are calendar text. Backslashes, commas, semicolons and line breaks are escaped so the entered text cannot insert another property or event. Long content lines are folded at UTF-8 byte boundaries, preserving whole Unicode characters, and physical lines use CRLF endings. Unsupported control characters and unpaired Unicode surrogates are rejected. Text is displayed safely as text rather than rendered as HTML.
The scope is deliberately one event with minute-precision timed endpoints or an all-day range. There are no recurrence rules, attendees, organizer addresses, reminders, attachments, named timezone definitions or automatic calendar connections. The output is a file for you to inspect and import, rather than proof that every calendar client will interpret every field identically. Check the imported date, time, title and location in your actual application.
Event details stay in browser memory and are not submitted to a calendar service. The downloaded file contains those details and can reveal private meeting information if shared. Limits are a 200-character title, 300-character location, 4,000-character description and 16,000 UTF-8 output bytes. Switching event type clears its date fields so timed endpoints cannot accidentally become all-day dates.
Worked example: A one-hour event with an explicit +05:30 offset
- Input
- Project review; 19 October 2026, 14:00–15:00; both endpoint offsets +05:30.
- Result
- DTSTART:20261019T083000Z DTEND:20261019T093000Z
One UTC event file. No invitation is sent, and no calendar account is modified.
Common use cases
- Prepare a single project review or community event for calendar import without connecting an account.
- Convert known local date-times and numeric offsets into an explicit UTC event.
- Create one-day or multi-day all-day entries with the correct exclusive end date.
- Inspect escaped calendar text and the UTC endpoints before downloading an ICS file.
Frequently asked questions
Will this send a calendar invitation?+
No. It creates one downloadable ICS file. It does not send emails, add attendees, connect to an account or automatically write an event into a calendar. Importing the file is a separate action you choose in your calendar application.
Why does a timed event use UTC?+
UTC represents a specific instant. The tool converts your date-times using their entered numeric offsets, and the importing calendar displays those instants in its configured timezone. Verify each offset; the generator does not look up city or daylight-saving rules.
Why is the all-day file's end date one day later?+
The form asks for the last included day, while iCalendar DTEND is exclusive. An event covering 19 and 20 October therefore ends at the date 21 October in the file. It is still a two-day all-day event.
Can I add recurrence, attendees or reminders?+
These are outside this generator's scope. It creates one event with a title, timing, optional location and description. Use an appropriate calendar application when you need recurring schedules, invitations or reminder behavior.
Will importing the file twice create duplicates?+
It can, depending on the application and event identifier. Repeated downloads of one result keep the same UID, while creating a new result produces a new UID. Check existing events before re-importing; this is not a calendar synchronization service.
Are event details uploaded or saved?+
The file is generated locally in browser memory. The tool does not upload or save event details. Your downloaded ICS contains the title, location, description and dates, so review it before sharing.
Related tools
Time Duration Calculator
Calculate overnight clock intervals or elapsed minutes using explicit UTC offsets.
Time Zone Converter
Convert a time between cities, then compare your own list of them side by side at that same moment.
Printable Calendar Maker
Make year or month calendars for 1900–2200, choose Monday or Sunday starts and print or save as PDF.
Date Calculator
Add or count dates with custom weekends, excluded dates, endpoint rules and a CSV breakdown.