Public API

REST API for integrating CalendarPA with Zapier, Make.com, n8n, and custom applications. Requires a Pro plan or higher.

Base URL

https://www.calendarpa.com/api/v1

All endpoints are served over HTTPS. HTTP requests are automatically upgraded.

Authentication

CalendarPA uses the OAuth 2.0 Authorization Code flow. After authorization, include the access token as a Bearer token in every request:

Authorization: Bearer cpa_at_...

OAuth 2.0 Flow

  1. Authorize— Redirect the user to /oauth/authorize with your client_id, redirect_uri, response_type=code, and scope.
  2. Exchange— POST the authorization code to /api/oauth/token with grant_type=authorization_code.
  3. Refresh— When the access token expires, POST to /api/oauth/token with grant_type=refresh_token.
  4. Revoke— POST to /api/oauth/revoke to revoke a token pair.

Scopes

ScopeGrants
bookings:readList and get bookings
bookings:writeCreate and cancel bookings
event_types:readList and get booking types
contacts:readList and search contacts
webhooks:manageSubscribe and unsubscribe webhooks

Endpoints

Account

GET/v1/me
any

Current user info

Bookings

GET/v1/bookings
bookings:read

List bookings

GET/v1/bookings/:id
bookings:read

Get a booking

POST/v1/bookings
bookings:write

Create a booking

POST/v1/bookings/:id/cancel
bookings:write

Cancel a booking

Booking Types

GET/v1/event-types
event_types:read

List booking types

GET/v1/event-types/:id
event_types:read

Get a booking type

Contacts

GET/v1/contacts
contacts:read

List or search contacts

GET/v1/contacts/:id
contacts:read

Get a contact

Webhooks

GET/v1/hooks
webhooks:manage

List subscriptions

POST/v1/hooks
webhooks:manage

Create subscription

DELETE/v1/hooks/:id
webhooks:manage

Delete subscription

Common Parameters

ParameterTypeDescription
limitintegerNumber of results to return (default 25, max 100)
cursorstringCursor for pagination (returned in response)
statusstringFilter bookings by status: CONFIRMED, CANCELLED, PENDING
emailstringSearch contacts or bookings by invitee email

Create Booking

POST /v1/bookings

FieldTypeRequiredDescription
event_type_idstringYesBooking type ID
start_timestringYesISO 8601 datetime (e.g., 2026-03-15T10:00:00Z)
invitee_namestringYesFull name of the invitee
invitee_emailstringYesEmail address of the invitee
invitee_timezonestringNoIANA timezone (defaults to host timezone)
notesstringNoOptional notes from the invitee

Example Request

curl -X POST https://www.calendarpa.com/api/v1/bookings \
  -H "Authorization: Bearer cpa_at_..." \
  -H "Content-Type: application/json" \
  -d '{
    "event_type_id": "et_xyz789",
    "start_time": "2026-03-15T10:00:00Z",
    "invitee_name": "Jane Smith",
    "invitee_email": "jane@example.com",
    "invitee_timezone": "America/New_York"
  }'

Webhook Events

Subscribe to real-time notifications when events occur in your CalendarPA account. Create subscriptions via POST /v1/hooks.

EventDescription
BOOKING_CREATEDA new booking is confirmed
BOOKING_CANCELLEDA booking is cancelled
BOOKING_RESCHEDULEDA booking is rescheduled
BOOKING_APPROVEDA pending booking is approved
BOOKING_DENIEDA pending booking is denied
CONTACT_CREATEDA new contact is created
CONTACT_UPDATEDA contact is updated

Webhook Signing

Every webhook delivery includes an HMAC-SHA256 signature for verification:

HeaderDescription
X-CalendarPA-Signaturesha256=<hex digest>
X-CalendarPA-EventEvent name (e.g., BOOKING_CREATED)
X-CalendarPA-DeliveryUnique delivery ID
X-CalendarPA-TimestampUnix timestamp of delivery

Rate Limits

EndpointLimit
All /v1/* endpoints1,000 requests / minute
OAuth token exchange20 requests / minute
Webhook subscriptions10 requests / minute

Rate-limited requests return 429 Too Many Requests. Maximum 25 active webhook subscriptions per account.

Error Responses

All errors return a JSON body with an error field:

{
  "error": "Unauthorized",
  "code": "INVALID_TOKEN"
}
StatusMeaning
400Invalid request (validation error)
401Missing or invalid access token
403Insufficient scope or plan
404Resource not found
429Rate limit exceeded
500Internal server error

Third-Party Integrations

CalendarPA integrates with popular automation platforms out of the box:

  • Zapier— 7 triggers, 2 actions, and 2 searches. Connect CalendarPA to 7,000+ apps.
  • Make.com — Use CalendarPA as an HTTP module with OAuth2 authentication.
  • n8n — Use the generic OAuth2 API node with CalendarPA endpoints.

Need Help?

If you have questions about the API or need help with your integration, contact our support team at [email protected]