ListFan
Time · Free

Calendar event ICS builder

Prepare a UTC event or recurring series for import into Google Calendar and other iCalendar applications.

01Enter your values

Runs in your browser

Runs offline in your browser. Once the page and required files have loaded, processing needs no internet.

Interpret the entered start as UTC and add the duration in minutes to obtain the end. Escape iCalendar text and emit a VEVENT with DTSTART, DTEND, UID and an optional RRULE. Fold lines at 75 UTF-8 bytes without splitting a character. Download the ICS file and import it into your calendar.

Example

How it works

Prepare a UTC event or recurring series for import into Google Calendar and other iCalendar applications.

DTEND = DTSTART + duration × 60 s

No. Enter UTC, not your local clock time. This creates one event or one repeating series; it does not synchronize, detect conflicts or notify attendees. Monthly and yearly recurrences follow calendar rules and skip invalid dates. Calendar import behavior may vary. The same inputs produce the same event identifier.

Your data stays yours

Inputs are processed on this page and are never sent to a server.

About this tool

Prepare a UTC event or recurring series for import into Google Calendar and other iCalendar applications.

Interpret the entered start as UTC and add the duration in minutes to obtain the end. Escape iCalendar text and emit a VEVENT with DTSTART, DTEND, UID and an optional RRULE. Fold lines at 75 UTF-8 bytes without splitting a character. Download the ICS file and import it into your calendar.

Use tool ↑

How to use it

  1. Enter your values

    Event title · Start · UTC · Duration · min · Recurrence · Occurrences · Location

  2. Calculate / generate

    Prepare a UTC event or recurring series for import into Google Calendar and other iCalendar applications.

  3. Result

    BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ListFan//Local Calendar Builder//EN CALSCALE:GREGORIAN BEGIN:VEVENT UID:20260922T180000Z-8367d941@list.fan DTSTAMP:20260922T080906Z DTSTART:20260922T180000Z DTEND:20260922T19

Calculation method

  1. Interpret the entered start as UTC and add the duration in minutes to obtain the end.
  2. Escape iCalendar text and emit a VEVENT with DTSTART, DTEND, UID and an optional RRULE.
  3. Fold lines at 75 UTF-8 bytes without splitting a character.
  4. Download the ICS file and import it into your calendar.
DTEND = DTSTART + duration × 60 s
Example scenario

Calendar event ICS builder

Event title
2026-09-22
Start · UTC
2026-09-22T18:00
Duration · min
60
Recurrence
No recurrence
Occurrences
1
Location
Result
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ListFan//Local Calendar Builder//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:20260922T180000Z-8367d941@list.fan
DTSTAMP:20260922T080906Z
DTSTART:20260922T180000Z
DTEND:20260922T190000Z
SUMMARY:2026-09-22
END:VEVENT
END:VCALENDAR

Frequently asked questions

Does this synchronize my calendar or convert local time?

No. Enter UTC, not your local clock time. This creates one event or one repeating series; it does not synchronize, detect conflicts or notify attendees. Monthly and yearly recurrences follow calendar rules and skip invalid dates. Calendar import behavior may vary. The same inputs produce the same event identifier.

Where does my data go?

Calculations run on your device. Form inputs are not sent to a server.

Terms and definitions

Enter your values

Event title

One line, up to 500 characters; exported as SUMMARY.

Enter the source text; it is processed locally.

Start · UTC

Enter a valid UTC date and time. The browser's timezone is not applied.

Enter the date or time in the format shown.

Duration · min

Whole minutes from 1 to 10080. The end is start plus this duration.

Enter a whole number; fractional counts are not valid.

Minimum: 1 · Maximum: 10080

Recurrence

Choose no recurrence or a daily, weekly, monthly or yearly frequency.

Choose the mode that matches the data you entered.

Options: No recurrence · Daily · Weekly · Monthly · Yearly

Occurrences

For recurring events only: 1–1000 occurrences including the first event.

Enter a whole number; fractional counts are not valid.

Minimum: 1 · Maximum: 1000

Location

Optional plain text, up to 1000 characters. No address lookup or geocoding.

Enter the source text; it is processed locally.

Result

Result

Interpret the entered start as UTC and add the duration in minutes to obtain the end. Escape iCalendar text and emit a VEVENT with DTSTART, DTEND, UID and an optional RRULE. Fold lines at 75 UTF-8 bytes without splitting a character. Download the ICS file and import it into your calendar.

Calculated from your entries using the method below.

Common mistakes and quick fixes

Start time

Mistake: Entering a local time while assuming automatic timezone conversion.

Fix: Convert the intended start to UTC before entering it. Check the imported calendar event's displayed local time.

Limits and key assumptions

  • No. Enter UTC, not your local clock time. This creates one event or one repeating series; it does not synchronize, detect conflicts or notify attendees. Monthly and yearly recurrences follow calendar rules and skip invalid dates. Calendar import behavior may vary. The same inputs produce the same event identifier.
  • Fold lines at 75 UTF-8 bytes without splitting a character.
  • Displayed results may be rounded; rounding does not add measurement precision.