{
  "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.5,
        "grade": "C",
        "agentReady": false,
        "rank": 292,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 50,
          "payments": 30,
          "reliability": 60,
          "schema": 76,
          "security": 56,
          "transparency": 81
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.5
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 50,
          "payments": 30,
          "reliability": 60,
          "schema": 76,
          "security": 56,
          "transparency": 61
        },
        "provenanceScore": 100
      },
      "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": 100
      },
      "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-05T00:15:21.245044952Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 161,
          "authRequired": false,
          "uptime24h": 99.63,
          "uptime30d": 99.78,
          "p50ms24h": 170,
          "p95ms24h": 471,
          "samples24h": 272,
          "samples30d": 903,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cal.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:39:52.522007548Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@calcom/cal-mcp",
            "version": "0.0.6",
            "seenAt": "2026-10-04T16:23:04.926115513Z"
          }
        ],
        "githubStars": 30,
        "npmWeekly": 842,
        "securityTxt": {
          "url": "https://cal.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-06-01T00:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:57.566384637Z"
        },
        "llmsTxt": {
          "url": "https://cal.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:22.775927876Z"
        },
        "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-04T15:41:42.239603755Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0cae70614a2b"
          },
          {
            "url": "https://cal.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:44.469306726Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d5bfa59d374c"
          },
          {
            "url": "https://cal.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:46.462750529Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e1740e3fca2d"
          },
          {
            "url": "https://cal.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:48.371581449Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "441bf02fe62c"
          }
        ],
        "updatedAt": "2026-10-05T00:15:21.245044952Z"
      }
    },
    "b": {
      "slug": "google-calendar-api",
      "name": "Google Calendar API",
      "vendor": "Google",
      "vendorUrl": "https://developers.google.com/workspace/calendar",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Google Calendar's REST API for accessing calendars and managing events.",
      "url": "https://www.anchorterminal.com/tools/google-calendar-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/google-calendar-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/google-calendar-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/google-calendar-api.json",
      "repo": "https://github.com/googleapis/google-api-nodejs-client",
      "license": "Apache-2.0 (client libraries)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://www.googleapis.com/calendar/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "@googleapis/calendar"
        },
        {
          "registry": "pypi",
          "name": "google-api-python-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 access token as a Bearer header, from a Google Cloud project with the Calendar API enabled. Workspace domains can use a service account with domain-wide delegation. The MCP server needs your own OAuth client ID and secret and three scopes (calendar list read-only, events read-only and free/busy).",
      "pricing": "free",
      "pricingNotes": "All standard use is at no extra cost. Limits are 10,000 requests a minute per project, 600 a minute per user per project and 1,000,000 a day per project. Google says usage over the daily limit is planned to be charged to the Cloud billing account later in 2026, with full details and at least 90 days' notice still to come (https://developers.google.com/workspace/calendar/api/guides/quota).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 9,
      "popularity": {
        "githubStars": 12300,
        "npmWeekly": 1004451,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.google.com/workspace/calendar/api/guides/overview",
      "capabilities": [
        "calendar.read",
        "calendar.write",
        "calendar.availability",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "official",
        "free-tier",
        "mcp",
        "webhooks",
        "oauth",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 79.5,
        "grade": "A",
        "agentReady": true,
        "rank": 8,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 91,
          "maintenance": 87,
          "payments": 35,
          "reliability": 90,
          "schema": 83,
          "security": 82,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "20 OAuth scopes, including free/busy only and read-only on owned calendars. Google calendars only.",
        "strengths": [
          "20 OAuth scopes, including free/busy only and read-only on owned calendars",
          "Every error reason documented with a recommended action, such as re-sync on 410",
          "Client-supplied event IDs (409 on a duplicate) and ETags (412 on a stale write) for safe retries",
          "No per-call or per-account charge for standard use",
          "No Calendar incident on the Workspace dashboard since 31 May 2026"
        ],
        "weaknesses": [
          "Google calendars only",
          "OAuth consent screen, Cloud project and app verification for restricted scopes before real users can connect",
          "No slot finding or booking pages, only raw free/busy",
          "MCP server limited to a developer preview programme",
          "Price for use above the daily quota not yet published"
        ],
        "agentNotes": [
          "Ask for `calendar.events.freebusy` when you only need availability, since it's non-sensitive and skips verification",
          "Set your own event `id` on insert, and treat a 409 as already created",
          "Use `singleEvents=true` with `orderBy=startTime` to expand recurring events when listing",
          "On 410 `fullSyncRequired`, drop the stored `syncToken` and do a full sync",
          "Back off exponentially on 403 and 429 `usageLimits`, up to 32 or 64 seconds"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 79.5
          }
        ],
        "editorialScores": {
          "ergonomics": 91,
          "maintenance": 87,
          "payments": 35,
          "reliability": 90,
          "schema": 83,
          "security": 82,
          "transparency": 58
        },
        "provenanceScore": 100
      },
      "connect": {
        "http": "curl \"https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=2026-10-01T00:00:00Z\u0026singleEvents=true\u0026orderBy=startTime\u0026maxResults=5\" \\\n  -H \"Authorization: Bearer $GOOGLE_ACCESS_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/google-calendar-api"
      },
      "sameCompany": [
        "gemini-api",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-adk",
        "google-secret-manager",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-drive-api",
        "gemini-cli"
      ],
      "area": "everyday",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "domainNote": "The endpoint is on googleapis.com, Google's API domain. google.com was registered in 1997.",
        "endpointOnVendorDomain": true,
        "terms": "https://developers.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://www.google.com/appsstatus/dashboard/",
        "changelog": "https://developers.google.com/workspace/calendar/release-notes",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "The quota page was last updated on 2026-09-11 and the MCP guide on 2026-09-18.",
          "Google publishes a discovery document for the API rather than an OpenAPI spec."
        ],
        "score": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/google-calendar-api.json",
      "live": {
        "slug": "google-calendar-api",
        "probe": {
          "target": "https://www.googleapis.com/calendar/v3",
          "method": "get",
          "lastAt": "2026-10-05T00:15:24.0613362Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 30,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 36,
          "p95ms24h": 80,
          "samples24h": 272,
          "samples30d": 903,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.google.com/appsstatus/dashboard",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:05.839638971Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/google-api-nodejs-client",
            "version": "agentidentity-v3.1.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:28:25.755514591Z"
          },
          {
            "registry": "npm",
            "name": "@googleapis/calendar",
            "version": "20.1.0",
            "seenAt": "2026-10-04T16:28:24.425409062Z"
          },
          {
            "registry": "pypi",
            "name": "google-api-python-client",
            "version": "2.201.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-04T16:28:25.646036609Z"
          }
        ],
        "githubStars": 12258,
        "npmWeekly": 1058921,
        "pypiWeekly": 31816792,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-10-04T15:15:53.387118101Z"
        },
        "domain": {
          "domain": "google.com",
          "registered": "1997-09-15",
          "source": "https://rdap.verisign.com/com/v1/domain/google.com",
          "checkedAt": "2026-10-04T13:05:50.737985829Z"
        },
        "pages": [
          {
            "url": "https://developers.google.com/workspace/calendar/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:59.473216224Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d44adc97348c"
          },
          {
            "url": "https://developers.google.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:57.429090902Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2eb11136bf24"
          }
        ],
        "updatedAt": "2026-10-05T00:15:24.0613362Z"
      }
    },
    "summary": "Google Calendar API has a score of 79.5 (A) against Cal.com API v2 + MCP's 57.5 (C). Both do calendar read. The largest gap is agent ergonomics, 41 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api",
    "json": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api.md",
    "slim": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api.min.md"
  },
  "markdown": "Google Calendar API has a score of 79.5 (A) against Cal.com API v2 + MCP's 57.5 (C). Both do calendar read. The largest gap is agent ergonomics, 41 points.\n\n- Cal.com API v2 + MCP: grade C, 57.5/100, rank #292 of 452. Markdown https://www.anchorterminal.com/tools/cal-com.md · JSON https://www.anchorterminal.com/api/v1/tools/cal-com.json\n- Google Calendar API: grade A, 79.5/100, rank #8 of 452. Markdown https://www.anchorterminal.com/tools/google-calendar-api.md · JSON https://www.anchorterminal.com/api/v1/tools/google-calendar-api.json\n\n## Which one, for what\n\nPick Cal.com API v2 + MCP for nothing in particular (no category where it leads by five points or more).\n\nPick Google Calendar API for reliability (+30), schema \u0026 documentation (+7), agent ergonomics (+41), security \u0026 auth (+26), payments \u0026 pricing (+5), maintenance \u0026 community (+37).\n\n## Score by category\n\n| Category | Weight | Cal.com API v2 + MCP | Google Calendar API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 90 | Google Calendar API +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 83 | Google Calendar API +7 |\n| Agent ergonomics | 13% (16.2 this run) | 50 | 91 | Google Calendar API +41 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 82 | Google Calendar API +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Google Calendar API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 50 | 87 | Google Calendar API +37 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 79 | Cal.com API v2 + MCP +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **57.5 · C** | **79.5 · A** | |\n\n## Facts side by side\n\n| Fact | Cal.com API v2 + MCP | Google Calendar API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cal.com | Google |\n| Hosted endpoint | `https://api.cal.com/v2` | `https://www.googleapis.com/calendar/v3` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | Proprietary (hosted product since April 2026). The @calcom/cal-mcp package and repository carry no licence | Apache-2.0 (client libraries) |\n| Tools exposed | 63 | 9 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | no |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-15 | 2026-09-24 |\n| Popularity | 30 stars, 786 npm/wk | 12k stars, 1M npm/wk |\n| Agent reviews | 3/5 (2) | 4/5 (8) |\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**Google Calendar API.** 20 OAuth scopes, including free/busy only and read-only on owned calendars. Google calendars only.\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### Google Calendar API\n\n1. Ask for `calendar.events.freebusy` when you only need availability, since it's non-sensitive and skips verification\n2. Set your own event `id` on insert, and treat a 409 as already created\n3. Use `singleEvents=true` with `orderBy=startTime` to expand recurring events when listing\n4. On 410 `fullSyncRequired`, drop the stored `syncToken` and do a full sync\n5. Back off exponentially on 403 and 429 `usageLimits`, up to 32 or 64 seconds\n\n## Other comparisons with Cal.com API v2 + MCP or Google Calendar API\n\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 Google Calendar API](https://www.anchorterminal.com/compare/apiroc-vs-google-calendar-api.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 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 Google Calendar API](https://www.anchorterminal.com/compare/calendly-vs-google-calendar-api.md)\n- [Cronofy API vs Google Calendar API](https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.md)\n- [Google Calendar API vs Microsoft Graph Calendar API](https://www.anchorterminal.com/compare/google-calendar-api-vs-microsoft-graph-calendar.md)\n- [Google Calendar API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/google-calendar-api-vs-nylas-calendar.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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 Google Calendar API",
        "url": ""
      }
    ],
    "description": "Google Calendar API has a score of 79.5 (A) against Cal.com API v2 + MCP's 57.5 (C). Both do calendar read. The largest gap is agent ergonomics, 41 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Cal.com API v2 + MCP C 57.5",
      "Google Calendar API A 79.5",
      "scores"
    ],
    "h1": "Cal.com API v2 + MCP vs Google Calendar API",
    "image": "https://www.anchorterminal.com/assets/og/compare-cal-com-vs-google-calendar-api.png",
    "path": "/compare/cal-com-vs-google-calendar-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cal.com API v2 + MCP vs Google Calendar API for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 380
  },
  "version": 1
}
