組織管理者の依頼を受け、QMの組織全体や個人・チャンネルごとの設定、記憶、会話履歴、監査情報を調べ、確認を経て設定変更や外部ユーザー管理を行うスキル。
- 自分が組織管理者か確認したいとき
- 組織やチャンネルの設定確認・変更
- 会話履歴と送信内容から動作原因を調査
Zoomの会議予定の確認から新規作成、日時変更、キャンセルまでを支援します。タイムゾーンや定期会議の扱いを確認し、参加リンクや会議IDを案内するスキルです。
Find, create, reschedule, and cancel the user's Zoom meetings through per-user OAuth.
Zoomの会議予定を調べ、新しい会議の作成、日時変更、キャンセルを支援します。会議IDや参加リンクから対象を確認し、開始時刻、タイムゾーン、所要時間を扱います。定期会議では、個別の開催回とシリーズ全体を区別して操作します。作成・変更後は会議IDや参加リンク、変更内容を案内します。
直近の会議を確認したいときや、打ち合わせ用のリンクを用意したいときに向いています。海外の相手との予定調整や、定期会議の一回だけを変更する場面にも使えます。書き込み操作は、対象や日時などの具体的な内容を提示して承認を得てから実行する流れです。
ユーザーごとのOAuth接続と、Zoom APIへのアクセスが必要です。カレンダーへの登録には別のコネクターが必要で、自動同期はされません。Zoomで日時変更やキャンセルをしても参加者には通知されません。主催者用のstart_urlは共有しない設計です。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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.usPass 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.
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.
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}'
Upcoming meetings (the next six months; keep fetching with next_page_token until it is
empty; times are UTC):
curl -sS --get 'https://api.zoom.us/v2/users/me/meetings' \
-H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US" \
--data-urlencode 'type=upcoming' \
--data-urlencode 'page_size=300' \
| jq '{next_page_token, meetings: [.meetings[]? | {id, topic, type, start_time, duration, timezone, host_id, join_url}], code, message}'
One meeting — a recurring series appears once in the list; its occurrences (skip any
with status: deleted) come from here:
curl -sS "https://api.zoom.us/v2/meetings/$MEETING_ID" \
-H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US" \
| jq '{id, topic, type, start_time, duration, timezone, host_email, join_url, password, occurrences, code, message}'
A join URL carries the meeting ID: https://us06web.zoom.us/j/85012345678?pwd=... is
meeting 85012345678. A type of 4, or a /my/<name> link, is the user's personal
meeting room, shared by every meeting that uses it — never reschedule or delete it.
Send start_time as local wall-clock time without an offset (2026-11-02T10:00:00) plus
the IANA timezone, and Zoom converts it. Use the timezone the user gives, the calendar
event's, or their Zoom profile's; the sandbox clock is UTC, so never assume it. Calendars
that report Windows zone names ("Pacific Standard Time") need mapping to IANA
(America/Los_Angeles). duration is in minutes.
curl -sS -X POST 'https://api.zoom.us/v2/users/me/meetings' \
-H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US" \
-H 'content-type: application/json' \
--data '{"topic":"Team sync","type":2,"start_time":"2026-11-02T10:00:00","timezone":"America/Los_Angeles","duration":30}' \
| jq '{id, join_url, password, start_time, duration, timezone, code, message, errors}' > zoom-meeting.json
cat zoom-meeting.json
The returned start_time is UTC — check it is the instant you meant, because Zoom
silently uses the current time for a missing or past value. The user is the host; leave
settings out unless they ask, so the account's defaults (waiting room, passcode) apply.
If the response was lost, list upcoming meetings before creating again — never create a
duplicate.
For a recurring calendar event, create type: 3 (one link, no fixed time) and leave out
start_time. Moving or cancelling one occurrence of the event needs no Zoom change; delete
the meeting only when the whole series ends.
Get the meeting first and confirm it is the one the user means. If host_email is not the
user's, it belongs to someone who gave them scheduling rights — say whose meeting it is
before changing it. For a recurring meeting with fixed times (type: 8), add
?occurrence_id=<id> (from occurrences) to change or delete one occurrence; without it,
the whole series changes.
Reschedule, with the same time rules as create:
curl -sS -w '\n%{http_code}\n' -X PATCH "https://api.zoom.us/v2/meetings/$MEETING_ID" \
-H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US" \
-H 'content-type: application/json' \
--data '{"start_time":"2026-11-02T11:00:00","timezone":"America/Los_Angeles","duration":45}'
204 comes back even when Zoom ignored a past start_time, so get the meeting again and
confirm the new time before reporting it.
Cancel (204 means done):
curl -sS -w '\n%{http_code}\n' -X DELETE "https://api.zoom.us/v2/meetings/$MEETING_ID" \
-H "Authorization: Bearer $VAULT_TOKEN_API_ZOOM_US"
Zoom doesn't notify attendees of either change.
This skill only talks to Zoom. To put a meeting on the user's calendar, use whichever calendar connector they have:
join_url, meeting ID,
and passcode to the description, and fill the location only if it is empty.Report the meeting ID, the join_url, and what changed.
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
組織管理者の依頼を受け、QMの組織全体や個人・チャンネルごとの設定、記憶、会話履歴、監査情報を調べ、確認を経て設定変更や外部ユーザー管理を行うスキル。
リモートの実ブラウザを操作し、経費申請や注文、ログイン後のデータ取得を進めます。本人ごとのプロファイルにログイン状態を保存し、継続利用するスキルです。
AWS・Google Cloud・AzureなどのCLIに、利用者が別の端末で承認する方式でログインします。導入状況と実行アカウントを確認し、本人の権限で操作するスキルです。
外部アプリの接続候補や設定画面を案内し、本人の同意と接続状態を確認したうえで、QMの認証済みバックエンド経由でアプリ操作を進めるスキルです。
管理者が有効にした外部アプリを、ブラウザの同意画面から接続するスキルです。使い捨てリンクによる認証や、個人のSlackアカウントの連携を案内します。
定期的に届く課題や問い合わせをエージェントが継続処理し、成果物を人の確認待ちにする仕組みを、実案件の試運転から手順書・実行条件まで整えるスキル。