897★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.
Skill Snapshot
| 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. OpenClaw Skills integration. |
| owner | tanchunsiong |
| repository | tanchunsiong/zoom-unofficial-community-skill |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @tanchunsiong/zoom-unofficial-community-skill |
| last updated | Feb 7, 2026 |
Maintainer

tanchunsiong
Maintains zoom-unofficial-community-skill in the OpenClaw Skills directory.
View GitHub profilename: 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 IDZOOM_CLIENT_SECRET— OAuth Client SecretZOOM_USER_EMAIL— Email of the Zoom user to act as (required for S2S apps; defaults tomeif unset)ZOOM_RTMS_CLIENT_ID— Client ID of the RTMS Marketplace app (required forrtms-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 Group | Scopes Needed |
|---|---|
users me / users list | user:read:admin |
meetings list/get/create/update/delete | meeting:read:admin, meeting:write:admin |
recordings list/get/delete | recording:read:admin, recording:write:admin |
chat channels/messages/send/dm | chat_channel:read:admin, chat_message:read:admin, chat_message:write:admin |
chat contacts | contact:read:admin |
summary list/get | meeting_summary:read:admin |
phone calls | phone: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.
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
- Go to https://marketplace.zoom.us/
- Click Develop → Build App
- Choose Server-to-Server OAuth
- Note your Account ID, Client ID, and Client Secret
- Add the scopes you need (see Scopes below)
- 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 tomeif unset)ZOOM_RTMS_CLIENT_ID— Client ID of your RTMS Marketplace app (required forrtms-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:
meetings livefinds in-progress meetings and their host emailrtms-startlooks up the host's user ID via "Get a User" API- Calls
PATCH /live_meetings/{meetingId}/rtms_app/statuswith the host'sparticipant_user_idand your RTMS app'sclient_id
Requirements:
ZOOM_RTMS_CLIENT_IDset 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 liverequires 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:
| Feature | Scopes |
|---|---|
| Users | user:read:admin |
| Meetings | meeting:read:admin, meeting:write:admin |
| Live Meetings | dashboard_meetings:read:admin |
| Recordings | recording:read:admin, recording:write:admin |
| Team Chat | chat_channel:read:admin, chat_message:read:admin, chat_message:write:admin |
| Contacts | contact:read:admin |
| AI Summaries | meeting_summary:read:admin |
| Phone | phone: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
- ngrok-unofficial-webhook-skill — Public webhook endpoint via ngrok for receiving Zoom events
- zoom-meeting-assistance-rtms-unofficial-community — RTMS meeting capture and AI analysis
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.
