Integrations & Documentation
Connect calendars and conferencing in minutes, then build on a consistent API.
Calendar connections
Users authenticate; we handle token refresh, sync, and conferencing links.
OAuth consent
Allow
Cancel
Embeddable widget
Drop a booking surface into your product that respects availability & buffers.
Mon
Tue
Wed
Thu
Fri
Sat
Sun
10:00
10:30
11:00
Getting started
Step 1
Create an app
Register redirect URIs and generate client credentials.
POST /v1/apps
{"name":"My Platform","redirect_uris":["https://app.example.com/callback"]}
Step 2
Authenticate users
Run OAuth; exchange the authorization code for tokens.
GET /oauth/authorize?client_id=...&redirect_uri=...
POST /oauth/token {"code":"...","client_id":"...","client_secret":"..."}
Step 3
Call the API
Create events, read free/busy, subscribe to webhooks.
POST /v1/events {"title":"Demo","start":"...","end":"..."}
Events
Create, update, list, and delete events with attendees and conferencing.
POST /v1/events
Authorization: Bearer <token>
{
"calendar_id":"primary",
"title":"Design review",
"start":"2025-11-04T14:00:00Z",
"end":"2025-11-04T15:00:00Z",
"attendees":[{"email":"pat@acme.com"}]
}
Recurrence
"recurrence": {
"rrule": "FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10",
"timezone": "America/New_York"
}
Free/Busy & Webhooks
Check availability and react to changes in real time.
POST /v1/freebusy
{
"timeMin":"2025-11-04T00:00:00Z",
"timeMax":"2025-11-04T23:59:59Z",
"calendars":["primary","sales@acme.com"]
}
POST https://yourapp.example.com/webhooks/events
{
"type":"event.updated",
"data":{
"id":"evt_123",
"changes":[{"path":"start","old":"...","new":"..."}]
}
}
Examples
Round-robin assignment
// JavaScript
const team = ["alex@x.com","bea@x.com","cam@x.com"];
const next = team[(Math.floor(Date.now()/1000)) % team.length];
await api.events.create({
title:"Intro call",
attendees:[{email: next}],
start:"2025-11-05T10:00:00Z",
end:"2025-11-05T10:30:00Z"
});
Hold a time window
# cURL
curl -X POST https://api.eventscheduler.com/v1/holds \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"start":"2025-11-04T09:00:00Z",
"end":"2025-11-04T10:00:00Z",
"reason":"Payment pending"
}'
See the landing page for a quick API overview.