Install
openclaw skills install zoom-meetingHow 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).
openclaw skills install zoom-meetingThis 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:
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/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"
}
Retrieve details of an existing meeting.
Parameters:
meeting_id (required): Zoom meeting IDJSON 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 IDJSON Example:
{
"action": "delete_meeting",
"meeting_id": "123456789"
}
User: "Create a Zoom meeting tomorrow at 10 AM called 'Architecture Review'"
Actions:
create_meeting with extracted parametersUser: "What's the join URL for meeting 123456789?"
Actions:
get_meeting with the meeting IDUser: "Show all my upcoming Zoom meetings"
Actions:
list_meetingsUser: "Delete meeting 987654321"
Actions:
delete_meeting with the meeting IDUsers 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:
Key endpoints:
POST /users/me/meetingsGET /meetings/{meetingId}GET /users/me/meetingsDELETE /meetings/{meetingId}| Parameter | Default |
|---|---|
| start_time | Current time |
| duration | 40 minutes |
| timezone | Asia/Almaty |
/users/me (authenticated user)references/zoom_api_reference.md - Detailed API documentation, endpoints, and error codesThis skill follows these principles:
requests - For HTTP requests to Zoom APIpytz - For timezone conversions (installed automatically)