Scheduling API endpoints for every use case

REST-styled API lets you have full control over your instance of the platform

Quick start

Generate your API keys from Settings > Security. Install the library, and make your first request

Authentication

Manage your API keys directly from your settings page

Data Types

Explore the multiple types of data used within our API

Errors

Cal.com uses conventional HTTP response codes to indicate the success or failure of an API request

API

The whole idea behind Cal.com is that scheduling should be easier. We know that can only be accomplished if people have access to robust and customizable scheduling infrastructure. 

One of the key ways that Cal.com helps to ensure that our product is impactful and effective is by providing our users with access to our API. 

Cal’s REST-styled API lets our users have full control over their instance of the platform. 

The API provides access to all available resources as opposed to simple HTTP endpoints.

You can visit cal.dev, in order to test out the API without affecting your live data or real calendar connection. You can also check out our developer docs to learn more about what you can do with Cal’s API.

From implementation to customization with Cal.com, every aspect of scheduling is effortless.

Most popular endpoints

  • Attendees

  • Availabilities

  • Booking References

  • Bookings

  • Custom Inputs

  • Destination Calendars

  • Event References

  • Event Types

  • Memberships 

  • Payments

  • Schedules

  • Selected Calendars

  • Teams

  • Users 

  • Webhooks

Example usage

Easily fetch all the bookings in your account by simply making a GET request on {{BASE_URL}}/v1/bookings?apiKey={{API_KEY}} and then proceed to hook that up with a custom-built automation such as for a report of all the bookings in the previous month.

Manage an event type by making a PATCH request on {{BASE_URL}}/v1/event-types?apiKey={{API_KEY}} with the body containing the changes you need to make in the event type, such as changing the duration of the event, for example.

Since there is no UI involved in this process, it is extremely straightforward to automate the flows according to your needs all while offering offering immense customizability