iCal Feeds
Every calendar has a public iCal feed URL. This endpoint serves RFC 5545 iCalendar data without API key authentication — the URL token is the access control.
Get an iCal feed
Section titled “Get an iCal feed”GET /ical/:ical_token.icsExample
Section titled “Example”curl https://api.chronary.ai/ical/abc123def456.icsResponse 200 OK
Section titled “Response 200 OK”Content-Type: text/calendar; charset=utf-8ETag: "a1b2c3d4"Cache-Control: public, max-age=300
BEGIN:VCALENDARVERSION:2.0PRODID:-//Chronary//API//ENBEGIN:VEVENTDTSTART:20260407T140000ZDTEND:20260407T143000ZSUMMARY:Strategy sync with Acme Corp...END:VEVENTEND:VCALENDARConditional requests
Section titled “Conditional requests”The feed supports ETags. Send If-None-Match to avoid re-downloading unchanged data:
curl https://api.chronary.ai/ical/abc123def456.ics \ -H "If-None-Match: \"a1b2c3d4\""Returns 304 Not Modified if the feed hasn’t changed.
Caching
Section titled “Caching”- Edge cache TTL: 5 minutes
- ETag support for conditional requests
- Rate limited by IP address
Errors
Section titled “Errors”| Status | Cause |
|---|---|
404 | Invalid or expired token |
429 | IP rate limit exceeded |
Getting the feed URL
Section titled “Getting the feed URL”The ical_url is returned when you create or retrieve a calendar:
curl https://api.chronary.ai/v1/calendars/cal_x1y2z3 \ -H "Authorization: Bearer chr_sk_test_your_key_here"The response includes:
{ "ical_url": "https://api.chronary.ai/ical/abc123def456.ics"}See the iCal Feeds guide for instructions on subscribing from Google Calendar, Apple Calendar, and Outlook.