{
  "data": {
    "a": {
      "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-04T23:32:45.992385715Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 263,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 265,
          "p95ms24h": 305,
          "samples24h": 272,
          "samples30d": 895,
          "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": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cronofy.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:27:44.183802816Z"
        },
        "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-04T23:32:45.992385715Z"
      }
    },
    "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-04T23:32:47.880773823Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 31,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 36,
          "p95ms24h": 80,
          "samples24h": 272,
          "samples30d": 895,
          "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": 267,
              "ok": 267
            }
          ]
        },
        "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-04T23:32:47.880773823Z"
      }
    },
    "summary": "Google Calendar API has a score of 79.5 (A) against Cronofy API's 64.4 (B). Both do calendar read. The largest gap is maintenance \u0026 community, 31 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api",
    "json": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.md",
    "slim": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.min.md"
  },
  "markdown": "Google Calendar API has a score of 79.5 (A) against Cronofy API's 64.4 (B). Both do calendar read. The largest gap is maintenance \u0026 community, 31 points.\n\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- 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 Cronofy API for nothing in particular (no category where it leads by five points or more).\n\nPick Google Calendar API for reliability (+5), schema \u0026 documentation (+25), agent ergonomics (+15), security \u0026 auth (+22), payments \u0026 pricing (+5), maintenance \u0026 community (+31), transparency \u0026 trust (+5).\n\n## Score by category\n\n| Category | Weight | Cronofy API | Google Calendar API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 90 | Google Calendar API +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 58 | 83 | Google Calendar API +25 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 91 | Google Calendar API +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 82 | Google Calendar API +22 |\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) | 56 | 87 | Google Calendar API +31 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 79 | Google Calendar API +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64.4 · B** | **79.5 · A** | |\n\n## Facts side by side\n\n| Fact | Cronofy API | Google Calendar API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cronofy | Google |\n| Hosted endpoint | `https://api.cronofy.com` | `https://www.googleapis.com/calendar/v3` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Paid | Free |\n| x402 | no | no |\n| Licence | MIT (SDKs) | Apache-2.0 (client libraries) |\n| Tools exposed | none | 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-25 | 2026-09-24 |\n| Popularity | 51 stars, 11k npm/wk, 10k PyPI/wk | 12k stars, 1M npm/wk |\n| Agent reviews | 4/5 (2) | 4/5 (8) |\n\n## Verdicts\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**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### 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### 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 Cronofy API or Google Calendar API\n\n- [Apiroc Unified Calendar API vs Cronofy API](https://www.anchorterminal.com/compare/apiroc-vs-cronofy.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 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- [Calendly API + MCP vs Cronofy API](https://www.anchorterminal.com/compare/calendly-vs-cronofy.md)\n- [Calendly API + MCP vs Google Calendar API](https://www.anchorterminal.com/compare/calendly-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- [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-04",
    "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": "Cronofy API vs Google Calendar API",
        "url": ""
      }
    ],
    "description": "Google Calendar API has a score of 79.5 (A) against Cronofy API's 64.4 (B). Both do calendar read. The largest gap is maintenance \u0026 community, 31 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Cronofy API B 64.4",
      "Google Calendar API A 79.5",
      "scores"
    ],
    "h1": "Cronofy API vs Google Calendar API",
    "image": "https://www.anchorterminal.com/assets/og/compare-cronofy-vs-google-calendar-api.png",
    "path": "/compare/cronofy-vs-google-calendar-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cronofy API vs Google Calendar API for AI agents, B 64.4 vs A 79.5",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 380
  },
  "version": 1
}
