skills$openclaw/zoom-unofficial-community-skill
tanchunsiong897

by tanchunsiong

zoom-unofficial-community-skill – OpenClaw Skill

zoom-unofficial-community-skill is an OpenClaw Skills integration for security workflows. Zoom API integration for meetings, calendar, chat, and user management. Use when the user asks to schedule meetings, check Zoom calendar, list recordings, send Zoom chat messages, manage contacts, or interact with any Zoom Workplace feature. Supports Server-to-Server OAuth and OAuth apps.

897 stars6.7k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026security

Skill Snapshot

namezoom-unofficial-community-skill
descriptionZoom API integration for meetings, calendar, chat, and user management. Use when the user asks to schedule meetings, check Zoom calendar, list recordings, send Zoom chat messages, manage contacts, or interact with any Zoom Workplace feature. Supports Server-to-Server OAuth and OAuth apps. OpenClaw Skills integration.
ownertanchunsiong
repositorytanchunsiong/zoom-unofficial-community-skill
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @tanchunsiong/zoom-unofficial-community-skill
last updatedFeb 7, 2026

Maintainer

tanchunsiong

tanchunsiong

Maintains zoom-unofficial-community-skill in the OpenClaw Skills directory.

View GitHub profile
File Explorer
8 files
.
references
AUTH.md
1.3 KB
scripts
zoom.py
26.7 KB
_meta.json
674 B
README.md
5.9 KB
skill.json
810 B
SKILL.md
5.1 KB
SKILL.md

name: zoom-unofficial-community-skill description: Zoom API integration for meetings, calendar, chat, and user management. Use when the user asks to schedule meetings, check Zoom calendar, list recordings, send Zoom chat messages, manage contacts, or interact with any Zoom Workplace feature. Supports Server-to-Server OAuth and OAuth apps.

Zoom

Use scripts/zoom.py to interact with Zoom's REST API.

Prerequisites

pip3 install requests PyJWT --break-system-packages

Authentication

Set these in the skill's .env file (copy from .env.example):

  • ZOOM_ACCOUNT_ID — Account ID (from Zoom Marketplace app)
  • ZOOM_CLIENT_ID — OAuth Client ID
  • ZOOM_CLIENT_SECRET — OAuth Client Secret
  • ZOOM_USER_EMAIL — Email of the Zoom user to act as (required for S2S apps; defaults to me if unset)
  • ZOOM_RTMS_CLIENT_ID — Client ID of the RTMS Marketplace app (required for rtms-start/rtms-stop; this is a separate app from the S2S OAuth app)

Create a Server-to-Server OAuth app at https://marketplace.zoom.us/ for full API access. See references/AUTH.md for detailed setup guide.

Commands

Meetings

# List upcoming meetings
python3 scripts/zoom.py meetings list

# List live/in-progress meetings (requires Business+ plan with Dashboard)
python3 scripts/zoom.py meetings live

# Start RTMS for a live meeting (requires ZOOM_RTMS_CLIENT_ID)
python3 scripts/zoom.py meetings rtms-start <meeting_id>

# Stop RTMS for a live meeting
python3 scripts/zoom.py meetings rtms-stop <meeting_id>

# Get meeting details
python3 scripts/zoom.py meetings get <meeting_id>

# Schedule a new meeting
python3 scripts/zoom.py meetings create --topic "Standup" --start "2026-01-28T10:00:00" --duration 30

# Schedule with options
python3 scripts/zoom.py meetings create --topic "Review" --start "2026-01-28T14:00:00" --duration 60 --agenda "Sprint review" --password "abc123"

# Delete a meeting
python3 scripts/zoom.py meetings delete <meeting_id>

# Update a meeting
python3 scripts/zoom.py meetings update <meeting_id> --topic "New Title" --start "2026-01-29T10:00:00"

Calendar (upcoming schedule)

# Today's meetings
python3 scripts/zoom.py meetings list --from today --to today

# This week's meetings
python3 scripts/zoom.py meetings list --from today --days 7

Recordings

# List cloud recordings
python3 scripts/zoom.py recordings list

# List recordings for date range
python3 scripts/zoom.py recordings list --from "2026-01-01" --to "2026-01-31"

# Get recording details
python3 scripts/zoom.py recordings get <meeting_id>

# Download recording files (video/audio)
python3 scripts/zoom.py recordings download <meeting_id>
python3 scripts/zoom.py recordings download <meeting_id> --output ~/Downloads

# Download transcript files only
python3 scripts/zoom.py recordings download-transcript <meeting_id>
python3 scripts/zoom.py recordings download-transcript <meeting_id> --output ~/Downloads

# Download AI Companion summary as markdown
python3 scripts/zoom.py recordings download-summary <meeting_uuid>
python3 scripts/zoom.py recordings download-summary <meeting_uuid> --output ~/Downloads

# Delete a recording
python3 scripts/zoom.py recordings delete <meeting_id>

AI Meeting Summary (AI Companion)

# List meeting summaries
python3 scripts/zoom.py summary list
python3 scripts/zoom.py summary list --from "2026-01-01" --to "2026-01-31"

# Get AI summary for a specific meeting
python3 scripts/zoom.py summary get <meeting_id>

Users

# Get my profile
python3 scripts/zoom.py users me

# List users (admin)
python3 scripts/zoom.py users list

Team Chat

# List chat channels
python3 scripts/zoom.py chat channels

# List messages in a channel
python3 scripts/zoom.py chat messages <channel_id>

# Send a message to a channel
python3 scripts/zoom.py chat send <channel_id> "Hello team!"

# Send a direct message
python3 scripts/zoom.py chat dm <email> "Hey, are you free?"

# List contacts
python3 scripts/zoom.py chat contacts

Phone (Zoom Phone)

# List call logs
python3 scripts/zoom.py phone calls --from "2026-01-01" --to "2026-01-31"

Scopes Required

For Server-to-Server OAuth, enable these scopes in your Zoom Marketplace app. Only add the scopes you need — each command group requires specific scopes:

Command GroupScopes Needed
users me / users listuser:read:admin
meetings list/get/create/update/deletemeeting:read:admin, meeting:write:admin
recordings list/get/deleterecording:read:admin, recording:write:admin
chat channels/messages/send/dmchat_channel:read:admin, chat_message:read:admin, chat_message:write:admin
chat contactscontact:read:admin
summary list/getmeeting_summary:read:admin
phone callsphone:read:admin (requires Zoom Phone enabled on account)

If you get a scope error, go to https://marketplace.zoom.us/ → your app → Scopes, and add the missing scope listed in the error message.

Rate Limits

Zoom API has rate limits (varies by endpoint, typically 30-100 req/sec). The script handles 429 responses with automatic retry.

README.md

Zoom Unofficial Community Skill

A Python CLI for interacting with Zoom's REST API — manage meetings, recordings, team chat, AI meeting summaries, live meeting monitoring, and RTMS control. Works standalone or as a skill for any AI agent.

Unofficial — This skill is not affiliated with or endorsed by Zoom Video Communications.

Features

  • Meetings — List, create, update, delete, and view meeting details
  • Live Meetings — Monitor currently active meetings via Dashboard API
  • RTMS Control — Start and stop Real-Time Media Streams for live meetings
  • Recordings — List, download, and delete cloud recordings
  • Transcripts — Download meeting transcript files
  • AI Summaries — Retrieve and download AI Companion meeting summaries
  • Team Chat — Send messages, DMs, list channels and contacts
  • Users — View profiles and list account users
  • Phone — View call logs (requires Zoom Phone)

Quick Start

1. Install dependencies

pip3 install requests PyJWT --break-system-packages

2. Create a Zoom Server-to-Server OAuth App

  1. Go to https://marketplace.zoom.us/
  2. Click DevelopBuild App
  3. Choose Server-to-Server OAuth
  4. Note your Account ID, Client ID, and Client Secret
  5. Add the scopes you need (see Scopes below)
  6. Activate the app

3. Configure

Copy .env.example to .env and fill in your credentials:

ZOOM_ACCOUNT_ID=your_account_id
ZOOM_CLIENT_ID=your_client_id
ZOOM_CLIENT_SECRET=your_client_secret
ZOOM_USER_EMAIL=you@example.com
ZOOM_RTMS_CLIENT_ID=your_rtms_app_client_id
  • ZOOM_USER_EMAIL — tells the S2S app which user to act as (defaults to me if unset)
  • ZOOM_RTMS_CLIENT_ID — Client ID of your RTMS Marketplace app (required for rtms-start/rtms-stop; this is a separate app from the S2S OAuth app)

Usage

# Your profile
python3 scripts/zoom.py users me

# List upcoming meetings
python3 scripts/zoom.py meetings list

# List live/in-progress meetings (requires Business+ plan with Dashboard)
python3 scripts/zoom.py meetings live

# Start RTMS for a live meeting
python3 scripts/zoom.py meetings rtms-start <meeting_id>

# Stop RTMS for a live meeting
python3 scripts/zoom.py meetings rtms-stop <meeting_id>

# Schedule a meeting
python3 scripts/zoom.py meetings create --topic "Standup" --start "2026-01-28T10:00:00" --duration 30

# Update meeting settings
python3 scripts/zoom.py meetings update <id> --duration 60 --join-before-host true --auto-recording cloud

# List cloud recordings
python3 scripts/zoom.py recordings list --from "2026-01-01" --to "2026-01-31"

# Download recordings
python3 scripts/zoom.py recordings download <meeting_id> --output ~/Downloads

# Download transcript files
python3 scripts/zoom.py recordings download-transcript <meeting_id> --output ~/Downloads

# Download AI Companion summary as markdown
python3 scripts/zoom.py recordings download-summary <meeting_uuid> --output ~/Downloads

# AI meeting summaries
python3 scripts/zoom.py summary list
python3 scripts/zoom.py summary get <meeting_uuid>

# Send a Team Chat DM
python3 scripts/zoom.py chat dm user@example.com "Hey!"

# Send to a channel
python3 scripts/zoom.py chat send <channel_id> "Hello team!"

# List chat channels
python3 scripts/zoom.py chat channels

See SKILL.md for full command reference.

RTMS Control

The rtms-start and rtms-stop commands let you programmatically start/stop Real-Time Media Streams for live meetings.

How it works:

  1. meetings live finds in-progress meetings and their host email
  2. rtms-start looks up the host's user ID via "Get a User" API
  3. Calls PATCH /live_meetings/{meetingId}/rtms_app/status with the host's participant_user_id and your RTMS app's client_id

Requirements:

  • ZOOM_RTMS_CLIENT_ID set in .env (Client ID of a Marketplace app with RTMS access)
  • The RTMS app must be allowed in Zoom Web Portal → Settings → "Allow apps to access meeting content"
  • meetings live requires a Business+ plan with Dashboard enabled

Companion skill: Use with zoom-meeting-assistance-rtms-unofficial-community to capture and analyze RTMS streams.

Scopes

Add only the scopes you need in your Zoom Marketplace app:

FeatureScopes
Usersuser:read:admin
Meetingsmeeting:read:admin, meeting:write:admin
Live Meetingsdashboard_meetings:read:admin
Recordingsrecording:read:admin, recording:write:admin
Team Chatchat_channel:read:admin, chat_message:read:admin, chat_message:write:admin
Contactscontact:read:admin
AI Summariesmeeting_summary:read:admin
Phonephone:read:admin

If you get a scope error, the CLI will tell you exactly which scope to add and link you to the Zoom Marketplace.

Error Handling

  • Scope errors — Clear message with link to add the missing scope
  • Rate limits — Automatic retry with backoff on 429 responses
  • Missing params — Validates required parameters before calling the API
  • Feature not enabled — Helpful hint when a Zoom feature isn't available on your plan

Authentication Details

See references/AUTH.md for a detailed guide on setting up Server-to-Server OAuth.

Related Skills

Bug Reports & Contributing

Found a bug? Please raise an issue at: 👉 https://github.com/tanchunsiong/zoom-unofficial-community-skill/issues

Pull requests are also welcome!

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

```bash pip3 install requests PyJWT --break-system-packages ```

FAQ

How do I install zoom-unofficial-community-skill?

Run openclaw add @tanchunsiong/zoom-unofficial-community-skill in your terminal. This installs zoom-unofficial-community-skill into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/tanchunsiong/zoom-unofficial-community-skill. Review commits and README documentation before installing.