{
  "data": {
    "a": {
      "slug": "cal-com",
      "name": "Cal.com API v2 + MCP",
      "vendor": "Cal.com",
      "vendorUrl": "https://cal.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Scheduling API behind Cal.com's booking pages.",
      "url": "https://www.anchorterminal.com/tools/cal-com",
      "markdownUrl": "https://www.anchorterminal.com/tools/cal-com.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cal-com.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cal-com.json",
      "repo": "https://github.com/calcom/cal-mcp",
      "license": "Proprietary (hosted product since April 2026). The @calcom/cal-mcp package and repository carry no licence",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.cal.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@calcom/cal-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer API key from Settings, prefixed `cal_` in test mode and `cal_live_` in live mode, or OAuth for integrations used by other Cal.com users. Most endpoints also want a `cal-api-version` header with a date (2024-09-04 for slots). The hosted MCP at mcp.cal.com signs in with OAuth 2.1. The local server reads `CAL_API_KEY`.",
      "pricing": "freemium",
      "pricingNotes": "Free plan for one user with unlimited event types and calendars. Teams $12 a user a month and Organizations $28 a user a month, both billed yearly (25 per cent off monthly), each with a 14-day trial. Enterprise is custom and annual. Teams adds round-robin, collective event types and routing forms. The Organizations plan adds sub-teams, SAML SSO, SCIM, domain-wide delegation and more APIs (https://cal.com/pricing). The separate Platform product has been closed to new sign-ups since 15 December 2025 (https://cal.com/docs/api-reference/v2/introduction).",
      "priceSummary": "$12 / seat-mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 63,
      "popularity": {
        "githubStars": 30,
        "npmWeekly": 786,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://cal.com/docs/api-reference/v2/introduction",
      "llmsTxt": "https://cal.com/docs/llms.txt",
      "openapi": "https://cal.com/docs/api-reference/v2/openapi.json",
      "capabilities": [
        "calendar.read",
        "calendar.availability",
        "calendar.booking",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "llms-txt",
        "openapi",
        "webhooks",
        "typescript",
        "closed-source",
        "enterprise"
      ],
      "lastRelease": "2026-09-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.2,
        "grade": "C",
        "agentReady": false,
        "rank": 618,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 50,
          "payments": 30,
          "reliability": 60,
          "schema": 76,
          "security": 56,
          "transparency": 78
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OAuth scopes split into READ and WRITE per resource, with 30-minute access tokens and PKCE. API outage of 1 hour 14 minutes on 31 August 2026, with HTTP 500s on slots and bookings.",
        "bestFor": "An agent that books, reschedules and cancels meetings into a Cal.com user's event types, or routes leads with routing forms.",
        "strengths": [
          "OAuth scopes split into READ and WRITE per resource, with 30-minute access tokens and PKCE",
          "Hosted MCP with 63 tools and a `toolsets` parameter to load only the groups needed",
          "OpenAPI 3.0 spec, llms.txt and Markdown reference pages",
          "Cursor pagination and filters on bookings by status, attendee, event type and time",
          "ISO 27001, SOC 2 Type II and a Bugcrowd disclosure programme"
        ],
        "weaknesses": [
          "API outage of 1 hour 14 minutes on 31 August 2026, with HTTP 500s on slots and bookings",
          "120 requests a minute by default and no documented 429 or retry behaviour",
          "Closed source since April 2026, and the npm MCP package hasn't changed since May 2025",
          "No idempotency key on booking creation",
          "Plain API keys can't be scoped"
        ],
        "agentNotes": [
          "Send `cal-api-version: 2026-05-01` on bookings and `2024-09-04` on slots, since each endpoint pins its own version",
          "Append `?toolsets=bookings,availability` to the hosted MCP URL to skip the other 50-odd tools",
          "Page bookings with `pagination.nextCursor`, not offsets",
          "Check for an existing booking before retrying a create, since there's no idempotency key",
          "Use `cal_` test keys while building so bookings don't reach real calendars"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.2
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 50,
          "payments": 30,
          "reliability": 60,
          "schema": 76,
          "security": 56,
          "transparency": 61
        },
        "provenanceScore": 94
      },
      "connect": {
        "http": "curl \"https://api.cal.com/v2/slots?eventTypeId=123\u0026start=2026-10-01\u0026end=2026-10-02\u0026timeZone=Europe/London\" \\\n  -H \"Authorization: Bearer $CAL_API_KEY\" \\\n  -H \"cal-api-version: 2024-09-04\"",
        "claudeCode": "claude mcp add --transport http calcom https://mcp.cal.com/mcp",
        "config": {
          "mcpServers": {
            "calcom": {
              "args": [
                "@calcom/cal-mcp@latest"
              ],
              "command": "npx",
              "env": {
                "CAL_API_KEY": "${CAL_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/cal-com"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Teams",
          "unit": "seat-month",
          "usd": 12,
          "note": "Billed yearly"
        },
        {
          "item": "Organizations plan",
          "unit": "seat-month",
          "usd": 28,
          "note": "Billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Cal.com, Inc.",
        "domain": "cal.com",
        "domainRegistered": "1997-05-16",
        "domainNote": "cal.com was registered in 1997, long before Cal.com launched, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://cal.com/terms",
        "privacy": "https://cal.com/privacy",
        "statusPage": "https://status.cal.com",
        "changelog": "https://cal.com/blog",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "The privacy policy (effective 20 August 2026) gives a San Francisco address. The terms carry an effective date of 2021-04-14 and name the laws of the United Kingdom.",
          "security.txt expires 2030-06-01 and lists GitHub security advisories on calcom/cal.com as the contact, a repository that now hosts the Cal.diy fork.",
          "Release notes are blog posts titled Changelog, the latest v6.9 on 2026-09-15. cal.com/changelog is a user's booking page, not a changelog."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cal-com.json",
      "live": {
        "slug": "cal-com",
        "probe": {
          "target": "https://api.cal.com/v2",
          "method": "get",
          "lastAt": "2026-10-10T03:53:23.052009729Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 195,
          "authRequired": false,
          "uptime24h": 99.6,
          "uptime30d": 99.74,
          "p50ms24h": 182,
          "p95ms24h": 467,
          "samples24h": 249,
          "samples30d": 2274,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 108
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 267
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 248
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cal.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:11.886504584Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@calcom/cal-mcp",
            "version": "0.0.6",
            "seenAt": "2026-10-09T16:44:21.621867495Z"
          }
        ],
        "githubStars": 30,
        "npmWeekly": 639,
        "securityTxt": {
          "url": "https://cal.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-06-01T00:00:00.000Z",
          "checkedAt": "2026-10-09T15:40:17.594765086Z"
        },
        "llmsTxt": {
          "url": "https://cal.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:34.069991336Z"
        },
        "domain": {
          "domain": "cal.com",
          "registered": "1997-05-16",
          "source": "https://rdap.verisign.com/com/v1/domain/cal.com",
          "checkedAt": "2026-10-04T13:04:17.498740317Z"
        },
        "pages": [
          {
            "url": "https://cal.com/blog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:32.252387692Z",
            "changedAt": "2026-10-09T18:33:32.252387692Z",
            "fingerprint": "1f894d3fa8ee"
          },
          {
            "url": "https://cal.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:34.769313639Z",
            "changedAt": "2026-10-07T18:03:05.641616424Z",
            "fingerprint": "905401b7975e"
          },
          {
            "url": "https://cal.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:36.450076888Z",
            "changedAt": "2026-10-09T18:33:36.450076888Z",
            "fingerprint": "7e55f4ab8dd4"
          },
          {
            "url": "https://cal.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:38.429383499Z",
            "changedAt": "2026-10-09T18:33:38.429383499Z",
            "fingerprint": "441bf02fe62c"
          }
        ],
        "updatedAt": "2026-10-10T03:53:23.052009729Z"
      }
    },
    "answer": "Cal.com API v2 + MCP scores 57.2 (C) on agent readiness against Zoom Scheduler API's 50.6 (D), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "zoom-scheduler",
      "name": "Zoom Scheduler API",
      "vendor": "Zoom Communications, Inc.",
      "vendorUrl": "https://www.zoom.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Zoom's REST API for Zoom Scheduler, its appointment booking product. It reads schedules, availability and scheduled events, lists open slots, creates and cancels bookings and sends booking webhooks, with OAuth access on api.zoom.us.",
      "url": "https://www.anchorterminal.com/tools/zoom-scheduler",
      "markdownUrl": "https://www.anchorterminal.com/tools/zoom-scheduler.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zoom-scheduler.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zoom-scheduler.json",
      "license": "Proprietary service under the Zoom API Licence and Terms of Use",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.zoom.us/v2",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 only. A person creates an app in the Zoom App Marketplace and picks Scheduler scopes. User apps use the authorisation code grant (PKCE supported) and get one-hour access tokens with 90-day refresh tokens. Server-to-Server OAuth apps exchange an account ID, client ID and client secret for a one-hour token with no user step, and an account administrator authorises the scopes. Granular scopes exist per operation, each with an `:admin` variant. The docs show refresh tokens and device codes sent as URL query parameters as one option.",
      "pricing": "paid",
      "pricingNotes": "Scheduler costs $5.99 a user a month, or $4.99 billed yearly, and is included in Workplace Business ($21.99 monthly). The pricing page lists \"Connect to Scheduler APIs\" under the paid Scheduler plan. Scheduler Basic is free with no card, with one booking page and one calendar, and whether it can call the API was not established. A 14-day trial is advertised. No per-call charge was found (checked 2026-10-09).",
      "priceSummary": "$5.99 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Scheduler reference, the rate limit and OAuth docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://developers.zoom.us/docs/api/scheduler/",
      "llmsTxt": "https://developers.zoom.us/llms.txt",
      "capabilities": [
        "calendar.read",
        "calendar.availability",
        "calendar.booking",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "paid",
        "free-plan",
        "rest",
        "oauth",
        "webhooks",
        "llms-txt",
        "closed-source",
        "status-page",
        "soc2",
        "bug-bounty"
      ],
      "lastRelease": "2026-08-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.6,
        "grade": "D",
        "agentReady": false,
        "rank": 767,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 43,
          "maintenance": 28,
          "payments": 25,
          "reliability": 63,
          "schema": 61,
          "security": 54,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Each of the 24 operations has its own granular OAuth scope, and Zoom Scheduler and the REST API are separate components on the status page. No operation moves a booking, no official SDK covers Scheduler, and Zoom's API terms forbid benchmarking or monitoring the service.",
        "bestFor": "An agent booking into a Zoom Scheduler user's or team's booking pages, with slot lookup, booking, cancellation and two webhooks.",
        "strengths": [
          "Granular OAuth scopes per operation, with separate read, write, update and delete scopes and user and admin variants",
          "A slot lookup (`GET /scheduler/schedules/{scheduleId}/available_times`) and a booking call (`POST /scheduler/attendee`), added in July and June 2026",
          "llms.txt and a Markdown copy of the full reference, with request examples and 400, 401, 404, 409, 429 and 500 responses listed",
          "Rate limits published by plan. Every Scheduler operation is labelled Light, 30 requests a second on Pro",
          "SOC 2 Type 2 report (October 2024 to October 2025) names Zoom Scheduler and Zoom APIs in scope, and security.txt is valid to 2029"
        ],
        "weaknesses": [
          "Zoom's API terms (section 3.7.9) forbid using the APIs to monitor availability or performance, or for benchmarking. This matters before any probe is run",
          "No operation moves a booking. `PATCH /scheduler/events/{eventId}` changes status, notes and no-show marks only",
          "No idempotency key or safe-retry guidance for booking writes was found in the reviewed documentation",
          "No official SDK covers Scheduler. Zoom Rivet 0.3.0 has no Scheduler module",
          "No downloadable OpenAPI file is linked, and the Markdown reference omits query and path parameters",
          "The API terms allow Zoom to change or deprecate APIs without prior notice and disclaim any uptime guarantee"
        ],
        "agentNotes": [
          "Call `GET /scheduler/schedules/{scheduleId}/available_times` and book only a spot whose status is `available`",
          "Send `start_date_time` in ISO 8601 with the booker's IANA `time_zone` to `POST /scheduler/attendee`. Expect 409 on a conflict",
          "To move a booking, cancel it with `PATCH /scheduler/events/{eventId}` and `status` set to `cancelled`, then book the new slot",
          "List scheduled events before retrying a booking, because no idempotency key is documented",
          "Request a new Server-to-Server OAuth token every hour. That grant issues no refresh token"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.6
          }
        ],
        "editorialScores": {
          "ergonomics": 43,
          "maintenance": 28,
          "payments": 25,
          "reliability": 63,
          "schema": 61,
          "security": 54,
          "transparency": 59
        },
        "provenanceScore": 79
      },
      "connect": {
        "http": "curl -H \"Authorization: Bearer $ZOOM_ACCESS_TOKEN\" \"https://api.zoom.us/v2/scheduler/schedules\""
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/zoom-scheduler"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Zoom Scheduler (the plan that lists Scheduler API access)",
          "unit": "seat-month",
          "usd": 5.99,
          "note": "Monthly billing. $4.99 a user a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Zoom Communications, Inc.",
        "domain": "zoom.us",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zoom.com/en/trust/legal/zoom-api-license-and-tou/",
        "privacy": "https://www.zoom.com/en/trust/privacy/privacy-statement/",
        "statusPage": "https://status.zoom.us",
        "changelog": "https://developers.zoom.us/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Zoom API Licence and Terms of Use (last updated 16 July 2025) and the Privacy Statement (last updated 17 September 2026) both name Zoom Communications, Inc., 55 Almaden Blvd, Suite 600, San Jose, CA 95113.",
          "The API answers at https://api.zoom.us/v2 and tokens are issued at https://zoom.us/oauth/token. Legal pages sit on www.zoom.com.",
          "zoom.us/.well-known/security.txt gives a report form, security-reports@zoom.us, a PGP key and an expiry of 31 December 2029.",
          "status.zoom.us redirects to www.zoomstatus.com, an Atlassian Statuspage site.",
          "The registration date of zoom.us was not established. rdap.org answered 404 for the domain.",
          "The account holder's use of Scheduler itself falls under the Zoom Terms of Service (effective 11 August 2023), which the API terms cite for the definition of Customer Content."
        ],
        "score": 79
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zoom-scheduler.json",
      "live": {
        "slug": "zoom-scheduler",
        "probe": {
          "target": "https://api.zoom.us/v2",
          "method": "get",
          "lastAt": "2026-10-10T03:53:51.07216497Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 173,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 175,
          "p95ms24h": 303,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.zoom.us",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-10-10T03:58:52.848555173Z"
        },
        "pages": [
          {
            "url": "https://developers.zoom.us/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:36:20.102873356Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          },
          {
            "url": "https://www.zoom.com/en/trust/privacy/privacy-statement/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:06.989690084Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "91c109d39062"
          },
          {
            "url": "https://www.zoom.com/en/trust/legal/zoom-api-license-and-tou/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:04.552901735Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c294e7e03b58"
          }
        ],
        "updatedAt": "2026-10-10T03:58:52.848555173Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Cal.com",
        "b": "Zoom Communications, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.cal.com/v2",
        "b": "https://api.zoom.us/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary (hosted product since April 2026). The @calcom/cal-mcp package and repository carry no licence",
        "b": "Proprietary service under the Zoom API Licence and Terms of Use",
        "name": "Licence"
      },
      {
        "a": "63",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-15",
        "b": "2026-08-17",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-07-16",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-01",
        "b": "2026-09-17",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "30 stars, 786 npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cal.com API v2 + MCP scores 57.2 (C) on agent readiness against Zoom Scheduler API's 50.6 (D), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Cal.com API v2 + MCP or Zoom Scheduler API?"
      },
      {
        "answer": "Cal.com API v2 + MCP takes an API key or an OAuth sign-in. Zoom Scheduler API uses an OAuth sign-in.",
        "question": "Do Cal.com API v2 + MCP and Zoom Scheduler API need an API key?"
      },
      {
        "answer": "Yes. Cal.com API v2 + MCP has a hosted endpoint at https://api.cal.com/v2 and Zoom Scheduler API at https://api.zoom.us/v2.",
        "question": "Can an agent call Cal.com API v2 + MCP and Zoom Scheduler API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 76 against 61",
          "Agent ergonomics, 50 against 43",
          "Payments \u0026 pricing, 30 against 25",
          "Maintenance \u0026 community, 50 against 28",
          "Transparency \u0026 trust, 78 against 69"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "An agent that books, reschedules and cancels meetings into a Cal.com user's event types, or routes leads with routing forms.",
        "slug": "cal-com",
        "watchFor": "API outage of 1 hour 14 minutes on 31 August 2026, with HTTP 500s on slots and bookings"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent booking into a Zoom Scheduler user's or team's booking pages, with slot lookup, booking, cancellation and two webhooks.",
        "slug": "zoom-scheduler",
        "watchFor": "Zoom's API terms (section 3.7.9) forbid using the APIs to monitor availability or performance, or for benchmarking. This matters before any probe is run"
      }
    ],
    "job": {
      "capability": "calendar.read",
      "name": "Calendar access"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cal-com.json",
        "title": "Acuity Scheduling API vs Cal.com API v2 + MCP",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cal-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler.json",
        "title": "Acuity Scheduling API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-cal-com.json",
        "title": "Apiroc Unified Calendar API vs Cal.com API v2 + MCP",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-cal-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.json",
        "title": "Apiroc Unified Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-cal-com.json",
        "title": "Aurinko Calendar API vs Cal.com API v2 + MCP",
        "url": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-cal-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-zoom-scheduler.json",
        "title": "Aurinko Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-calendly.json",
        "title": "Cal.com API v2 + MCP vs Calendly API + MCP",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-calendly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy.json",
        "title": "Cal.com API v2 + MCP vs Cronofy API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api.json",
        "title": "Cal.com API v2 + MCP vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-microsoft-graph-calendar.json",
        "title": "Cal.com API v2 + MCP vs Microsoft Graph Calendar API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-microsoft-graph-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-nylas-calendar.json",
        "title": "Cal.com API v2 + MCP vs Nylas Calendar and Scheduler API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-nylas-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/calendly-vs-zoom-scheduler.json",
        "title": "Calendly API + MCP vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/calendly-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cronofy-vs-zoom-scheduler.json",
        "title": "Cronofy API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/cronofy-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler.json",
        "title": "Google Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-zoom-scheduler.json",
        "title": "Microsoft Graph Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nylas-calendar-vs-zoom-scheduler.json",
        "title": "Nylas Calendar and Scheduler API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/nylas-calendar-vs-zoom-scheduler"
      }
    ],
    "scores": [
      {
        "by": 3,
        "cal-com": 60,
        "edge": "zoom-scheduler",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "zoom-scheduler": 63
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "cal-com": 76,
        "edge": "cal-com",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zoom-scheduler": 61
      },
      {
        "by": 7,
        "cal-com": 50,
        "edge": "cal-com",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "zoom-scheduler": 43
      },
      {
        "by": 2,
        "cal-com": 56,
        "edge": "cal-com",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "zoom-scheduler": 54
      },
      {
        "by": 5,
        "cal-com": 30,
        "edge": "cal-com",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zoom-scheduler": 25
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "cal-com": 50,
        "edge": "cal-com",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zoom-scheduler": 28
      },
      {
        "by": 9,
        "cal-com": 78,
        "edge": "cal-com",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zoom-scheduler": 69
      }
    ],
    "summary": "Cal.com API v2 + MCP scores 57.2 (C) on agent readiness against Zoom Scheduler API's 50.6 (D), and leads in 6 of 7 scored categories. Both do calendar access.",
    "verdicts": {
      "cal-com": "OAuth scopes split into READ and WRITE per resource, with 30-minute access tokens and PKCE. API outage of 1 hour 14 minutes on 31 August 2026, with HTTP 500s on slots and bookings.",
      "zoom-scheduler": "Each of the 24 operations has its own granular OAuth scope, and Zoom Scheduler and the REST API are separate components on the status page. No operation moves a booking, no official SDK covers Scheduler, and Zoom's API terms forbid benchmarking or monitoring the service."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler",
    "json": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.md",
    "slim": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.min.md"
  },
  "markdown": "Cal.com API v2 + MCP scores 57.2 (C) on agent readiness against Zoom Scheduler API's 50.6 (D), and leads in 6 of 7 scored categories. Both do calendar access.\n\n- Cal.com API v2 + MCP: grade C, 57.2/100, rank #618 of 950. Markdown https://www.anchorterminal.com/tools/cal-com.md · JSON https://www.anchorterminal.com/api/v1/tools/cal-com.json\n- Zoom Scheduler API: grade D, 50.6/100, rank #767 of 950. Markdown https://www.anchorterminal.com/tools/zoom-scheduler.md · JSON https://www.anchorterminal.com/api/v1/tools/zoom-scheduler.json\n- Best calendar and scheduling APIs for AI agents: https://www.anchorterminal.com/best/scheduling/index.md\n- All 45 scheduling comparisons: https://www.anchorterminal.com/compare/scheduling/index.md\n\n## Which one, for what\n\n### Cal.com API v2 + MCP (C)\n\nGood for: An agent that books, reschedules and cancels meetings into a Cal.com user's event types, or routes leads with routing forms.\n\nAhead on:\n- Schema \u0026 documentation, 76 against 61\n- Agent ergonomics, 50 against 43\n- Payments \u0026 pricing, 30 against 25\n- Maintenance \u0026 community, 50 against 28\n- Transparency \u0026 trust, 78 against 69\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: API outage of 1 hour 14 minutes on 31 August 2026, with HTTP 500s on slots and bookings\n\n### Zoom Scheduler API (D)\n\nGood for: An agent booking into a Zoom Scheduler user's or team's booking pages, with slot lookup, booking, cancellation and two webhooks.\n\nWatch for: Zoom's API terms (section 3.7.9) forbid using the APIs to monitor availability or performance, or for benchmarking. This matters before any probe is run\n\n\n## Score by category\n\n| Category | Weight | Cal.com API v2 + MCP | Zoom Scheduler API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 63 | Zoom Scheduler API +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 61 | Cal.com API v2 + MCP +15 |\n| Agent ergonomics | 13% (16.2 this run) | 50 | 43 | Cal.com API v2 + MCP +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 54 | Cal.com API v2 + MCP +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 25 | Cal.com API v2 + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 50 | 28 | Cal.com API v2 + MCP +22 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 69 | Cal.com API v2 + MCP +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **57.2 · C** | **50.6 · D** | |\n\n## Facts side by side\n\n| Fact | Cal.com API v2 + MCP | Zoom Scheduler API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cal.com | Zoom Communications, Inc. |\n| Hosted endpoint | `https://api.cal.com/v2` | `https://api.zoom.us/v2` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Proprietary (hosted product since April 2026). The @calcom/cal-mcp package and repository carry no licence | Proprietary service under the Zoom API Licence and Terms of Use |\n| Tools exposed | 63 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-15 | 2026-08-17 |\n| Terms last updated | no date given | 2025-07-16 |\n| Privacy policy last updated | 2026-10-01 | 2026-09-17 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 30 stars, 786 npm/wk | none |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Cal.com API v2 + MCP.** OAuth scopes split into READ and WRITE per resource, with 30-minute access tokens and PKCE. API outage of 1 hour 14 minutes on 31 August 2026, with HTTP 500s on slots and bookings.\n\n**Zoom Scheduler API.** Each of the 24 operations has its own granular OAuth scope, and Zoom Scheduler and the REST API are separate components on the status page. No operation moves a booking, no official SDK covers Scheduler, and Zoom's API terms forbid benchmarking or monitoring the service.\n\n## Before you call either\n\n### Cal.com API v2 + MCP\n\n1. Send `cal-api-version: 2026-05-01` on bookings and `2024-09-04` on slots, since each endpoint pins its own version\n2. Append `?toolsets=bookings,availability` to the hosted MCP URL to skip the other 50-odd tools\n3. Page bookings with `pagination.nextCursor`, not offsets\n4. Check for an existing booking before retrying a create, since there's no idempotency key\n5. Use `cal_` test keys while building so bookings don't reach real calendars\n\n### Zoom Scheduler API\n\n1. Call `GET /scheduler/schedules/{scheduleId}/available_times` and book only a spot whose status is `available`\n2. Send `start_date_time` in ISO 8601 with the booker's IANA `time_zone` to `POST /scheduler/attendee`. Expect 409 on a conflict\n3. To move a booking, cancel it with `PATCH /scheduler/events/{eventId}` and `status` set to `cancelled`, then book the new slot\n4. List scheduled events before retrying a booking, because no idempotency key is documented\n5. Request a new Server-to-Server OAuth token every hour. That grant issues no refresh token\n\n## Questions\n\n### Which is better for AI agents, Cal.com API v2 + MCP or Zoom Scheduler API?\n\nCal.com API v2 + MCP scores 57.2 (C) on agent readiness against Zoom Scheduler API's 50.6 (D), and leads in 6 of 7 scored categories.\n\n### Do Cal.com API v2 + MCP and Zoom Scheduler API need an API key?\n\nCal.com API v2 + MCP takes an API key or an OAuth sign-in. Zoom Scheduler API uses an OAuth sign-in.\n\n### Can an agent call Cal.com API v2 + MCP and Zoom Scheduler API without installing anything?\n\nYes. Cal.com API v2 + MCP has a hosted endpoint at https://api.cal.com/v2 and Zoom Scheduler API at https://api.zoom.us/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cal-com\", \"b\": \"zoom-scheduler\"}`. From a terminal: `anchor compare cal-com zoom-scheduler`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cal-com.json and https://www.anchorterminal.com/api/v1/tools/zoom-scheduler.json\n\n## Other comparisons with Cal.com API v2 + MCP or Zoom Scheduler API\n\n- [Acuity Scheduling API vs Cal.com API v2 + MCP](https://www.anchorterminal.com/compare/acuity-scheduling-vs-cal-com.md)\n- [Acuity Scheduling API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler.md)\n- [Apiroc Unified Calendar API vs Cal.com API v2 + MCP](https://www.anchorterminal.com/compare/apiroc-vs-cal-com.md)\n- [Apiroc Unified Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.md)\n- [Aurinko Calendar API vs Cal.com API v2 + MCP](https://www.anchorterminal.com/compare/aurinko-calendar-vs-cal-com.md)\n- [Aurinko Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/aurinko-calendar-vs-zoom-scheduler.md)\n- [Cal.com API v2 + MCP vs Calendly API + MCP](https://www.anchorterminal.com/compare/cal-com-vs-calendly.md)\n- [Cal.com API v2 + MCP vs Cronofy API](https://www.anchorterminal.com/compare/cal-com-vs-cronofy.md)\n- [Cal.com API v2 + MCP vs Google Calendar API](https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api.md)\n- [Cal.com API v2 + MCP vs Microsoft Graph Calendar API](https://www.anchorterminal.com/compare/cal-com-vs-microsoft-graph-calendar.md)\n- [Cal.com API v2 + MCP vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/cal-com-vs-nylas-calendar.md)\n- [Calendly API + MCP vs Zoom Scheduler API](https://www.anchorterminal.com/compare/calendly-vs-zoom-scheduler.md)\n- [Cronofy API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/cronofy-vs-zoom-scheduler.md)\n- [Google Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler.md)\n- [Microsoft Graph Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-zoom-scheduler.md)\n- [Nylas Calendar and Scheduler API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/nylas-calendar-vs-zoom-scheduler.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cal.com API v2 + MCP vs Zoom Scheduler API",
        "url": ""
      }
    ],
    "description": "Cal.com API v2 scores 57.2 (C) to Zoom Scheduler's 50.6 (D) for calendar access. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cal.com API v2 + MCP C 57.2",
      "Zoom Scheduler API D 50.6",
      "scores"
    ],
    "h1": "Cal.com API v2 + MCP vs Zoom Scheduler API",
    "image": "https://www.anchorterminal.com/assets/og/compare-cal-com-vs-zoom-scheduler.png",
    "path": "/compare/cal-com-vs-zoom-scheduler",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cal.com API v2 vs Zoom Scheduler for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
