{
  "schemaVersion": "1.0",
  "item": {
    "slug": "zoom-meeting",
    "name": "Zoom Meeting create/delete",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/Neuyazvimyi/zoom-meeting",
    "canonicalUrl": "https://clawhub.ai/Neuyazvimyi/zoom-meeting",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/zoom-meeting",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zoom-meeting",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/zoom_api_reference.md",
      "scripts/zoom_api.py",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/zoom-meeting"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/zoom-meeting",
    "agentPageUrl": "https://openagent3.xyz/skills/zoom-meeting/agent",
    "manifestUrl": "https://openagent3.xyz/skills/zoom-meeting/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/zoom-meeting/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Zoom Meeting Skill",
        "body": "This skill allows programmatic management of Zoom meetings. Supports creating, retrieving, listing, and deleting meetings via the Zoom REST API."
      },
      {
        "title": "When to Use",
        "body": "Use this skill when the user:\n\nWants to create or schedule a Zoom meeting\nRequests meeting details (join URL, password, etc.)\nWants to see all upcoming meetings\nNeeds to cancel/delete a meeting\nMentions \"Zoom\" along with meeting-related actions"
      },
      {
        "title": "Authentication",
        "body": "The skill automatically handles authentication via Zoom Server-to-Server OAuth.\n\nCredentials location: ~/.openclaw/credentials/zoom.json\n\nRequired credentials:\n\n{\n  \"account_id\": \"YOUR_ACCOUNT_ID\",\n  \"client_id\": \"YOUR_CLIENT_ID\",\n  \"client_secret\": \"YOUR_CLIENT_SECRET\"\n}\n\nThe skill automatically obtains and refreshes access tokens."
      },
      {
        "title": "1. create_meeting",
        "body": "Create a new Zoom meeting.\n\nParameters:\n\ntopic (required): Meeting topic/title\nstart_time (optional): Date/time in ISO 8601 format. Default: current time.\nduration (optional): Duration in minutes. Default: 40.\ntimezone (optional): Timezone. Default: Asia/Almaty.\n\nJSON Example:\n\n{\n  \"action\": \"create_meeting\",\n  \"topic\": \"Daily Standup\",\n  \"start_time\": \"2026-03-10T10:00:00\",\n  \"duration\": 30,\n  \"timezone\": \"Asia/Almaty\"\n}"
      },
      {
        "title": "2. get_meeting",
        "body": "Retrieve details of an existing meeting.\n\nParameters:\n\nmeeting_id (required): Zoom meeting ID\n\nJSON Example:\n\n{\n  \"action\": \"get_meeting\",\n  \"meeting_id\": \"123456789\"\n}"
      },
      {
        "title": "3. list_meetings",
        "body": "Get a list of all user's meetings.\n\nParameters:\n\nuser_id (optional): User ID. Default: me.\n\nJSON Example:\n\n{\n  \"action\": \"list_meetings\"\n}"
      },
      {
        "title": "4. delete_meeting",
        "body": "Delete a Zoom meeting.\n\nParameters:\n\nmeeting_id (required): Zoom meeting ID\n\nJSON Example:\n\n{\n  \"action\": \"delete_meeting\",\n  \"meeting_id\": \"123456789\"\n}"
      },
      {
        "title": "Natural Language",
        "body": "User: \"Create a Zoom meeting tomorrow at 10 AM called 'Architecture Review'\"\n\nActions:\n\nParse natural language to extract parameters\nConvert \"tomorrow at 10 AM\" to ISO 8601 format\nCall create_meeting with extracted parameters\nReturn human-readable response\n\nUser: \"What's the join URL for meeting 123456789?\"\n\nActions:\n\nCall get_meeting with the meeting ID\nReturn join_url from the response\n\nUser: \"Show all my upcoming Zoom meetings\"\n\nActions:\n\nCall list_meetings\nFormat results into a readable list\n\nUser: \"Delete meeting 987654321\"\n\nActions:\n\nCall delete_meeting with the meeting ID\nConfirm deletion"
      },
      {
        "title": "Structured JSON",
        "body": "Users can pass direct JSON commands:\n\n{\n  \"action\": \"create_meeting\",\n  \"topic\": \"Sprint Planning\",\n  \"start_time\": \"2026-03-11T14:00:00\",\n  \"duration\": 60\n}"
      },
      {
        "title": "Parameter Collection",
        "body": "If the user provided incomplete information for creating a meeting, ask clarifying questions:\n\nUser: \"Create a Zoom meeting\"\n\nYou: \"Sure! What's the meeting topic?\"\n\nUser: \"Team Sync\"\n\nYou: \"When should the meeting start?\"\n\nUser: \"Tomorrow at 2 PM\"\n\nYou: \"What duration? (default: 40 minutes)\"\n\nThen create the meeting with collected parameters and defaults."
      },
      {
        "title": "Output Format",
        "body": "Always return human-readable text only (no JSON):\n\nExample for create_meeting:\n\n✅ Meeting created!\n\n📋 Topic: Daily Standup\n🆔 Meeting ID: 123456789\n🔗 Join: https://zoom.us/j/123456789\n🔑 Password: 983421\n⏰ Start: 2026-03-10T10:00:00\n⏱ Duration: 30 min\n🌍 Timezone: Asia/Almaty"
      },
      {
        "title": "Error Handling",
        "body": "Handle errors gracefully and return them in readable format:\n\nAuthentication failure:\n\nError: Failed to obtain access token. Check credentials in ~/.openclaw/credentials/zoom.json\n\nInvalid meeting ID:\n\nError: Meeting 123456789 does not exist or you don't have permission to access it\n\nAPI error:\n\nError: Zoom API returned error 429: Rate Limited"
      },
      {
        "title": "Implementation",
        "body": "The skill uses scripts/zoom_api.py for all API interactions. The script handles:\n\nLoading credentials from file\nOAuth token generation and refresh\nHTTP requests to Zoom API endpoints\nResponse parsing and error handling\n\nKey endpoints:\n\nCreate: POST /users/me/meetings\nGet: GET /meetings/{meetingId}\nList: GET /users/me/meetings\nDelete: DELETE /meetings/{meetingId}"
      },
      {
        "title": "Defaults",
        "body": "ParameterDefaultstart_timeCurrent timeduration40 minutestimezoneAsia/Almaty"
      },
      {
        "title": "Meeting Creation Rules",
        "body": "Meetings are always created for /users/me (authenticated user)\nNo duplicate detection—each request creates a new meeting\nAll meetings are scheduled meetings (type 2)"
      },
      {
        "title": "Reference Files",
        "body": "references/zoom_api_reference.md - Detailed API documentation, endpoints, and error codes"
      },
      {
        "title": "Design Principles",
        "body": "This skill follows these principles:\n\nMinimal verbosity - Responses are brief and focused\nDeterministic output - Same input always produces same output structure\nAgent-friendly - Structured responses that AI agents can parse\nSafe credential handling - Never expose credentials in logs or output\nHuman-readable output - Always return human-readable text, not JSON\nLocal time display - Meeting times are shown in the specified timezone, not UTC"
      },
      {
        "title": "Dependencies",
        "body": "requests - For HTTP requests to Zoom API\npytz - For timezone conversions (installed automatically)"
      }
    ],
    "body": "Zoom Meeting Skill\n\nThis skill allows programmatic management of Zoom meetings. Supports creating, retrieving, listing, and deleting meetings via the Zoom REST API.\n\nWhen to Use\n\nUse this skill when the user:\n\nWants to create or schedule a Zoom meeting\nRequests meeting details (join URL, password, etc.)\nWants to see all upcoming meetings\nNeeds to cancel/delete a meeting\nMentions \"Zoom\" along with meeting-related actions\nAuthentication\n\nThe skill automatically handles authentication via Zoom Server-to-Server OAuth.\n\nCredentials location: ~/.openclaw/credentials/zoom.json\n\nRequired credentials:\n\n{\n  \"account_id\": \"YOUR_ACCOUNT_ID\",\n  \"client_id\": \"YOUR_CLIENT_ID\",\n  \"client_secret\": \"YOUR_CLIENT_SECRET\"\n}\n\n\nThe skill automatically obtains and refreshes access tokens.\n\nSupported Actions\n1. create_meeting\n\nCreate a new Zoom meeting.\n\nParameters:\n\ntopic (required): Meeting topic/title\nstart_time (optional): Date/time in ISO 8601 format. Default: current time.\nduration (optional): Duration in minutes. Default: 40.\ntimezone (optional): Timezone. Default: Asia/Almaty.\n\nJSON Example:\n\n{\n  \"action\": \"create_meeting\",\n  \"topic\": \"Daily Standup\",\n  \"start_time\": \"2026-03-10T10:00:00\",\n  \"duration\": 30,\n  \"timezone\": \"Asia/Almaty\"\n}\n\n2. get_meeting\n\nRetrieve details of an existing meeting.\n\nParameters:\n\nmeeting_id (required): Zoom meeting ID\n\nJSON Example:\n\n{\n  \"action\": \"get_meeting\",\n  \"meeting_id\": \"123456789\"\n}\n\n3. list_meetings\n\nGet a list of all user's meetings.\n\nParameters:\n\nuser_id (optional): User ID. Default: me.\n\nJSON Example:\n\n{\n  \"action\": \"list_meetings\"\n}\n\n4. delete_meeting\n\nDelete a Zoom meeting.\n\nParameters:\n\nmeeting_id (required): Zoom meeting ID\n\nJSON Example:\n\n{\n  \"action\": \"delete_meeting\",\n  \"meeting_id\": \"123456789\"\n}\n\nUsage Examples\nNatural Language\n\nUser: \"Create a Zoom meeting tomorrow at 10 AM called 'Architecture Review'\"\n\nActions:\n\nParse natural language to extract parameters\nConvert \"tomorrow at 10 AM\" to ISO 8601 format\nCall create_meeting with extracted parameters\nReturn human-readable response\n\nUser: \"What's the join URL for meeting 123456789?\"\n\nActions:\n\nCall get_meeting with the meeting ID\nReturn join_url from the response\n\nUser: \"Show all my upcoming Zoom meetings\"\n\nActions:\n\nCall list_meetings\nFormat results into a readable list\n\nUser: \"Delete meeting 987654321\"\n\nActions:\n\nCall delete_meeting with the meeting ID\nConfirm deletion\nStructured JSON\n\nUsers can pass direct JSON commands:\n\n{\n  \"action\": \"create_meeting\",\n  \"topic\": \"Sprint Planning\",\n  \"start_time\": \"2026-03-11T14:00:00\",\n  \"duration\": 60\n}\n\nParameter Collection\n\nIf the user provided incomplete information for creating a meeting, ask clarifying questions:\n\nUser: \"Create a Zoom meeting\"\n\nYou: \"Sure! What's the meeting topic?\"\n\nUser: \"Team Sync\"\n\nYou: \"When should the meeting start?\"\n\nUser: \"Tomorrow at 2 PM\"\n\nYou: \"What duration? (default: 40 minutes)\"\n\nThen create the meeting with collected parameters and defaults.\n\nOutput Format\n\nAlways return human-readable text only (no JSON):\n\nExample for create_meeting:\n\n✅ Meeting created!\n\n📋 Topic: Daily Standup\n🆔 Meeting ID: 123456789\n🔗 Join: https://zoom.us/j/123456789\n🔑 Password: 983421\n⏰ Start: 2026-03-10T10:00:00\n⏱ Duration: 30 min\n🌍 Timezone: Asia/Almaty\n\nError Handling\n\nHandle errors gracefully and return them in readable format:\n\nAuthentication failure:\n\nError: Failed to obtain access token. Check credentials in ~/.openclaw/credentials/zoom.json\n\n\nInvalid meeting ID:\n\nError: Meeting 123456789 does not exist or you don't have permission to access it\n\n\nAPI error:\n\nError: Zoom API returned error 429: Rate Limited\n\nImplementation\n\nThe skill uses scripts/zoom_api.py for all API interactions. The script handles:\n\nLoading credentials from file\nOAuth token generation and refresh\nHTTP requests to Zoom API endpoints\nResponse parsing and error handling\n\nKey endpoints:\n\nCreate: POST /users/me/meetings\nGet: GET /meetings/{meetingId}\nList: GET /users/me/meetings\nDelete: DELETE /meetings/{meetingId}\nDefaults\nParameter\tDefault\nstart_time\tCurrent time\nduration\t40 minutes\ntimezone\tAsia/Almaty\nMeeting Creation Rules\nMeetings are always created for /users/me (authenticated user)\nNo duplicate detection—each request creates a new meeting\nAll meetings are scheduled meetings (type 2)\nReference Files\nreferences/zoom_api_reference.md - Detailed API documentation, endpoints, and error codes\nDesign Principles\n\nThis skill follows these principles:\n\nMinimal verbosity - Responses are brief and focused\nDeterministic output - Same input always produces same output structure\nAgent-friendly - Structured responses that AI agents can parse\nSafe credential handling - Never expose credentials in logs or output\nHuman-readable output - Always return human-readable text, not JSON\nLocal time display - Meeting times are shown in the specified timezone, not UTC\nDependencies\nrequests - For HTTP requests to Zoom API\npytz - For timezone conversions (installed automatically)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Neuyazvimyi/zoom-meeting",
    "publisherUrl": "https://clawhub.ai/Neuyazvimyi/zoom-meeting",
    "owner": "Neuyazvimyi",
    "version": "1.1.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/zoom-meeting",
    "downloadUrl": "https://openagent3.xyz/downloads/zoom-meeting",
    "agentUrl": "https://openagent3.xyz/skills/zoom-meeting/agent",
    "manifestUrl": "https://openagent3.xyz/skills/zoom-meeting/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/zoom-meeting/agent.md"
  }
}