Calendar Event File Builder
Author a real multi-event ICS file with explicit UTC or all-day dates, stable identities and exclusive event ends.
Loading tool…
How to use Calendar Event File Builder
Prepare a small original calendar file directly in the browser. Each event has an authored stable UID, a summary and an explicit later end; a separate authored UTC stamp avoids silently replacing source metadata with the current time. The file uses escaped TEXT values and byte-aware UTF-8 folding, while the report keeps readable source fields for inspection before any calendar-app import.
- Author one UTC stamp and one to fifty distinct stable-UID events in the shown JSON shape.
- Use kind UTC with exact UTC timestamps, or all-day with exact dates and an exclusive end date.
- Download the actual ICS file, inspect the readable report and test import in your chosen calendar app before sharing.
Good to know
- At most 100,000 JSON characters and fifty events. Required event fields are uid,kind,start,end,summary; location and description are optional. Unsupported keys, duplicate JSON members and duplicate UIDs are refused. Summary is at most 200 characters, location 500 and description 2,000.
- UIDs are authored 1–255-character ASCII identifiers beginning with a letter or digit and then letters, digits, dot, underscore, @, plus or minus. Their global uniqueness is your responsibility. Reusing an identity can update or duplicate an event depending on the importing app; no import guarantee is inferred.
- UTC timestamps use exact YYYY-MM-DDTHH:mm:ssZ in years 0001–9999, ordinary seconds 00–59. All-day values use exact Gregorian YYYY-MM-DD. End is always later and exclusive; DATE and UTC fields cannot be mixed within an event. No fractional seconds, leap seconds, local floating time, offsets, TZID, DST, RRULE, alarms or invitations are supported.
- Stamp is explicit authored data, not proof of creation time. UTF-8 TEXT escapes backslash, comma, semicolon and normalized line endings. Every physical line is at most 75 UTF-8 octets including a continuation space, with complete Unicode scalars preserved. Output is at most 400,000 bytes and uses CRLF with a final CRLF.
- No calendar account, external link, attachment, organizer, attendee, METHOD, sending, importing or reminder execution is included. The file is a selected VEVENT profile rather than a full calendar editor or conformance certification.
- Processing is local. Output is limited to 1,000,000 text characters unless a stricter file limit is stated.
Common questions
What end date represents one all-day event on October 21?
Use start 2026-10-21 and end 2026-10-22. The end is exclusive. Using the same start and end would create a zero-length interval, which this profile refuses.
Is this input sent to a server?
No. The application processes this input inside your browser tab and does not save it to persistent storage.
Keep going with related tools
All files →iCalendar File Inspector
Inspect bounded VCALENDAR components and event property lines without expanding recurrence or alarms.
Date & timeAll-day Calendar Recurrence Evidence
Expand an explicitly supported all-day iCalendar recurrence subset and trace included or excluded dates inside a bounded start-date window.
Date & timeRecurring Calendar Date Generator
Generate bounded daily, weekly, monthly, or yearly dates while skipping nonexistent calendar dates.