Перейти к содержимому
POST AI agent ready /v1/ical/parse

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.

Parameters

stringrequired

Raw .ics file content.

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?
Partially. TZID parameters (e.g., "DTSTART;TZID=America/New_York:...") are stripped and the naive datetime is returned as-is. For full timezone conversion, combine with /v1/timezone/convert.
What about recurring events (RRULE)?
RRULE lines are ignored. Each VEVENT block is returned once; expansion is not performed. Use a full-featured library like ical.js if recurrence matters.
Are line foldings handled?
Yes. Continuation lines (space or tab at the start) are unfolded before parsing, per RFC 5545.
What if the file has no events?
An empty events array is returned with count:0. Not treated as an error.
Does this parse VTODO or VJOURNAL?
No. Only VEVENT blocks are extracted. Other component types are ignored.

Get your API key

Free tier includes 5 requests per minute with no credit card required. Upgrade for higher limits.