Nylas Bookings API

Nylas Scheduler uses the `/v3/scheduling/bookings` endpoint to manage bookings. Bookings work the same way when the organizer is an [Agent Account](/docs/v3/scheduler/agent-accounts/): the event is created on the Agent Account's primary calendar, and the confirmation, reschedule, cancellation, and reminder email all send from the Agent Account's own address. Each of those messages counts against the account's [daily send quota](/docs/v3/agent-accounts/send-limits/#sending-limits). ## Booking types Nylas Scheduler supports two booking types, `booking` and `organizer-confirmation`. `booking` represents a regular booking flow. When the booking type is `organizer-confirmation`, Nylas creates an event marked "Pending" in the organizer's calendar. It then sends an confirmation request email to the organizer, which includes a link to a page where the organizer can confirm or cancel the booking. ### Finalizing pending bookings The [`PUT /v3/scheduling/bookings/{booking_id}` request](/docs/reference/api/bookings/put-bookings-id/) allows the organizer to confirm or cancel a pending booking. ## Booking flow The Scheduling Component provides information about the selected time slot, and any additional information that the user added, to the [`/v3/scheduling/bookings` endpoint](/docs/reference/api/bookings/post-bookings/). The Bookings endpoint performs the following tasks: 1. Validates the provided session ID and uses it to retrieve the related Configuration object. 2. Confirms if the selected time slot is still available. 3. Retrieves the booking participant's `grant_id`, using the list of participants' email addresses in the Configuration object. 4. Creates an event. If the booking type is set to `organizer-confirmation`, a placeholder event is created in the organizer's calendar. 5. Creates a booking entry in the database and maps the provider's event ID and Scheduler's `booking_id`. If the booking type is set to `organizer-confirmation`, a booking entry with the `pending` status is created. The booking entry includes the placeholder event's `booking_id` and the `additional_fields` data provided in the request. 6. Nylas creates a booking reference based on the configuration ID and the booking ID. You can use the booking reference to reschedule and cancel the event. 7. (Optional) Emits a booking (`booking.created`) or a pending booking (`booking.pending`) webhook, depending on the booking type. ## Bookings scopes The table below lists the Bookings endpoints and which scopes they require. The table shortens the full scope URI for space reasons, so add the prefix for the provider when requesting scopes. The ☑️ in each column indicates the most restrictive scope you can request for each provider and still use that API. More permissive scopes appear under the minimum option. If you're already using one of the permissive scopes, you don't need to add the more restrictive scope. | Endpoint | Google Scopes`https://www.googleapis.com/auth/...` | Microsoft Scopes`https://graph.microsoft.com/...` | | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | :----------------------------------------------------- | | **POST** `/scheduling/bookings`**DELETE** `/scheduling/bookings/`**PATCH** `/scheduling/bookings/` | `/calendar.events` ☑️`/calendar` | `Calendars.ReadWrite` ☑️ | For more information about scopes, see [Using scopes to request user data](/docs/dev-guide/scopes/).

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v3/scheduling/bookings Book a meeting from a scheduling page · Book an event #
Ask an LLM
“How do I book a time slot for a guest on a scheduling configuration?”
“Can I add extra guests when booking a meeting?”
Tell an agent
Book {guest} from {start_time} to {end_time}.
Book a meeting on configuration {configuration_id} for {guest} at {start_time} until {end_time}.
GET /v3/scheduling/bookings/{booking_id} Retrieve a scheduled booking · Return a booking #
Ask an LLM
“How can I see the details of a booking someone made?”
“Can I look up a booking on a public scheduling page without a session?”
Tell an agent
Get booking {booking_id}.
Show booking {booking_id} from configuration {configuration_id}.
PATCH /v3/scheduling/bookings/{booking_id} Reschedule an existing booking · Reschedule a booking #
Ask an LLM
“How do I move a booked meeting to a different time?”
“Does rescheduling a booking update the event on the calendar too?”
Tell an agent
Reschedule booking {booking_id}.
Move booking {booking_id} on configuration {configuration_id} to a new time.
PUT /v3/scheduling/bookings/{booking_id} Confirm or reject a pending booking · Confirm a booking #
Ask an LLM
“How do I approve a booking request that's waiting for confirmation?”
“Can I reject a pending booking and give a reason?”
Tell an agent
Set pending booking {booking_id} to {status} using salt {salt}.
Reject pending booking {booking_id} with salt {salt} because {cancellation_reason}.
DELETE /v3/scheduling/bookings/{booking_id} Cancel a booking and its event · Delete a booking #
Ask an LLM
“What happens to the calendar event when I cancel a booking?”
“Can I record a reason when a booked meeting is cancelled?”
Tell an agent destructive · confirm first
Cancel booking {booking_id}.
Delete booking {booking_id} with the reason {cancellation_reason}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nylas:nylas-bookings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

nylas-bookings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Nylas Bookings API
  version: v3
  summary: The complete Nylas v3 API — Email, Calendar, Contacts, Notetaker, Scheduling, Administration, and Migration.
  description: The Nylas API is designed using the REST ideology to provide simple and predictable URIs to access and modify objects. Requests support standard HTTP methods like `GET`, `PUT`, `POST`, and `DELETE`, and standard status codes. Response bodies are always UTF-8 encoded JSON objects, unless explicitly documented otherwise. You can use the Nylas Postman collection to quickly start using the Nylas APIs. For more information, check out the Nylas Postman collection documentation.
  contact:
    url: https://www.nylas.com/
servers:
- url: https://api.us.nylas.com
  description: U.S.
- url: https://api.eu.nylas.com
  description: E.U.
security:
- ACCESS_TOKEN: []
- NYLAS_API_KEY: []
tags:


# --- truncated at 32 KB (64 KB total) ---
# Full source: https://artifacts.apis.io/nylas/openapi/nylas-bookings-api-openapi.yml