productivity
Zoom CLI for AI Agents
Use the Zoom CLI from KosmoKrator to call Zoom tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Zoom CLI Setup
Zoom can be configured headlessly with `kosmokrator integrations:configure zoom`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure zoom --set access_token="$ZOOM_ACCESS_TOKEN" --enable --read allow --write ask --json
kosmokrator integrations:doctor zoom --json
kosmokrator integrations:status --json Credentials
Authentication type: Manual OAuth token oauth2_manual_token. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
access_token | ZOOM_ACCESS_TOKEN | Secret secret | yes | Access Token |
url | ZOOM_URL | URL url | no | API Base URL |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call zoom.zoom_create_meeting '{"topic":"example_topic","type":"example_type","start_time":"example_start_time","duration":1,"timezone":"example_timezone","agenda":"example_agenda","user_id":"example_user_id","settings":"example_settings"}' --json kosmo integrations:zoom zoom_create_meeting '{"topic":"example_topic","type":"example_type","start_time":"example_start_time","duration":1,"timezone":"example_timezone","agenda":"example_agenda","user_id":"example_user_id","settings":"example_settings"}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs zoom --json
kosmo integrations:docs zoom.zoom_create_meeting --json
kosmo integrations:schema zoom.zoom_create_meeting --json
kosmo integrations:search "Zoom" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
zoom.zoom_create_meeting
Create a new Zoom meeting. Provide a topic, start time (ISO 8601), duration, and optional timezone. Returns the meeting with join URL and password.
write - Parameters
- topic, type, start_time, duration, timezone, agenda, user_id, settings
kosmo integrations:call zoom.zoom_create_meeting '{"topic":"example_topic","type":"example_type","start_time":"example_start_time","duration":1,"timezone":"example_timezone","agenda":"example_agenda","user_id":"example_user_id","settings":"example_settings"}' --json kosmo integrations:zoom zoom_create_meeting '{"topic":"example_topic","type":"example_type","start_time":"example_start_time","duration":1,"timezone":"example_timezone","agenda":"example_agenda","user_id":"example_user_id","settings":"example_settings"}' --json zoom.zoom_get_current_user
Get the profile of the currently authenticated Zoom user. Returns email, name, account type, status, and timezone.
read - Parameters
- none
kosmo integrations:call zoom.zoom_get_current_user '{}' --json kosmo integrations:zoom zoom_get_current_user '{}' --json zoom.zoom_get_meeting
Get details of a specific Zoom meeting by ID. Returns the meeting topic, agenda, start time, duration, join URL, and settings.
read - Parameters
- meeting_id
kosmo integrations:call zoom.zoom_get_meeting '{"meeting_id":"example_meeting_id"}' --json kosmo integrations:zoom zoom_get_meeting '{"meeting_id":"example_meeting_id"}' --json zoom.zoom_get_user
Get details of a specific Zoom user by ID or "me" for the authenticated user. Returns email, name, type, status, and timezone.
read - Parameters
- user_id
kosmo integrations:call zoom.zoom_get_user '{"user_id":"example_user_id"}' --json kosmo integrations:zoom zoom_get_user '{"user_id":"example_user_id"}' --json zoom.zoom_list_meetings
List meetings for a Zoom user. Returns meeting IDs, topics, start times, durations, and join URLs. Use type "live" for in-progress, "scheduled" for upcoming, or "upcoming" for all upcoming meetings.
read - Parameters
- user_id, type, page_size, next_page_token
kosmo integrations:call zoom.zoom_list_meetings '{"user_id":"example_user_id","type":"example_type","page_size":1,"next_page_token":"example_next_page_token"}' --json kosmo integrations:zoom zoom_list_meetings '{"user_id":"example_user_id","type":"example_type","page_size":1,"next_page_token":"example_next_page_token"}' --json zoom.zoom_list_recordings
List cloud recordings for a Zoom user. Returns recording IDs, topics, start times, durations, and download URLs for recording files.
read - Parameters
- user_id, page_size, next_page_token
kosmo integrations:call zoom.zoom_list_recordings '{"user_id":"example_user_id","page_size":1,"next_page_token":"example_next_page_token"}' --json kosmo integrations:zoom zoom_list_recordings '{"user_id":"example_user_id","page_size":1,"next_page_token":"example_next_page_token"}' --json zoom.zoom_list_users
List users in the Zoom account. Returns user IDs, emails, names, types (1=basic, 2=licensed), and status. Use this to find user IDs for other operations.
read - Parameters
- page_size, next_page_token
kosmo integrations:call zoom.zoom_list_users '{"page_size":1,"next_page_token":"example_next_page_token"}' --json kosmo integrations:zoom zoom_list_users '{"page_size":1,"next_page_token":"example_next_page_token"}' --json zoom.zoom_create_user
Create a new user in the Zoom account.
write - Parameters
- action, email, first_name, last_name, type
kosmo integrations:call zoom.zoom_create_user '{"action":"example_action","email":"example_email","first_name":"example_first_name","last_name":"example_last_name","type":1}' --json kosmo integrations:zoom zoom_create_user '{"action":"example_action","email":"example_email","first_name":"example_first_name","last_name":"example_last_name","type":1}' --json zoom.zoom_create_webinar
Create a Zoom webinar for a user. Supports scheduling with topic, start time, duration, and timezone.
write - Parameters
- user_id, topic, type, start_time, duration, timezone, agenda
kosmo integrations:call zoom.zoom_create_webinar '{"user_id":"example_user_id","topic":"example_topic","type":1,"start_time":"example_start_time","duration":1,"timezone":"example_timezone","agenda":"example_agenda"}' --json kosmo integrations:zoom zoom_create_webinar '{"user_id":"example_user_id","topic":"example_topic","type":1,"start_time":"example_start_time","duration":1,"timezone":"example_timezone","agenda":"example_agenda"}' --json zoom.zoom_delete_meeting
Delete a Zoom meeting by ID.
write - Parameters
- meeting_id
kosmo integrations:call zoom.zoom_delete_meeting '{"meeting_id":"example_meeting_id"}' --json kosmo integrations:zoom zoom_delete_meeting '{"meeting_id":"example_meeting_id"}' --json zoom.zoom_get_account
Get the current Zoom account information.
read - Parameters
- none
kosmo integrations:call zoom.zoom_get_account '{}' --json kosmo integrations:zoom zoom_get_account '{}' --json zoom.zoom_get_user_settings
Get settings for a Zoom user.
read - Parameters
- user_id
kosmo integrations:call zoom.zoom_get_user_settings '{"user_id":"example_user_id"}' --json kosmo integrations:zoom zoom_get_user_settings '{"user_id":"example_user_id"}' --json zoom.zoom_get_webinar
Get details of a Zoom webinar by ID.
read - Parameters
- webinar_id
kosmo integrations:call zoom.zoom_get_webinar '{"webinar_id":"example_webinar_id"}' --json kosmo integrations:zoom zoom_get_webinar '{"webinar_id":"example_webinar_id"}' --json zoom.zoom_list_past_meetings
List past instances of a Zoom meeting.
read - Parameters
- meeting_id
kosmo integrations:call zoom.zoom_list_past_meetings '{"meeting_id":"example_meeting_id"}' --json kosmo integrations:zoom zoom_list_past_meetings '{"meeting_id":"example_meeting_id"}' --json zoom.zoom_list_webinars
List webinars for a Zoom user.
read - Parameters
- user_id, page_size
kosmo integrations:call zoom.zoom_list_webinars '{"user_id":"example_user_id","page_size":1}' --json kosmo integrations:zoom zoom_list_webinars '{"user_id":"example_user_id","page_size":1}' --json zoom.zoom_update_meeting
Update an existing Zoom meeting. Supports changing topic, start time, duration, and agenda.
write - Parameters
- meeting_id, topic, start_time, duration, agenda
kosmo integrations:call zoom.zoom_update_meeting '{"meeting_id":"example_meeting_id","topic":"example_topic","start_time":"example_start_time","duration":1,"agenda":"example_agenda"}' --json kosmo integrations:zoom zoom_update_meeting '{"meeting_id":"example_meeting_id","topic":"example_topic","start_time":"example_start_time","duration":1,"agenda":"example_agenda"}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
zoom.zoom_create_meeting 8 parameters
kosmo integrations:schema zoom.zoom_create_meeting --json | Parameter | Type | Required | Description |
|---|---|---|---|
topic | string | yes | Meeting topic/title. |
type | string | no | Meeting type: "1" = instant, "2" = scheduled (default), "3" = recurring no fixed time, "8" = recurring fixed time. |
start_time | string | no | Meeting start time in ISO 8601 format (e.g. "2024-01-15T10:00:00Z"). Required for scheduled meetings. |
duration | integer | no | Meeting duration in minutes. Default: 30. |
timezone | string | no | Timezone for the meeting (e.g. "America/New_York"). |
agenda | string | no | Meeting description/agenda. |
user_id | string | no | User ID to create the meeting for. Default: "me". |
settings | object | no | Meeting settings (join_before_host, mute_upon_entry, etc.). |
zoom.zoom_get_current_user 0 parameters
kosmo integrations:schema zoom.zoom_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
zoom.zoom_get_meeting 1 parameters
kosmo integrations:schema zoom.zoom_get_meeting --json | Parameter | Type | Required | Description |
|---|---|---|---|
meeting_id | string | yes | The meeting ID or UUID. |
zoom.zoom_get_user 1 parameters
kosmo integrations:schema zoom.zoom_get_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | yes | The user ID or "me" for the authenticated user. |
zoom.zoom_list_meetings 4 parameters
kosmo integrations:schema zoom.zoom_list_meetings --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | no | User ID or "me" for the authenticated user. Default: "me". |
type | string | no | Meeting type filter: scheduled, live, or upcoming. Default: "live". |
page_size | integer | no | Number of meetings per page (1–300). Default: 30. |
next_page_token | string | no | Token for the next page of results. |
zoom.zoom_list_recordings 3 parameters
kosmo integrations:schema zoom.zoom_list_recordings --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | no | User ID or "me" for the authenticated user. Default: "me". |
page_size | integer | no | Number of recordings per page (1–300). Default: 30. |
next_page_token | string | no | Token for the next page of results. |
zoom.zoom_list_users 2 parameters
kosmo integrations:schema zoom.zoom_list_users --json | Parameter | Type | Required | Description |
|---|---|---|---|
page_size | integer | no | Number of users per page (1–300). Default: 30. |
next_page_token | string | no | Token for the next page of results. |
zoom.zoom_create_user 5 parameters
kosmo integrations:schema zoom.zoom_create_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
action | string | yes | Creation action: "create" (email invitation), "autoCreate", "custCreate", or "ssoCreate". |
email | string | yes | Email address for the new user. |
first_name | string | no | First name of the user. |
last_name | string | no | Last name of the user. |
type | integer | no | User type: 1=Basic, 2=Licensed, 3=On-prem. |
zoom.zoom_create_webinar 7 parameters
kosmo integrations:schema zoom.zoom_create_webinar --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | yes | User ID or email address to create the webinar for. |
topic | string | yes | Webinar topic / title. |
type | integer | no | Webinar type: 5=Webinar, 6=Recurring webinar, 9=Recurring webinar no fixed time. |
start_time | string | no | Webinar start time in ISO 8601 format. |
duration | integer | no | Webinar duration in minutes. |
timezone | string | no | Timezone for the webinar (e.g., "America/New_York"). |
agenda | string | no | Webinar description / agenda. |
zoom.zoom_delete_meeting 1 parameters
kosmo integrations:schema zoom.zoom_delete_meeting --json | Parameter | Type | Required | Description |
|---|---|---|---|
meeting_id | string | yes | The meeting ID to delete. |
zoom.zoom_get_account 0 parameters
kosmo integrations:schema zoom.zoom_get_account --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
zoom.zoom_get_user_settings 1 parameters
kosmo integrations:schema zoom.zoom_get_user_settings --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | yes | User ID or email address. |
zoom.zoom_get_webinar 1 parameters
kosmo integrations:schema zoom.zoom_get_webinar --json | Parameter | Type | Required | Description |
|---|---|---|---|
webinar_id | string | yes | The webinar ID. |
zoom.zoom_list_past_meetings 1 parameters
kosmo integrations:schema zoom.zoom_list_past_meetings --json | Parameter | Type | Required | Description |
|---|---|---|---|
meeting_id | string | yes | The meeting ID to list past instances for. |
zoom.zoom_list_webinars 2 parameters
kosmo integrations:schema zoom.zoom_list_webinars --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | yes | User ID or email address. |
page_size | integer | no | Number of records returned per page (default 30, max 300). |
zoom.zoom_update_meeting 5 parameters
kosmo integrations:schema zoom.zoom_update_meeting --json | Parameter | Type | Required | Description |
|---|---|---|---|
meeting_id | string | yes | The meeting ID to update. |
topic | string | no | New meeting topic / title. |
start_time | string | no | New start time in ISO 8601 format. |
duration | integer | no | New duration in minutes. |
agenda | string | no | New meeting agenda. |
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.