CommunicationDocumentedScanned

zoom-unofficial-community-skill

Zoom API integration for meetings, calendar, chat.

Share:

Installation

npx clawhub@latest install zoom-unofficial-community-skill

View the full skill documentation and source below.

Documentation

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 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 → 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.