DocumentationDeveloper API

Developer API

A clean, RESTful API for creating events and managing calendars programmatically. Smart defaults handle timezones, durations, and calendar creation so you can get going with a single request.

Authentication

Authenticate with a Bearer token from your account settings. Send it in the Authorization header on every request.

Authenticated request
curl https://addcal.co/api/calendars \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Endpoints

The core resources are calendars and events.

MethodPathDescription
GET/api/calendarsList your calendars
POST/api/calendarsCreate a calendar
GET/api/calendars/{id}/eventsList events in a calendar
POST/api/calendars/{id}/eventsCreate an event
DELETE/api/events/{id}Delete an event

Create an event

Title and a start time are all you need. AddCal sets a one-hour duration if you omit the end, and inherits the timezone from the calendar.

Create event
curl -X POST https://addcal.co/api/calendars/{calendar}/events \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Team Meeting",
    "start": "2026-01-15T14:00:00Z"
  }'
For the complete, interactive reference with every endpoint and field, see the full API docs.

Frequently asked questions

Do I need authentication?

Yes. Most endpoints require a Bearer token, which you generate in your account settings. If you only need to create events from a URL without a token, use a Smart Link instead.

What response format does the API use?

All responses are JSON with a consistent structure. Event responses also include ready-made add-to-calendar links for each platform.

Are there rate limits?

Requests are rate-limited for fair usage. The limits depend on your plan. Get in touch if you need more headroom.

How do I handle timezones?

Pass an IANA timezone like America/New_York per event, or let it inherit from the calendar. The API handles the datetime conversions.