Skills

Zoom

Find, create, reschedule, and cancel the user's Zoom meetings through per-user OAuth.

Install

npx skills add yc-software/qm --skill zoom -g -a claude-code -y
Repository
yc-software/qm15.6k
Category
Engineering
Updated
3d ago
License
MIT
Context cost
Mediumabout 1,657 tokens
Runs scripts
No, instructions only

What it does

Find, create, reschedule, and cancel the user's Zoom meetings through per-user OAuth.

Zoom

Use this skill when the user asks for a Zoom meeting or link, wants to know what Zoom meetings they have coming up, or wants to move or cancel one.

This is an OAuth connector. The resolved user's Zoom token already lives on your computer as an environment variable (the way a logged-in CLI's cached credential would):

  • $VAULT_TOKEN_API_ZOOM_US, for api.zoom.us

Pass it as -H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US". Never ask the user for a token, log it, or use another principal's credential.

Per-user connector tokens are present in the user's own DM and personal scheduled tasks, and in a shared room or channel automation only when the user has opened their connections there. If the variable is empty in a shared room, ask them to DM you instead of telling them to reconnect; empty in their DM means they haven't connected Zoom, point them to the Connectors page.

Zoom error codes: 124 (invalid access token) means they need to reconnect Zoom. 4711 ("does not contain scopes") means their token lacks that scope, if the org's Zoom app already has it they reconnect, otherwise an admin adds it to the app first. 3001 means the meeting does not exist or is not theirs.

Writes require approval

Creating, updating, or deleting a meeting is a write. Show the exact topic, start time with timezone, and duration (or which meeting changes and how) and ask for approval before running it. Reads need no approval. In a shared channel, don't post the passcode or full join_url unless everyone there may join.

Never share start_url. It embeds a host token that lets anyone start the meeting as the user. Responses that carry it go through jq below so it never reaches your output.

Find meetings

Who the user is, and their default timezone:

curl -sS 'https://api.zoom.us/v2/users/me' \
  -H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US" | jq '{id, email, timezone, code, message}'
Read the whole SKILL.md on GitHub

More in Engineering