Zoom Meeting 📹
Create and delete Zoom meetings via the Zoom API using Server-to-Server OAuth.
Scripts Overview
| Script | Purpose | Key Input | Key Output |
|---|---|---|---|
zoom_meeting.sh |
Create a scheduled meeting | topic, start_time | join_url, id, password |
zoom_delete_meeting.sh |
Delete a meeting by ID | meeting_id | confirmation JSON |
zoom_auth.sh |
Shared auth helper (sourced internally) | creds file path | access token |
Create a Meeting
bash skills/zoom-meeting/scripts/zoom_meeting.sh <topic> <start_time> [duration] [timezone]
Parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
topic |
string | ✅ | — | Meeting title shown to participants |
start_time |
string | ✅ | — | Start time in YYYY-MM-DDTHH:MM:SS format, no timezone suffix |
duration |
integer | ❌ | 60 |
Duration in minutes |
timezone |
string | ❌ | Asia/Aqtobe |
IANA timezone name (e.g. Europe/London, America/New_York) |
Examples
# Minimal — 60 min meeting in default timezone
bash skills/zoom-meeting/scripts/zoom_meeting.sh "Team Standup" "2026-03-01T09:00:00"
# Full — custom duration and timezone
bash skills/zoom-meeting/scripts/zoom_meeting.sh "Product Review" "2026-03-15T14:30:00" 45 "Europe/London"
Output
{
"join_url": "https://us05web.zoom.us/j/123456789?pwd=...",
"id": 123456789,
"password": "abc123"
}
Meeting Settings (fixed)
| Setting | Value |
|---|---|
| Type | Scheduled (type 2) |
| Host video | on |
| Participant video | on |
| Join before host | allowed |
Delete a Meeting
bash skills/zoom-meeting/scripts/zoom_delete_meeting.sh <meeting_id>
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
meeting_id |
integer | ✅ | Zoom Meeting ID (the id field from create output) |
Example
bash skills/zoom-meeting/scripts/zoom_delete_meeting.sh 123456789
Output
{ "status": "deleted", "meeting_id": "123456789" }
Error Handling
| Situation | Script behaviour |
|---|---|
| Missing required argument | Exits with usage message |
Invalid start_time format |
Exits with format hint |
| Bad credentials / OAuth failure | Exits with ERROR: Failed to get Zoom access token |
| Meeting creation failed | Exits with ERROR: Failed to create Zoom meeting + raw API response |
| Meeting not found (delete) | Exits with ERROR: Meeting <id> not found |
| Other API error (delete) | Exits with ERROR: Failed to delete meeting (HTTP <code>) |
Credentials Setup
File location
.openclaw/credentials/zoom.json
Override path via environment variable:
ZOOM_CREDENTIALS=/custom/path/zoom.json bash skills/zoom-meeting/scripts/zoom_meeting.sh ...
File format
{
"account_id": "YOUR_ACCOUNT_ID",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
How to obtain
- Go to marketplace.zoom.us → Develop → Build App
- Choose Server-to-Server OAuth
- Add the following scopes:
| Scope | Required for |
|---|---|
meeting:write:admin |
Creating meetings |
meeting:read:admin |
Reading meeting details |
meeting:delete:admin |
Deleting meetings |
- Copy Account ID, Client ID, Client Secret into
.openclaw/credentials/zoom.json