Module zoom.scheduler

ballerinax/zoom.scheduler Ballerina library

2.0.0

Overview

Zoom is a video communications platform for meetings, webinars and team chat. Zoom Scheduler is its booking tool: hosts publish schedules with their availability, and invitees book open time slots that become Zoom meetings.

The Zoom Scheduler connector lets Ballerina applications manage schedules, availability, bookings and scheduled events, create single-use and customised scheduling links, and read routing-form responses and booking analytics. It supports version 2 of the Zoom Scheduler API.

Key features

  • Publish and manage booking schedules, including buffers, custom questions and weekly availability rules
  • Maintain users' working-hour availability and date-specific overrides
  • Find open time slots and book them on behalf of invitees
  • Track, update and cancel scheduled events and their attendees
  • Issue single-use and customised scheduling links, and report on routing forms and booking analytics

Setup guide

To use the Zoom Scheduler connector, you must have access to the Zoom API through Zoom Marketplace and a project under it. If you do not have a Zoom account, you can sign up for one here.

Step 1: Create a new app

  1. Open the Zoom Marketplace.

  2. Click "Develop" → "Build App"

    Zoom marketplace

  3. Choose "General App" app type (for user authorization with refresh tokens)

    App Type

  4. Fill in basic information

Step 2: Configure OAuth settings

  1. Note down your credentials:

    • Client ID
    • Client Secret

    App Credentials

  2. Set redirect URI: Add your application's redirect URI (e.g., http://localhost:8080/callback)

    Redirect URI

  3. Add scopes: Make sure your Zoom app has the necessary scopes for the Scheduler API:

    • Add scheduler:read, scheduler:write and user:read in the scope

    Zoom Scopes

Step 3: Activate the app

  1. Complete all required information

  2. Activate the app

    Activate App

Step 4: Get user authorization

  1. Direct users to authorization URL (replace YOUR_CLIENT_ID and YOUR_REDIRECT_URI):
https://zoom.us/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=scheduler:read scheduler:write user:read
  1. User authorizes the app and gets redirected to your callback URL with an authorization code

  2. Exchange authorization code for tokens:

Copy
curl -X POST https://zoom.us/oauth/token \
  -H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)" \
  -d "grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=YOUR_REDIRECT_URI"

This returns both access_token and refresh_token.

Replace:

  • CLIENT_ID with your app's Client ID
  • CLIENT_SECRET with your app's Client Secret
  • AUTHORIZATION_CODE with the code received from the callback
  • YOUR_REDIRECT_URI with your configured redirect URI

Step 5: Verify your setup

Copy
curl -X GET "https://api.zoom.us/v2/users/me" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

This will give you the user ID needed for API calls.

Quickstart

To use the Zoom Scheduler connector in your Ballerina application, update the .bal file as follows:

Step 1: Import the module

Import the zoom.scheduler module.

Copy
import ballerinax/zoom.scheduler as zoom;

Step 2: Instantiate a new connector

  1. Create a Config.toml file and configure the credentials obtained in the steps above:
Copy
clientId = "<Client ID>"
clientSecret = "<Client Secret>"
refreshToken = "<Refresh Token>"
refreshUrl = "https://zoom.us/oauth/token"
userId = "<Zoom User ID>"
  1. Create a zoom:ConnectionConfig with the OAuth 2.0 refresh-token credentials and initialize the connector with it.
Copy
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string refreshToken = ?;
configurable string refreshUrl = ?;
configurable string userId = ?;

final zoom:Client zoomClient = check new ({
    auth: {
        clientId,
        clientSecret,
        refreshToken,
        refreshUrl
    }
});

Step 3: Invoke the connector operation

Now, utilize the available connector operations.

List the user's schedules

Copy
public function main() returns error? {
    zoom:ScheduleList _ = check zoomClient->listSchedules(userId = userId, pageSize = 10);
}

Step 4: Run the Ballerina application

Copy
bal run

Examples

The Zoom Scheduler connector provides practical examples illustrating usage in various scenarios. Explore these examples, covering the following use cases:

  1. Schedule slot booking - Create a booking page, find the first open slot in a time window, book it for an invitee and issue a single-use scheduling link.

  2. Availability hours review - Review a user's availabilities across all pages, create missing working hours and compare booking analytics with the previous period.

Import

import ballerinax/zoom.scheduler;Copy

Other versions

Metadata

Released date: 1 day ago

Version: 2.0.0

License: Apache-2.0


Security

Direct vulnerabilities: No known direct vulnerabilities

Indirect vulnerabilities: 

Checked on 2026-11-08 via OSV.dev


Compatibility

Platform: any

Ballerina version: 2201.12.7

GraalVM compatible: Yes


Pull count

Total: 80

Current verison: 0


Weekly downloads


Source repository


Keywords

Video Conference

Scheduling

Calendar

Vendor/Zoom

Area/Communication

Type/Connector


Contributors