Zoom Meetings
by @neuyazvimyi
How to create, retrieve, list, and delete Zoom meetings using the Zoom REST API. Use this skill whenever the user mentions Zoom meetings, wants to schedule a...
clawhub install zoom-meeting๐ About This Skill
name: zoom-meeting description: | How to create, retrieve, list, and delete Zoom meetings using the Zoom REST API. Use this skill whenever the user mentions Zoom meetings, wants to schedule a meeting, needs meeting details, or asks to manage Zoom callsโeven if they don't explicitly say "use the zoom-meeting skill." Supports both natural language requests and structured JSON commands. Always respond with human-readable output (no JSON).
Zoom Meeting Skill
This skill allows programmatic management of Zoom meetings. Supports creating, retrieving, listing, and deleting meetings via the Zoom REST API.
When to Use
Use this skill when the user:
Authentication
The skill automatically handles authentication via Zoom Server-to-Server OAuth.
Credentials location: ~/.openclaw/credentials/zoom.json
Required credentials:
{
"account_id": "YOUR_ACCOUNT_ID",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
The skill automatically obtains and refreshes access tokens.
Supported Actions
1. create_meeting
Create a new Zoom meeting.
Parameters:
topic (required): Meeting topic/titlestart_time (optional): Date/time in ISO 8601 format. Default: current time.duration (optional): Duration in minutes. Default: 40.timezone (optional): Timezone. Default: Asia/Almaty.JSON Example:
{
"action": "create_meeting",
"topic": "Daily Standup",
"start_time": "2026-03-10T10:00:00",
"duration": 30,
"timezone": "Asia/Almaty"
}
2. get_meeting
Retrieve details of an existing meeting.
Parameters:
meeting_id (required): Zoom meeting IDJSON Example:
{
"action": "get_meeting",
"meeting_id": "123456789"
}
3. list_meetings
Get a list of all user's meetings.
Parameters:
user_id (optional): User ID. Default: me.JSON Example:
{
"action": "list_meetings"
}
4. delete_meeting
Delete a Zoom meeting.
Parameters:
meeting_id (required): Zoom meeting IDJSON Example:
{
"action": "delete_meeting",
"meeting_id": "123456789"
}
Usage Examples
Natural Language
User: "Create a Zoom meeting tomorrow at 10 AM called 'Architecture Review'"
Actions:
1. Parse natural language to extract parameters
2. Convert "tomorrow at 10 AM" to ISO 8601 format
3. Call create_meeting with extracted parameters
4. Return human-readable response
User: "What's the join URL for meeting 123456789?"
Actions:
1. Call get_meeting with the meeting ID
2. Return join_url from the response
User: "Show all my upcoming Zoom meetings"
Actions:
1. Call list_meetings
2. Format results into a readable list
User: "Delete meeting 987654321"
Actions:
1. Call delete_meeting with the meeting ID
2. Confirm deletion
Structured JSON
Users can pass direct JSON commands:
{
"action": "create_meeting",
"topic": "Sprint Planning",
"start_time": "2026-03-11T14:00:00",
"duration": 60
}
Parameter Collection
If the user provided incomplete information for creating a meeting, ask clarifying questions:
User: "Create a Zoom meeting"
You: "Sure! What's the meeting topic?"
User: "Team Sync"
You: "When should the meeting start?"
User: "Tomorrow at 2 PM"
You: "What duration? (default: 40 minutes)"
Then create the meeting with collected parameters and defaults.
Output Format
Always return human-readable text only (no JSON):
Example for create_meeting:
โ
Meeting created!๐ Topic: Daily Standup
๐ Meeting ID: 123456789
๐ Join: https://zoom.us/j/123456789
๐ Password: 983421
โฐ Start: 2026-03-10T10:00:00
โฑ Duration: 30 min
๐ Timezone: Asia/Almaty
Error Handling
Handle errors gracefully and return them in readable format:
Authentication failure:
Error: Failed to obtain access token. Check credentials in ~/.openclaw/credentials/zoom.json
Invalid meeting ID:
Error: Meeting 123456789 does not exist or you don't have permission to access it
API error:
Error: Zoom API returned error 429: Rate Limited
Implementation
The skill uses scripts/zoom_api.py for all API interactions. The script handles:
Key endpoints:
POST /users/me/meetingsGET /meetings/{meetingId}GET /users/me/meetingsDELETE /meetings/{meetingId}Defaults
| Parameter | Default | |-----------|---------| | start_time | Current time | | duration | 40 minutes | | timezone | Asia/Almaty |
Meeting Creation Rules
/users/me (authenticated user)Reference Files
references/zoom_api_reference.md - Detailed API documentation, endpoints, and error codesDesign Principles
This skill follows these principles:
Dependencies
requests - For HTTP requests to Zoom APIpytz - For timezone conversions (installed automatically)