TeamSchedulerPro

Developer API & Webhooks

Build on TeamSchedulerPro: read availability and bookings, create or cancel bookings via the REST API, and receive real-time events via webhooks. Base URL: https://www.teamschedulerpro.com

Authentication

Create an API key under Admin Dashboard → Developers. The full key is shown once — store it securely. Send it on every API request as a Bearer token (or the X-API-Key header):

Authorization: Bearer tsp_xxxxxxxxxxxxxxxxxxxxxxxx
Keys are scoped to your account — you can only read and write your own meeting types and bookings. Revoke a key any time in the dashboard.

Scheduling API (v1)

List meeting types

GET /api/v1/meeting-types
curl https://www.teamschedulerpro.com/api/v1/meeting-types \
  -H "Authorization: Bearer tsp_..."

Get availability

GET /api/v1/meeting-types/:id/availability?date=YYYY-MM-DD&timezone=America/New_York

Returns open time slots for the date, honouring every assigned member's calendars and working hours.

List bookings

GET /api/v1/bookings?from=YYYY-MM-DD&to=YYYY-MM-DD

Create a booking

POST /api/bookings

Use your API key (no CAPTCHA needed). The meeting type must belong to your account.

curl -X POST https://www.teamschedulerpro.com/api/bookings \
  -H "Authorization: Bearer tsp_..." -H "Content-Type: application/json" \
  -d '{
    "meetingTypeId": 15,
    "clientName": "Jane Doe",
    "clientEmail": "jane@example.com",
    "date": "2026-06-10",
    "time": "14:00",
    "timezone": "America/New_York"
  }'

Cancel a booking

POST /api/v1/bookings/:id/cancel

Rate limit: 120 requests/minute per key.

Webhooks

Register an endpoint under Developers → Webhooks and choose which events to receive. We POST a JSON body to your URL when those events happen.

Events

Payload

{
  "id": "f1a2…",                 // unique delivery id
  "event": "booking.created",
  "created_at": "2026-05-31T15:00:00.000Z",
  "data": {
    "id": 42,
    "meetingTypeId": 15,
    "meetingType": "Intro Call",
    "clientName": "Jane Doe",
    "clientEmail": "jane@example.com",
    "date": "2026-06-10",
    "time": "14:00",
    "timezone": "America/New_York",
    "videoLink": "https://zoom.us/j/…"
  }
}

Verifying signatures

Every delivery includes X-TSP-Signature: sha256=<hmac> — an HMAC-SHA256 of the raw request body, keyed with your webhook's signing secret (shown in the dashboard). Verify it before trusting the payload:

const crypto = require('crypto');
const expected = 'sha256=' + crypto
  .createHmac('sha256', WEBHOOK_SECRET)
  .update(rawBody)            // the raw, unparsed request body
  .digest('hex');
if (expected !== req.headers['x-tsp-signature']) return res.sendStatus(401);
Respond with any 2xx status to acknowledge. Non-2xx or timeouts are retried up to 3 times with backoff; recent attempts appear in the dashboard delivery log.

Need help?

Contact support@teamschedulerpro.com.