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.
Authenticate with a Bearer token from your account settings. Send it in the Authorization header on every request.
curl https://addcal.co/api/calendars \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
The core resources are calendars and events.
| Method | Path | Description |
|---|---|---|
| GET | /api/calendars | List your calendars |
| POST | /api/calendars | Create a calendar |
| GET | /api/calendars/{id}/events | List events in a calendar |
| POST | /api/calendars/{id}/events | Create an event |
| DELETE | /api/events/{id} | Delete 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.
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"
}'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.
All responses are JSON with a consistent structure. Event responses also include ready-made add-to-calendar links for each platform.
Requests are rate-limited for fair usage. The limits depend on your plan. Get in touch if you need more headroom.
Pass an IANA timezone like America/New_York per event, or let it inherit from the calendar. The API handles the datetime conversions.