{
  "schemaVersion": "1.0",
  "item": {
    "slug": "calendly",
    "name": "Calendly Integration",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/kesslerio/calendly",
    "canonicalUrl": "https://clawhub.ai/kesslerio/calendly",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/calendly",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=calendly",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/calendly"
    },
    "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/calendly",
    "agentPageUrl": "https://openagent3.xyz/skills/calendly/agent",
    "manifestUrl": "https://openagent3.xyz/skills/calendly/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/calendly/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Calendly Skill",
        "body": "Interact with Calendly scheduling via MCP-generated CLI.\n\nNote: Scheduling API features (list-event-types, get-event-type-availability, schedule-event) will be available once calendly-mcp-server v2.0.0 is published to npm. Current CLI uses v1.0.0 for portability."
      },
      {
        "title": "Quick Start",
        "body": "# Get your Calendly profile (returns user URI)\ncalendly get-current-user\n\n# List RECENT events (always use --min-start-time for recent queries!)\ncalendly list-events --user-uri \"<YOUR_USER_URI>\" --min-start-time \"2026-01-20T00:00:00Z\"\n\n# Get event details\ncalendly get-event --event-uuid <UUID>\n\n# Cancel an event\ncalendly cancel-event --event-uuid <UUID> --reason \"Rescheduling needed\""
      },
      {
        "title": "User Info",
        "body": "get-current-user - Get authenticated user details"
      },
      {
        "title": "Events",
        "body": "list-events - List scheduled events (requires --user-uri)\nget-event - Get event details (requires --event-uuid)\ncancel-event - Cancel an event (requires --event-uuid, optional --reason)"
      },
      {
        "title": "Invitees",
        "body": "list-event-invitees - List invitees for an event (requires --event-uuid)"
      },
      {
        "title": "Organization",
        "body": "list-organization-memberships - List organization memberships"
      },
      {
        "title": "Configuration",
        "body": "API key can be stored in your environment or .env file:\n\nexport CALENDLY_API_KEY=\"<your-pat-token>\"\n# Or in ~/.moltbot/.env or ~/.clawdbot/.env\n\nGet your Personal Access Token from: https://calendly.com/integrations/api_webhooks"
      },
      {
        "title": "Usage in Moltbot",
        "body": "When user asks about:\n\n\"What meetings do I have?\" → list-events with --min-start-time (use recent date!)\n\"Cancel my 2pm meeting\" → Find with list-events (time-filtered), then cancel-event\n\"Who's attending X meeting?\" → list-event-invitees\n\nNote: First time, run calendly get-current-user to obtain your User URI."
      },
      {
        "title": "Getting Your User URI",
        "body": "Run calendly get-current-user to get your user URI. Example:\n\n{\n  \"resource\": {\n    \"uri\": \"https://api.calendly.com/users/<YOUR_USER_UUID>\",\n    \"scheduling_url\": \"https://calendly.com/<your-username>\"\n  }\n}"
      },
      {
        "title": "Examples",
        "body": "# List next 10 events\ncalendly list-events \\\n  --user-uri \"<YOUR_USER_URI>\" \\\n  -o json | jq .\n\n# Get event details\ncalendly get-event \\\n  --event-uuid \"<EVENT_UUID>\" \\\n  -o json\n\n# Cancel with reason\ncalendly cancel-event \\\n  --event-uuid \"<EVENT_UUID>\" \\\n  --reason \"Rescheduling due to conflict\""
      },
      {
        "title": "Coming Soon: Scheduling API (v2.0)",
        "body": "Once calendly-mcp-server v2.0.0 is published, these commands will be available:"
      },
      {
        "title": "Scheduling Workflow",
        "body": "# 1. List available event types\ncalendly list-event-types\n\n# 2. Check availability for a specific event type\ncalendly get-event-type-availability --event-type \"<EVENT_TYPE_URI>\"\n\n# 3. Schedule a meeting (requires paid Calendly plan)\ncalendly schedule-event \\\n  --event-type \"<EVENT_TYPE_URI>\" \\\n  --start-time \"2026-01-25T19:00:00Z\" \\\n  --invitee-email \"client@company.com\" \\\n  --invitee-name \"John Smith\" \\\n  --invitee-timezone \"America/New_York\"\n\nScheduling API Requirements:\n\ncalendly-mcp-server v2.0.0+ (unreleased as of 2026-01-21)\nPaid Calendly plan (Standard or higher)\n\nTo upgrade when v2.0 is published:\n\ncd ~/clawd/skills/calendly\nMCPORTER_CONFIG=./mcporter.json npx mcporter@latest generate-cli --server calendly --output calendly"
      },
      {
        "title": "Important: Time Filtering",
        "body": "Always use --min-start-time when querying recent events!\n\nThe API returns events oldest-first by default and doesn't support pagination via CLI. Without a time filter, you'll get events from years ago.\n\n# Last 7 days\ncalendly list-events --user-uri \"<URI>\" --min-start-time \"$(date -u -d '7 days ago' +%Y-%m-%dT00:00:00Z)\"\n\n# This week\ncalendly list-events --user-uri \"<URI>\" --min-start-time \"2026-01-20T00:00:00Z\" --max-start-time \"2026-01-27T23:59:59Z\"\n\n# Future events only\ncalendly list-events --user-uri \"<URI>\" --min-start-time \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\""
      },
      {
        "title": "Notes",
        "body": "All times in API responses are UTC (convert to Pacific for display)\nEvent UUIDs are found in list-events output\nOAuth tools available but not needed with Personal Access Token\nNo pagination support in CLI - use time filters instead\n\nGenerated: 2026-01-20\nUpdated: 2026-01-21 (Portable CLI with npm v1.0.0; v2.0 scheduling features pending upstream publish)\nSource: meAmitPatil/calendly-mcp-server via mcporter"
      }
    ],
    "body": "Calendly Skill\n\nInteract with Calendly scheduling via MCP-generated CLI.\n\nNote: Scheduling API features (list-event-types, get-event-type-availability, schedule-event) will be available once calendly-mcp-server v2.0.0 is published to npm. Current CLI uses v1.0.0 for portability.\n\nQuick Start\n# Get your Calendly profile (returns user URI)\ncalendly get-current-user\n\n# List RECENT events (always use --min-start-time for recent queries!)\ncalendly list-events --user-uri \"<YOUR_USER_URI>\" --min-start-time \"2026-01-20T00:00:00Z\"\n\n# Get event details\ncalendly get-event --event-uuid <UUID>\n\n# Cancel an event\ncalendly cancel-event --event-uuid <UUID> --reason \"Rescheduling needed\"\n\nAvailable Commands\nUser Info\nget-current-user - Get authenticated user details\nEvents\nlist-events - List scheduled events (requires --user-uri)\nget-event - Get event details (requires --event-uuid)\ncancel-event - Cancel an event (requires --event-uuid, optional --reason)\nInvitees\nlist-event-invitees - List invitees for an event (requires --event-uuid)\nOrganization\nlist-organization-memberships - List organization memberships\nConfiguration\n\nAPI key can be stored in your environment or .env file:\n\nexport CALENDLY_API_KEY=\"<your-pat-token>\"\n# Or in ~/.moltbot/.env or ~/.clawdbot/.env\n\n\nGet your Personal Access Token from: https://calendly.com/integrations/api_webhooks\n\nUsage in Moltbot\n\nWhen user asks about:\n\n\"What meetings do I have?\" → list-events with --min-start-time (use recent date!)\n\"Cancel my 2pm meeting\" → Find with list-events (time-filtered), then cancel-event\n\"Who's attending X meeting?\" → list-event-invitees\n\nNote: First time, run calendly get-current-user to obtain your User URI.\n\nGetting Your User URI\n\nRun calendly get-current-user to get your user URI. Example:\n\n{\n  \"resource\": {\n    \"uri\": \"https://api.calendly.com/users/<YOUR_USER_UUID>\",\n    \"scheduling_url\": \"https://calendly.com/<your-username>\"\n  }\n}\n\nExamples\n# List next 10 events\ncalendly list-events \\\n  --user-uri \"<YOUR_USER_URI>\" \\\n  -o json | jq .\n\n# Get event details\ncalendly get-event \\\n  --event-uuid \"<EVENT_UUID>\" \\\n  -o json\n\n# Cancel with reason\ncalendly cancel-event \\\n  --event-uuid \"<EVENT_UUID>\" \\\n  --reason \"Rescheduling due to conflict\"\n\nComing Soon: Scheduling API (v2.0)\n\nOnce calendly-mcp-server v2.0.0 is published, these commands will be available:\n\nScheduling Workflow\n# 1. List available event types\ncalendly list-event-types\n\n# 2. Check availability for a specific event type\ncalendly get-event-type-availability --event-type \"<EVENT_TYPE_URI>\"\n\n# 3. Schedule a meeting (requires paid Calendly plan)\ncalendly schedule-event \\\n  --event-type \"<EVENT_TYPE_URI>\" \\\n  --start-time \"2026-01-25T19:00:00Z\" \\\n  --invitee-email \"client@company.com\" \\\n  --invitee-name \"John Smith\" \\\n  --invitee-timezone \"America/New_York\"\n\n\nScheduling API Requirements:\n\ncalendly-mcp-server v2.0.0+ (unreleased as of 2026-01-21)\nPaid Calendly plan (Standard or higher)\n\nTo upgrade when v2.0 is published:\n\ncd ~/clawd/skills/calendly\nMCPORTER_CONFIG=./mcporter.json npx mcporter@latest generate-cli --server calendly --output calendly\n\nImportant: Time Filtering\n\nAlways use --min-start-time when querying recent events!\n\nThe API returns events oldest-first by default and doesn't support pagination via CLI. Without a time filter, you'll get events from years ago.\n\n# Last 7 days\ncalendly list-events --user-uri \"<URI>\" --min-start-time \"$(date -u -d '7 days ago' +%Y-%m-%dT00:00:00Z)\"\n\n# This week\ncalendly list-events --user-uri \"<URI>\" --min-start-time \"2026-01-20T00:00:00Z\" --max-start-time \"2026-01-27T23:59:59Z\"\n\n# Future events only\ncalendly list-events --user-uri \"<URI>\" --min-start-time \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"\n\nNotes\nAll times in API responses are UTC (convert to Pacific for display)\nEvent UUIDs are found in list-events output\nOAuth tools available but not needed with Personal Access Token\nNo pagination support in CLI - use time filters instead\n\nGenerated: 2026-01-20\nUpdated: 2026-01-21 (Portable CLI with npm v1.0.0; v2.0 scheduling features pending upstream publish)\nSource: meAmitPatil/calendly-mcp-server via mcporter"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/kesslerio/calendly",
    "publisherUrl": "https://clawhub.ai/kesslerio/calendly",
    "owner": "kesslerio",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/calendly",
    "downloadUrl": "https://openagent3.xyz/downloads/calendly",
    "agentUrl": "https://openagent3.xyz/skills/calendly/agent",
    "manifestUrl": "https://openagent3.xyz/skills/calendly/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/calendly/agent.md"
  }
}