Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Create or delete Zoom meetings via Server-to-Server OAuth. Use this skill when the user asks to: schedule a Zoom call, create a Zoom meeting, set up a video...
Create or delete Zoom meetings via Server-to-Server OAuth. Use this skill when the user asks to: schedule a Zoom call, create a Zoom meeting, set up a video...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
This skill allows programmatic management of Zoom meetings. Supports creating, retrieving, listing, and deleting meetings via the Zoom REST API.
Use this skill when the user: Wants to create or schedule a Zoom meeting Requests meeting details (join URL, password, etc.) Wants to see all upcoming meetings Needs to cancel/delete a meeting Mentions "Zoom" along with meeting-related actions
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.
Create a new Zoom meeting. Parameters: topic (required): Meeting topic/title start_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" }
Retrieve details of an existing meeting. Parameters: meeting_id (required): Zoom meeting ID JSON Example: { "action": "get_meeting", "meeting_id": "123456789" }
Get a list of all user's meetings. Parameters: user_id (optional): User ID. Default: me. JSON Example: { "action": "list_meetings" }
Delete a Zoom meeting. Parameters: meeting_id (required): Zoom meeting ID JSON Example: { "action": "delete_meeting", "meeting_id": "123456789" }
User: "Create a Zoom meeting tomorrow at 10 AM called 'Architecture Review'" Actions: Parse natural language to extract parameters Convert "tomorrow at 10 AM" to ISO 8601 format Call create_meeting with extracted parameters Return human-readable response User: "What's the join URL for meeting 123456789?" Actions: Call get_meeting with the meeting ID Return join_url from the response User: "Show all my upcoming Zoom meetings" Actions: Call list_meetings Format results into a readable list User: "Delete meeting 987654321" Actions: Call delete_meeting with the meeting ID Confirm deletion
Users can pass direct JSON commands: { "action": "create_meeting", "topic": "Sprint Planning", "start_time": "2026-03-11T14:00:00", "duration": 60 }
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.
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
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
The skill uses scripts/zoom_api.py for all API interactions. The script handles: Loading credentials from file OAuth token generation and refresh HTTP requests to Zoom API endpoints Response parsing and error handling Key endpoints: Create: POST /users/me/meetings Get: GET /meetings/{meetingId} List: GET /users/me/meetings Delete: DELETE /meetings/{meetingId}
ParameterDefaultstart_timeCurrent timeduration40 minutestimezoneAsia/Almaty
Meetings are always created for /users/me (authenticated user) No duplicate detection—each request creates a new meeting All meetings are scheduled meetings (type 2)
references/zoom_api_reference.md - Detailed API documentation, endpoints, and error codes
This skill follows these principles: Minimal verbosity - Responses are brief and focused Deterministic output - Same input always produces same output structure Agent-friendly - Structured responses that AI agents can parse Safe credential handling - Never expose credentials in logs or output Human-readable output - Always return human-readable text, not JSON Local time display - Meeting times are shown in the specified timezone, not UTC
requests - For HTTP requests to Zoom API pytz - For timezone conversions (installed automatically)
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.