What API can I use to book a meeting with Zoom Scheduler

API Endpoint(s) and/or Zoom API Event(s)

  • Zoom Scheduler API

Description
We are planning on using Zoom Scheduler API to manage booking meetings through our app. However, I don’t see a “booking” endpoint in the Zoom Scheduler API. Which API should we use to actually book a meeting?

Hi @dev36 ,

That does not exist at this time. Here are the current available endpoints:

At this time, you would need to use Create a Meeting endpoint to generate it: Zoom Meeting API

Hi Gianni,

Thank you for you response, that is helpful. By the way, can you clarify if it is possible to get a list of available slots through the Zoom Scheduler API or can you only fetch booked appointments?

Hi @dev36 , yes click on the link and you will see the “Availability” endpoints.

Hi @gianni.zoom Thank you for all your support. I know the scheduler API is relatively new. Can you please confirm that the availability endpoint is currently operational (as of Aug 7, 2024).

I seem to be getting test data as a response from the API.

I’ve tested with different user_id from our team (I tried using the actual user_id or email), as well as random data strings for user_id and in all cases I get no errors. Even If I omit the query paramter all together, I always get the same response from the API as follows:

[
  {
    "items": [
      {
        "availability_id": "6mtrcz9kxq1z8os27q1q7w4qa0",
        "default": true,
        "name": "Working hours",
        "owner": "sbtfhopdtrsdalokgijssg@scheduler.zoom.us",
        "segments_recurrence": {
          "mon": [
            {
              "end": "17:00",
              "start": "9:00"
            }
          ],
          "tue": [
            {
              "end": "17:00",
              "start": "9:00"
            }
          ],
          "wed": [
            {
              "end": "17:00",
              "start": "9:00"
            }
          ],
          "thu": [
            {
              "end": "17:00",
              "start": "9:00"
            }
          ],
          "fri": [
            {
              "end": "17:00",
              "start": "9:00"
            }
          ]
        },
        "time_zone": "America/New_York"
      }
    ]
  }
]
2 Likes

Hi @vbarsoum, that behavior definitely does not seem intended. We’re going to open a support ticket on your behalf so we can ask some follow up questions specific to your account. You’ll get an note at the email you’re using to login here.

Thank you @gianni.zoom for pointing that out. However, I was expecting the availability API to take in a date range and return blocks of bookable times (making sure to exclude the user’s already booked times and external calendar events). However, it seems to only return the rules of a schedule (“segments_recurrence”). Am I missing something? Because otherwise it does not seem very different from the “Get schedules” endpoint. Thanks for your help.

Hi @dev36 , which specific endpoint are you referring to please?

@gianni.zoom The GET availability endpoint.

Hi @dev36 , I see! Availability refers to the rules in which to frame a Schedule.

Example:

You send a POST request to the scheduler availability endpoint that essentially says what user’s working hours are. This will be used to build a schedule(s) where other users can reserve time slots.

You then send a POST request to the insert schedules endpoint that takes the availability_id in availability_rules object (returned in the previous request) to create a schedule for initial user based off of those rules that ultimately determine when someone can reserve/schedule time with initial user.

Take a closer look at the examples provided in the documentation for each endpoint.

@gianni.zoom Thanks for your response. I’m still not understanding if I can use this API to fetch timeslots in the initial user’s schedule. We want to build our own booking appointment UI, but it doesn’t seem possible with the current available API endpoints. I think we’ll build a barebones scheduler in-house instead.

Hi @dev36 , I’m following up on this for more clarity, but I believe you may be right at this time. This API is relatively new so features are still rolling out.