API support needed: Creating "All Hosts Available" Booking page via scheduler API

API Endpoint
POST https://api.zoom.us/v2/scheduler/schedules?user_id={userId}

Description
Hi guys!
I’m working with the Zoom Scheduler API and need assistance creating an “All Hosts Available” booking page programmatically.

What I’ve accomplished:

  • Successfully created “All Hosts Available” booking pages through the Zoom web interface

  • These pages correctly show multiple hosts and display only time slots when ALL hosts are available

The Problem:

When I attempt to create the same type of booking page via the API endpoint POST /v2/scheduler/schedules, the page is created as “One to One” instead of “All Hosts Available”, despite including multiple availability_rules.

My API Request: POST https://api.zoom.us/v2/scheduler/schedules?user_id={userId}

Request Body (simplified):

{
    "add_on_type": "zoomMeeting",
    "availability_rules": [
        {
            "availability_id": "c85ksq8wi530gygwdjeoshlba0",
            "email": "***********",
            "segments_recurrence": { ... },
            "time_zone": "Asia/Singapore"
        },
        {
            "availability_id": "dyed1cor2zqcp59mfoxucqqde0",
            "email": "***********",
            "segments_recurrence": { ... },
            "time_zone": "Asia/Singapore"
        }
    ],
    "attendees": [
        {"email": "***********", "host": true},
        {"email": "***********", "host": true}
    ],
    "pooling_type": "multiPool",
    "user_pools": [{
        "pooling_type": "collective",
        "selected_users": [
            "***********",
            "***********"
        ]
    }],
    "schedule_type": "one",
    "duration": 30,
    "summary": "Test Booking Page",
    ...
}

What I’ve observed:

  1. The API accepts the request without errors

  2. A booking page is created successfully

  3. However, the created page type is “One to One” instead of “All Hosts Available”

  4. When I GET the schedule via API (GET /v2/scheduler/schedules/{scheduleId}), the response does NOT include pooling_type, user_pools, or attendees fields

  5. However, when I inspect a working “All Hosts Available” page (created via UI) in the browser console, these fields ARE present in the frontend data

My questions:

  1. What is the correct API method to create an “All Hosts Available” booking page?

  2. Is there a separate endpoint for creating or managing user pools?

  3. Are the pooling_type, user_pools, and attendees parameters supported in the POST /v2/scheduler/schedules endpoint?

  4. Is there additional documentation for creating multi-host scheduling pages via API?

Environment:

P.S. This is an interface snapshot with my comments (red one - what I have, blue one - what I need)

I would greatly appreciate any guidance on the correct approach to create “All Hosts Available” booking pages via API.

Thank you for your assistance!

Hi @IO666 ,

I noticed in the request body, you’re missing the required availability_override field.

Could you please try the request again as documented here?

Hi @gianni.zoom !

Thank you for advice.

Yes, I tried to use this field as well.

{

"add_on_type": "zoomMeeting",
"availability_override": false,
"availability_rules": [

    {
    "availability_id": "c85ksq87676wi530gygwdjeoshlba0",
    "email": "***********",
    "segments": [],
    "segments_recurrence": {
        "mon": [{ "start": "09:00", "end": "17:00" }],
        "fri": [{ "start": "09:00", "end": "17:00" }]
          },
    "time_zone": "Asia/Singapore",
    "use_custom": false},

    {
    "availability_id": "dyed1cor27676zqcp59mfoxucqqde0",
    "email": "***********",
    "segments": [],
    "segments_recurrence": {
        "mon": [{ "start": "11:00", "end": "19:30" }],
        "tue": [{ "start": "11:00", "end": "19:30" }],
        "wed": [{ "start": "11:00", "end": "19:30" }],
        "thu": [{ "start": "11:00", "end": "19:30" }]
          },
    "time_zone": "Asia/Kuala_Lumpur",
    "use_custom": false}
  ],
"attendees": [
    { "email": "***********@scheduler.zoom.us", "host": true },
    { "email": "***********@scheduler.zoom.us", "host": true }
  ],
"pooling_type": "multiPool",
"user_pools": [
    {
"pooling_type": "collective",
"selected_users": [
    "***********@scheduler.zoom.us",
    "***********@scheduler.zoom.us"
      ]
    }
  ],
"description": "Test",
"duration": 32,
"interval_type": "fixed",
"start_date": "2026-01-05",
"end_date": "2026-03-31",
"location": "Zoom Meeting",
"secret": false,
"slug": "test15-two-hosts-api",
"start_time_increment": 30,
"summary": "Test15 two hosts",
"schedule_type": "one",

...

}
  1. When I put “availability_override”: false the schedule created, but only as “One-to-one” meeting (doesnt matter how many availabilities rules I put in the body).

  2. When I put “availability_override”: true I get error:

{
    "error": {
"code": 400,
"errors": [
            {
"appCode": 0,
"domain": "global",
"message": "Non-shared type does not support availability override",
"reason": "invalidArgument"
            }
        ],
"message": "Non-shared type does not support availability override",
"reqId": "ZMAIL_3193fd44e131c4dfdfdf903871fccfcwdcc8b4b57",
"status": "INVALID_ARGUMENT"
    }
}

But am I correct to put many availability rules in the body?
Because in the doc nothing about that. How I can find documentation to help to create “All Hosts Available meeting“?

Thank you!