{
  "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-05T03:17:23.76514746Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 167,
          "authRequired": false,
          "uptime24h": 99.27,
          "uptime30d": 99.68,
          "p50ms24h": 170,
          "p95ms24h": 480,
          "samples24h": 273,
          "samples30d": 938,
          "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": 38,
              "ok": 37
            }
          ]
        },
        "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-05T03:17:23.76514746Z"
      }
    },
    "b": {
      "slug": "cronofy",
      "name": "Cronofy API",
      "vendor": "Cronofy",
      "vendorUrl": "https://www.cronofy.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Calendar sync and scheduling API from a UK company.",
      "url": "https://www.anchorterminal.com/tools/cronofy",
      "markdownUrl": "https://www.anchorterminal.com/tools/cronofy.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cronofy.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cronofy.json",
      "repo": "https://github.com/cronofy/cronofy-node",
      "license": "MIT (SDKs)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.cronofy.com",
      "packages": [
        {
          "registry": "npm",
          "name": "cronofy"
        },
        {
          "registry": "pypi",
          "name": "pycronofy"
        }
      ],
      "auth": "mixed",
      "authNotes": "Each user connects through Cronofy's OAuth flow and gets an access token. Application-level calls such as Availability take the application's key as a Bearer token. The MCP server takes the `client_secret` of an internal application as a Bearer token for single-tenant use, or OAuth 2.0 for multi-tenant use.",
      "pricing": "paid",
      "pricingNotes": "Free developer account for building and testing. Emerging $819 a month billed yearly for up to 500 synced accounts, then $1.39 each a month. Growth $2,399 a month billed yearly for up to 3,000, then $0.69 each. Strategic is custom with priority support. The Meeting Agents add-on costs $0.79 an hour for 25 to 4,000 hours, with a $99 monthly minimum on its own and the first 24 hours free (https://www.cronofy.com/pricing).",
      "priceSummary": "$819 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 51,
        "npmWeekly": 10797,
        "pypiWeekly": 10097,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.cronofy.com/developers/",
      "llmsTxt": "https://docs.cronofy.com/llms.txt",
      "capabilities": [
        "calendar.read",
        "calendar.write",
        "calendar.availability",
        "calendar.booking",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "webhooks",
        "typescript",
        "python",
        "enterprise",
        "eu",
        "closed-source"
      ],
      "lastRelease": "2026-09-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.4,
        "grade": "B",
        "agentReady": false,
        "rank": 182,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 56,
          "payments": 30,
          "reliability": 85,
          "schema": 58,
          "security": 60,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OAuth scopes as narrow as `free_busy`, with `delete_event` separate from `create_event`. Production pricing starts at $819 a month billed yearly.",
        "strengths": [
          "OAuth scopes as narrow as `free_busy`, with `delete_event` separate from `create_event`",
          "Event writes keyed on your `event_id`, so a retried create updates instead of duplicating",
          "99.99% uptime guarantee on Emerging and Growth",
          "Retention published per data type, such as 30 days for third-party events after disconnection",
          "ISO 27001, 27018 and 27701, SOC 2 Type 2 and a public bug bounty"
        ],
        "weaknesses": [
          "Production pricing starts at $819 a month billed yearly",
          "No OpenAPI spec or security.txt",
          "The changelog has no dates and its latest entries are years old",
          "MCP server is early access with no published tool list, and single-tenant mode takes the application secret",
          "429 guidance says only to pause, with no Retry-After"
        ],
        "agentNotes": [
          "Call the data centre host the account was created in (api-uk, api-de and so on), since data never crosses regions",
          "Reuse the same `event_id` when retrying an event write, since Cronofy upserts on it",
          "Ask for `response_format` slots when you want bookable times rather than free periods",
          "On 423, ask the user to relink, since Cronofy has already emailed them",
          "Keep under 50 requests a second and 500 a minute, and pause on 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 56,
          "payments": 30,
          "reliability": 85,
          "schema": 58,
          "security": 60,
          "transparency": 58
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST https://api.cronofy.com/v1/availability \\\n  -H \"Authorization: Bearer $CRONOFY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"participants\":[{\"members\":[{\"sub\":\"acc_5ba21743f408617d1269ea1e\"}],\"required\":\"all\"}],\"required_duration\":{\"minutes\":30},\"query_periods\":[{\"start\":\"2026-10-01T09:00:00Z\",\"end\":\"2026-10-01T17:00:00Z\"}],\"response_format\":\"slots\"}'",
        "claudeCode": "claude mcp add --transport http cronofy https://api.cronofy.com/v1/mcp_server --header \"Authorization: Bearer $CRONOFY_CLIENT_SECRET\"",
        "config": {
          "mcpServers": {
            "cronofy": {
              "headers": {
                "Authorization": "Bearer ${CRONOFY_CLIENT_SECRET}"
              },
              "url": "https://api.cronofy.com/v1/mcp_server"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/cronofy"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Emerging",
          "unit": "month",
          "usd": 819,
          "note": "Up to 500 synced accounts, billed yearly"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 2399,
          "note": "Up to 3,000 synced accounts, billed yearly"
        },
        {
          "item": "Extra synced account on Emerging",
          "unit": "account-month",
          "usd": 1.39
        },
        {
          "item": "Extra synced account on Growth",
          "unit": "account-month",
          "usd": 0.69
        }
      ],
      "provenance": {
        "legalEntity": "Cronofy Limited",
        "domain": "cronofy.com",
        "domainRegistered": "2014-10-06",
        "endpointOnVendorDomain": true,
        "terms": "https://docs.cronofy.com/policies/terms-of-service/",
        "privacy": "https://docs.cronofy.com/policies/privacy-notice/",
        "statusPage": "https://status.cronofy.com",
        "changelog": "https://changelog.cronofy.com",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms (updated 24 September 2026) name Cronofy Limited, company number 07878590, 9a Beck Street, Nottingham, under the laws of England and Wales.",
          "www.cronofy.com/.well-known/security.txt returns 404.",
          "The status page lists the API, Scheduler, Meeting Agents, conferencing services and each major calendar provider as separate components."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cronofy.json",
      "live": {
        "slug": "cronofy",
        "probe": {
          "target": "https://api.cronofy.com",
          "method": "get",
          "lastAt": "2026-10-05T03:17:24.593366785Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 258,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 265,
          "p95ms24h": 304,
          "samples24h": 273,
          "samples30d": 938,
          "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": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cronofy.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T03:18:59.276950144Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "cronofy",
            "version": "3.8.4",
            "seenAt": "2026-10-04T16:24:50.006903677Z"
          },
          {
            "registry": "pypi",
            "name": "pycronofy",
            "version": "2.1.1",
            "released": "2026-09-25",
            "seenAt": "2026-10-04T16:24:51.846800426Z"
          }
        ],
        "githubStars": 51,
        "npmWeekly": 13415,
        "pypiWeekly": 7328,
        "securityTxt": {
          "url": "https://cronofy.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:04.962526224Z"
        },
        "llmsTxt": {
          "url": "https://docs.cronofy.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:28.77497468Z"
        },
        "domain": {
          "domain": "cronofy.com",
          "registered": "2014-10-06",
          "source": "https://rdap.verisign.com/com/v1/domain/cronofy.com",
          "checkedAt": "2026-10-04T13:09:51.714116739Z"
        },
        "pages": [
          {
            "url": "https://changelog.cronofy.com",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:50.385949335Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c6a5150f60a1"
          },
          {
            "url": "https://www.cronofy.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:49:56.536978328Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "242d022a202a"
          },
          {
            "url": "https://docs.cronofy.com/policies/privacy-notice/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:31.888004345Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e2e1ebea1a4c"
          },
          {
            "url": "https://docs.cronofy.com/policies/terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:34.034365666Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7298fc93e38a"
          }
        ],
        "updatedAt": "2026-10-05T03:18:59.276950144Z"
      }
    },
    "summary": "Cronofy API has a score of 64.4 (B) against Cal.com API v2 + MCP's 57.5 (C). Both do calendar read. The largest gap is agent ergonomics, 26 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy",
    "json": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy.md",
    "slim": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy.min.md"
  },
  "markdown": "Cronofy API has a score of 64.4 (B) against Cal.com API v2 + MCP's 57.5 (C). Both do calendar read. The largest gap is agent ergonomics, 26 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- Cronofy API: grade B, 64.4/100, rank #182 of 452. Markdown https://www.anchorterminal.com/tools/cronofy.md · JSON https://www.anchorterminal.com/api/v1/tools/cronofy.json\n\n## Which one, for what\n\nPick Cal.com API v2 + MCP for schema \u0026 documentation (+18), transparency \u0026 trust (+7).\n\nPick Cronofy API for reliability (+25), agent ergonomics (+26), maintenance \u0026 community (+6).\n\n## Score by category\n\n| Category | Weight | Cal.com API v2 + MCP | Cronofy API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 85 | Cronofy API +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 58 | Cal.com API v2 + MCP +18 |\n| Agent ergonomics | 13% (16.2 this run) | 50 | 76 | Cronofy API +26 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 60 | Cronofy API +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 50 | 56 | Cronofy API +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 74 | Cal.com API v2 + MCP +7 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **57.5 · C** | **64.4 · B** | |\n\n## Facts side by side\n\n| Fact | Cal.com API v2 + MCP | Cronofy API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cal.com | Cronofy |\n| Hosted endpoint | `https://api.cal.com/v2` | `https://api.cronofy.com` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\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 | MIT (SDKs) |\n| Tools exposed | 63 | none |\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 | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-15 | 2026-09-25 |\n| Popularity | 30 stars, 786 npm/wk | 51 stars, 11k npm/wk, 10k PyPI/wk |\n| Agent reviews | 3/5 (2) | 4/5 (2) |\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**Cronofy API.** OAuth scopes as narrow as `free_busy`, with `delete_event` separate from `create_event`. Production pricing starts at $819 a month billed yearly.\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### Cronofy API\n\n1. Call the data centre host the account was created in (api-uk, api-de and so on), since data never crosses regions\n2. Reuse the same `event_id` when retrying an event write, since Cronofy upserts on it\n3. Ask for `response_format` slots when you want bookable times rather than free periods\n4. On 423, ask the user to relink, since Cronofy has already emailed them\n5. Keep under 50 requests a second and 500 a minute, and pause on 429\n\n## Other comparisons with Cal.com API v2 + MCP or Cronofy 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 Cronofy API](https://www.anchorterminal.com/compare/apiroc-vs-cronofy.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 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 Cronofy API](https://www.anchorterminal.com/compare/calendly-vs-cronofy.md)\n- [Cronofy API vs Google Calendar API](https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.md)\n- [Cronofy API vs Microsoft Graph Calendar API](https://www.anchorterminal.com/compare/cronofy-vs-microsoft-graph-calendar.md)\n- [Cronofy API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/cronofy-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 Cronofy API",
        "url": ""
      }
    ],
    "description": "Cronofy API has a score of 64.4 (B) against Cal.com API v2 + MCP's 57.5 (C). Both do calendar read. The largest gap is agent ergonomics, 26 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Cal.com API v2 + MCP C 57.5",
      "Cronofy API B 64.4",
      "scores"
    ],
    "h1": "Cal.com API v2 + MCP vs Cronofy API",
    "image": "https://www.anchorterminal.com/assets/og/compare-cal-com-vs-cronofy.png",
    "path": "/compare/cal-com-vs-cronofy",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cal.com API v2 + MCP vs Cronofy API for AI agents, C 57.5 vs B 64.4",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/cal-com-vs-cronofy"
  },
  "tokens": {
    "markdown": 1450,
    "slim": 330
  },
  "version": 1
}
