Overview
Works on any Google account connected from the dashboard. Base URL: https://api.reinterface.com/api/v1. All responses are JSON. Last updated: 2026-07-28.
Every event endpoint accepts an optional calendar_id (from GET /calendar/calendars); omit it to use the account's primary calendar.
Authentication
Identical to the Gmail API: send your personal API key in the x-api-key header. Find it under Dashboard → Settings → API key. connection_id is optional: with one connected account every endpoint defaults to it; with several, pick one via GET /google/accounts.
-H "x-api-key: <YOUR_API_KEY>"List calendars
/api/v1/calendar/calendarsList the account's calendars
curl https://api.reinterface.com/api/v1/calendar/calendars \
-H "x-api-key: <YOUR_API_KEY>"{
"calendars": [
{
"id": "user@gmail.com",
"summary": "user@gmail.com",
"primary": true,
"accessRole": "owner",
"timeZone": "Europe/Berlin",
"color": "#9fe1e7"
}
]
}List events
/api/v1/calendar/eventsList events, soonest first
Query params, all optional: max_results (default 10, max 50), time_min (RFC3339 lower bound, e.g. only upcoming events), calendar_id, and connection_id.
curl "https://api.reinterface.com/api/v1/calendar/events?max_results=10&time_min=2026-07-17T00:00:00Z" \
-H "x-api-key: <YOUR_API_KEY>"{
"events": [
{
"id": "abc123def456",
"summary": "Team sync",
"description": "Weekly catch-up",
"location": "Meet",
"start": "2026-07-20T10:00:00+02:00",
"end": "2026-07-20T10:30:00+02:00",
"htmlLink": "https://www.google.com/calendar/event?eid=..."
}
]
}Create an event
/api/v1/calendar/eventsCreate an event
Required: summary, start, end (RFC3339). Optional: description, location, timeZone, calendar_id, connection_id.
curl -X POST https://api.reinterface.com/api/v1/calendar/events \
-H "x-api-key: <YOUR_API_KEY>" \
-H "content-type: application/json" \
-d '{
"summary": "Team sync",
"start": "2026-07-20T10:00:00Z",
"end": "2026-07-20T10:30:00Z",
"timeZone": "UTC"
}'{
"id": "abc123def456",
"summary": "Team sync",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=..."
}Delete an event
/api/v1/calendar/events/{id}Delete an event (idempotent)
curl -X DELETE "https://api.reinterface.com/api/v1/calendar/events/abc123def456" \
-H "x-api-key: <YOUR_API_KEY>"{
"success": true,
"id": "abc123def456",
"status": "deleted"
}Errors
Errors return { "success": false, "error": { "code", "message" } }.
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | Missing or invalid x-api-key |
| 400 | invalid_request | Missing required fields |
| 403 | missing_scope | Account lacks a Calendar permission, reconnect it |
| 404 | not_found | connection_id does not exist or is not yours |
| 404 | google_account_not_connected | No connected Google account |
| 502 | calendar_event_failed | Google Calendar rejected the request |
Endpoint summary
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/calendar/calendars | List the account's calendars |
| GET | /api/v1/calendar/events | List calendar events |
| POST | /api/v1/calendar/events | Create a calendar event |
| DELETE | /api/v1/calendar/events/{id} | Delete a calendar event |