iCal Parse API - Read .ics Calendar Files to JSON
Unfolds RFC 5545 continuation lines and extracts each VEVENT's UID, SUMMARY, DESCRIPTION, LOCATION, DTSTART, and DTEND. Detects all-day events (DTSTART as YYYYMMDD) vs. timed events (YYYYMMDDTHHMMSS). TZID parameters are stripped; raw values are normalized to ISO dates.
Code examples
curl -X POST https://api.botoi.com/v1/ical/parse \
-H "Content-Type: application/json" \
-d '{"ics":"BEGIN:VCALENDAR\r\nVERSION:2.0\r\nBEGIN:VEVENT\r\nUID:abc-123\r\nSUMMARY:Team Sync\r\nDTSTART:20260504T140000Z\r\nDTEND:20260504T150000Z\r\nLOCATION:Zoom\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"}'When to use this API
Import user-uploaded calendars
When users upload an .ics export to migrate into your app, parse it and bulk-create the corresponding events in your system. Saves them from manually re-entering years of calendar data.
Aggregate team calendars
Fetch .ics feeds from each team member's calendar, parse each, and merge into a unified team schedule view.
Audit event compliance
For a scheduled maintenance calendar, parse the .ics nightly and check that each event has required fields (description, location). Flag records missing data.
Frequently asked questions
Does this handle time zones?
What about recurring events (RRULE)?
Are line foldings handled?
What if the file has no events?
Does this parse VTODO or VJOURNAL?
Get your API key
Free tier includes 5 requests per minute with no credit card required. Upgrade for higher limits.