Skip to main content

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

Drop a file or browse
One file · text
Or

Options

Output

JSON Output
 
Was this helpful?

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

  1. Paste ICS content into the text box, or upload a .ics file.
  2. Toggle the parsing options:
    • Pretty-print — indent the JSON output, or minify it.
    • Flat events array — output just the VEVENT entries as a flat array, skipping the full VCALENDAR component tree.
    • Parse dates — convert DTSTART/DTEND/DTSTAMP and 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 .ics file
  • 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.

icalendaricscalendarjsonconverterrrule

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/icalendar-ics-to-json-converter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "icsSource": "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//iotools.cl…",
    "prettyPrint": "true",
    "flatEvents": "true",
    "parseDates": "true",
    "includeRaw": "",
    "expandRecurrence": "",
    "recurrenceLimit": "10"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `icalendar-ics-to-json-converter` tool (iCalendar (ICS) to JSON Converter) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.