May 27, 2026
Contacts API and webhooks
Programmatically manage Calendly Contacts and subscribe to Contact lifecycle events. These endpoints and webhooks support building bidirectional sync with external systems like CRMs, marketing tools, workflow engines, and AI assistants, and cover Contacts created through scheduling activity, manual entry, and the API itself.
Included endpoints:
- GET /contacts/{contact_uuid} – Retrieve a single Contact
- GET /contacts – List Contacts with optional filters (email, company, job_title, city, timezone, and more)
- POST /contacts – Create a new Contact
- PATCH /contacts/{contact_uuid} – Update an existing Contact
- DELETE /contacts/{contact_uuid} – Delete a Contact
New webhook events:
- contact.created – Fires when a new Contact is created, whether through scheduling, manual entry, or the Contacts API.
- contact.updated – Fires when fields on an existing Contact change. Changes to related resources, such as scheduled events, do not trigger this event.
- contact.deleted – Tombstone event that fires when a Contact is removed. Payload includes only the Contact URI and deleted_at timestamp.
New OAuth scopes:
- contacts:read – Grants read access to Contact resources. Required to create Contacts webhook subscriptions.
- contacts:write – Grants permission to create, update, and delete Contact resources. Implicitly includes contacts:read.