iCalendar (ICS) to JSON Converter
Parse .ics calendar files into structured JSON — typed dates, RRULE recurrence rules, organizer/attendee addresses, and an optional recurrence-preview expansion.
Input
Options
Output
Guides
What does this tool do?
It parses a .ics calendar file — the standard format used by Google Calendar, Outlook, Apple Calendar, and most scheduling tools — into structured JSON. Useful for extracting event data from a calendar export without writing your own RFC 5545 parser.
How this tool works
- Paste ICS content into the text box, or upload a
.icsfile. - Toggle the parsing options:
- Pretty-print — indent the JSON output, or minify it.
- Flat events array — output just the
VEVENTentries as a flat array, skipping the fullVCALENDARcomponent tree. - Parse dates — convert
DTSTART/DTEND/DTSTAMPand similar properties into a structured{ iso, isDate, isUtc, tzid }object instead of the raw ICS date string. - Include raw values — keep the original unparsed property text alongside the parsed value.
- Expand RRULE — generate a preview list of upcoming occurrence dates for recurring events, capped at Max occurrences to preview.
What gets parsed
Long folded lines are unfolded per the ICS line-folding rule. Each property's parameters and value are parsed according to the ICS grammar (including quoted parameter values). RRULE becomes a structured recurrence-rule object; ORGANIZER/ATTENDEE become { calAddress, email }; GEO becomes { lat, lon }; TRIGGER (alarm offsets) becomes a duration string plus its offset in seconds; nested components like VALARM and VTIMEZONE are preserved in a components array.
About the RRULE preview
The recurrence expander supports DAILY/WEEKLY/MONTHLY/YEARLY frequencies with INTERVAL, COUNT, UNTIL, and BYDAY — enough to preview the vast majority of real-world recurring events. It's a preview, not a full RFC 5545 recurrence engine: edge cases like BYMONTHDAY or BYSETPOS aren't expanded. The cap on occurrences prevents open-ended rules (no COUNT or UNTIL) from generating an unbounded list.
Common uses
- Extracting event data from an exported calendar for import into another system
- Debugging a malformed or unexpected
.icsfile - Building a preview of upcoming occurrences for a recurring event without a full calendar library
- Converting calendar data into JSON for use in a script or API
Privacy
This tool runs entirely in your browser. Your calendar data is never uploaded to a server.