{
  "data": {
    "a": {
      "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",
      "dns": "google-calendar-api.grade.anchorterminal.com",
      "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, marked as a client for an AI-powered agent (required from 2026-11-11), 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-10-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 79.7,
        "grade": "A",
        "agentReady": true,
        "rank": 16,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 91,
          "maintenance": 87,
          "payments": 35,
          "reliability": 90,
          "schema": 88,
          "security": 77,
          "transparency": 82
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": 0,
        "verdict": "21 OAuth scopes, including free/busy only and read-only on owned calendars. Google calendars only.",
        "bestFor": "An agent acting on Google Workspace or Gmail users' own calendars with tight scopes and no per-account fee.",
        "strengths": [
          "21 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 sensitive or restricted scopes before real users can connect",
          "No booking pages, and slot finding only through the preview MCP's `suggest_time`; the REST API returns raw free/busy",
          "MCP server limited to a developer preview programme, and from 11 November 2026 only to OAuth clients marked as agentic",
          "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",
          "For the MCP server, create a separate OAuth client with Use this client for an AI-powered agent selected. From 11 November 2026 other clients are rejected"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 79.7
          }
        ],
        "editorialScores": {
          "ergonomics": 91,
          "maintenance": 87,
          "payments": 35,
          "reliability": 90,
          "schema": 88,
          "security": 77,
          "transparency": 68
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-10-28",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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",
        "vertex-ai",
        "gemini-embedding",
        "vertex-ai-tuning",
        "cloud-run-gpus",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-cloud-tts",
        "gemini-live",
        "google-adk",
        "google-memory-bank",
        "google-secret-manager",
        "google-cloud-document-ai",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "firebase-cloud-messaging",
        "google-cloud-storage",
        "google-drive-api",
        "gemini-enterprise",
        "gemini-cli",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api",
        "gmail-api",
        "google-people-api"
      ],
      "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": 95
      },
      "requirements": {
        "setupChecked": true,
        "complianceChecked": true,
        "card": "no",
        "freeTier": true,
        "minutes": 15,
        "credential": "oauth",
        "hosting": [
          "global",
          "US",
          "EU"
        ],
        "euResidency": "enterprise",
        "trainsOnData": "no",
        "zeroRetention": "no",
        "certifications": [
          "SOC 2 Type II",
          "ISO 27001",
          "ISO 27701",
          "HIPAA (BAA available)",
          "GDPR"
        ],
        "dpa": true,
        "selfHost": "no"
      },
      "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-11-07T19:22:09.079604881Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 122,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 38,
          "p95ms24h": 110,
          "samples24h": 238,
          "samples30d": 7920,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.google.com/appsstatus/dashboard",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-03T15:03:38.89920328Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/google-api-nodejs-client",
            "version": "curationpartners-v3.1.0",
            "released": "2026-10-30",
            "seenAt": "2026-11-06T23:29:03.319486777Z"
          },
          {
            "registry": "npm",
            "name": "@googleapis/calendar",
            "version": "20.1.0",
            "seenAt": "2026-11-06T23:29:02.687281306Z"
          },
          {
            "registry": "pypi",
            "name": "google-api-python-client",
            "version": "2.201.0",
            "released": "2026-09-30",
            "seenAt": "2026-11-06T23:29:03.15565125Z"
          }
        ],
        "githubStars": 12287,
        "npmWeekly": 1400789,
        "pypiWeekly": 33118233,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-11-07T16:01:22.068349931Z"
        },
        "domain": {
          "domain": "google.com",
          "registered": "1997-09-15",
          "source": "https://rdap.verisign.com/com/v1/domain/google.com",
          "checkedAt": "2026-11-01T14:17:18.719851913Z"
        },
        "pages": [
          {
            "url": "https://developers.google.com/workspace/calendar/release-notes",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:19.46070034Z",
            "changedAt": "2026-11-05T12:28:33.796175381Z",
            "fingerprint": "7a5b072aacc2"
          },
          {
            "url": "https://developers.google.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-07T18:04:24.569854784Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2eb11136bf24"
          }
        ],
        "github": {
          "repo": "googleapis/google-api-nodejs-client",
          "checkedAt": "2026-11-02T08:52:10.522231186Z",
          "stars": 12283,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T15:41:41Z",
          "openIssues": 209,
          "openPRs": 15,
          "issuesOpened90d": 0,
          "issuesClosed90d": 2,
          "prsMerged90d": 72,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-30T15:43:54Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 8,
            "medianDays": 8.2
          }
        },
        "updatedAt": "2026-11-07T19:22:09.079604881Z"
      }
    },
    "answer": "Google Calendar API scores 79.7 (A) on agent readiness against Truto Unified Calendar API's 60.4 (C), and leads in every scored category.",
    "b": {
      "slug": "truto-calendar",
      "name": "Truto Unified Calendar API",
      "vendor": "Yin Yang Inc.",
      "vendorUrl": "https://truto.one",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Truto's Unified Calendar API gives one REST interface over Google Calendar, Outlook Calendar, Cal.com and Calendly, with calendars, events, availability, event types, contacts and users. It is part of Truto's unified API platform for software companies.",
      "url": "https://www.anchorterminal.com/tools/truto-calendar",
      "markdownUrl": "https://www.anchorterminal.com/tools/truto-calendar.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/truto-calendar.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/truto-calendar.json",
      "dns": "truto-calendar.grade.anchorterminal.com",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@truto/truto-link-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "A Truto API token, created in app.truto.one under Settings \u003e API Tokens for one environment (development, staging or production), sent as `Authorization: Bearer`. Every request names an `integrated_account_id`, the end customer's connected calendar account, whose OAuth tokens Truto holds. Per-account MCP servers can be limited to read or write methods and tags, and given an expiry.",
      "pricing": "paid",
      "pricingNotes": "Expansion from $999 per connector a year and Enterprise from $1,999, each with unlimited connections and API calls, sold through a demo. A free 30-day sandbox is given on request with a work email, usually within one business day.",
      "priceSummary": "$83.25 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the pricing page or the API catalogue (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://truto.one/docs/api-reference/unified-calendar-api/",
      "llmsTxt": "https://truto.one/docs/llms.txt",
      "openapi": "https://api.truto.one/schema/openapi.yml",
      "capabilities": [
        "calendar.read",
        "calendar.write",
        "calendar.availability",
        "calendar.booking",
        "automation.auth"
      ],
      "tags": [
        "hosted",
        "unified-api",
        "paid",
        "sales-led",
        "openapi",
        "llms-txt",
        "status-page",
        "webhooks",
        "google-calendar",
        "outlook"
      ],
      "lastRelease": "2026-10-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.4,
        "grade": "C",
        "agentReady": false,
        "rank": 655,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 50,
          "payments": 20,
          "reliability": 77,
          "schema": 75,
          "security": 52,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Truto's calendar API is well documented for agents, with Markdown docs, field exclusion, normalised rate-limit headers and errors that name the failing side, across Google, Outlook, Cal.com and Calendly. It is sold from $999 a connector a year through a demo, had an API outage on 29 October 2026 and has no public changelog.",
        "bestFor": "Software companies that need their product's agent to read and book across customers' Google, Outlook, Cal.com and Calendly accounts.",
        "strengths": [
          "One REST shape for Google Calendar, Outlook Calendar, Cal.com and Calendly, including availability and event types",
          "Markdown copy of every docs page and an llms.txt index",
          "`truto_exclude_fields`, `truto_ignore_remote_data` and response formats to size replies",
          "Errors say whether Truto or the provider failed, and vendor rate limits come back as standard headers",
          "Pass-through design with no stored customer data, and a public DPA"
        ],
        "weaknesses": [
          "Priced from $999 per connector a year with a demo-led sandbox",
          "An outage of the APIs and dashboard on 29 October 2026 is on the status page",
          "No public changelog for the API",
          "API tokens are per environment with no scopes found",
          "Only five calendar integrations, and Calendly support is partial on events"
        ],
        "agentNotes": [
          "Pass `integrated_account_id` on every call; the token alone reaches nothing",
          "Call the meta endpoint for the method first to see which filters the vendor supports",
          "Set `truto_ignore_remote_data=true` and list fields in `truto_exclude_fields` to keep responses small",
          "On 429 wait for Retry-After; stay under 50 requests every 10 seconds per integrated account",
          "Set `expand_recurring=true` when the task needs each instance of a repeating event"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.4
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 50,
          "payments": 20,
          "reliability": 77,
          "schema": 75,
          "security": 52,
          "transparency": 54
        },
        "provenanceScore": 67,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \"https://api.truto.one/unified/calendar/events?integrated_account_id=$ACCOUNT_ID\" -H \"Authorization: Bearer $TRUTO_API_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/truto-calendar"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Expansion plan connector",
          "unit": "month",
          "usd": 83.25,
          "note": "From $999 per connector a year"
        },
        {
          "item": "Enterprise plan connector",
          "unit": "month",
          "usd": 166.58,
          "note": "From $1,999 per connector a year"
        }
      ],
      "provenance": {
        "legalEntity": "Yin Yang Inc.",
        "domain": "truto.one",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://truto.one/tos/",
        "privacy": "https://truto.one/privacy/",
        "statusPage": "https://status.truto.one",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-11-06",
        "notes": [
          "truto.one/robots.txt allows all and points to llms.txt, an RFC 9727 API catalogue and agent skills; every page has a Markdown sibling. api.truto.one/robots.txt returned 404. status.truto.one's robots.txt returned no rules.",
          "The terms name Yin Yang Inc. No clause on automated access was found in the parts read.",
          "The OpenAPI file at api.truto.one/schema/openapi.yml timed out after 30 seconds and was not read.",
          "security.txt was not checked. SOC 2 compliance is stated only in a blog post of 24 August 2023; no trust page was found."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/truto-calendar.json",
      "live": {
        "slug": "truto-calendar",
        "vendorStatus": {
          "page": "https://status.truto.one",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:53.753341884Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@truto/truto-link-sdk",
            "version": "1.3.5",
            "seenAt": "2026-11-07T00:12:59.774757597Z"
          }
        ],
        "npmWeekly": 6850,
        "securityTxt": {
          "url": "https://truto.one/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:30.982914489Z"
        },
        "llmsTxt": {
          "url": "https://truto.one/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:12.104383057Z"
        },
        "pages": [
          {
            "url": "https://truto.one/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:22:35.56420207Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "83d604dc7090"
          },
          {
            "url": "https://truto.one/tos/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:22:37.675377248Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fa7045806b26"
          }
        ],
        "updatedAt": "2026-11-07T15:59:30.982914489Z"
      }
    },
    "edges": [
      {
        "by": 37,
        "category": "maintenance",
        "leads": "google-calendar-api",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "@googleapis/calendar 20.1.0 on 3 October 2026 is still the newest on npm on 1 November, 29 days earlier, and the discovery document has moved to revision 20261028 (30). Release notes on 12 October, plus client releases on 10, 14 and 24 September and 3 October, all within the 90 days to 1 November (the July notes have aged out) (20). Dated release notes and public client repositories with active maintainers (12). Current official client libraries (15). Generated clients rebuilt by CI in google-api-nodejs-client, with commits up to 30 October in a clone on 1 November (10).",
          "b": "No API changelog, so the last API change can't be dated; the official @truto/truto-link-sdk was published as 1.3.5 on 26 October 2026, which we take as the latest dated release (20 of 30, since it is the connection widget, not the calendar API). Six Link SDK versions since 8 August (10 of 20, for the same reason). Support through Slack on paid plans, with no public tracker (5 of 15). A CLI and the Link SDK are official, with no API client (10 of 15). Package health not checked (5 of 10). 20 + 10 + 5 + 10 + 5 = 50."
        },
        "scores": {
          "a": 87,
          "b": 50
        }
      },
      {
        "by": 25,
        "category": "security",
        "leads": "google-calendar-api",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.0 with 20 Calendar scopes on the auth page, from `calendar.freebusy` and `calendar.events.owned.readonly` up to full `calendar`, and the discovery document (revision 20261028) carries a 21st, `calendar.settings`, which the auth page still doesn't list on 1 November (30), less 10 because the discovery document lists `oauth_token` and `key` as query parameters, the API also reads `access_token` from the query string, and Google's OAuth web-server guide shows the query string as an alternative to the header, read as for Gmail, Sheets and Forms (20). The auth page's table gives each scope's meaning only, and the non-sensitive, sensitive and restricted classes are per the 1 October check, not re-read on 4 or 17 October. Read-only and free/busy-only scopes, and the MCP guide (updated 29 October) still configures three read-only scopes. Nothing in the API confirms a delete (17). The MCP guide, updated 29 October, warns about indirect prompt injection and says prompts and responses must be screened, with Model Armor or a documented alternative, and tells operators to review AI-initiated actions (12). The Cloud console API dashboard shows traffic, errors by method and response code, and latency percentiles per project, but not a per-call log (8). Valid security.txt to 2030 with contacts and the Google VRP bug bounty policy, read on 1 November. Google's SOC 2 page sends customers to Compliance Reports Manager for the Google Workspace reports, and that Calendar is in their scope is per the 4 October check (20).",
          "b": "API tokens are per environment and sent as Bearer headers; no scopes or expiry for them were found (20 of 30). Per-account MCP servers can be limited to read methods or tags and set to expire, and the customer's connection form can restrict access to specific resources, but the REST token reaches every integrated account in its environment (14 of 20). Event titles, descriptions and attendee text from outside parties pass through, and no prompt-injection guidance was found (0). Plans keep request logs 30 or 90 days (10 of 15). SOC 2 is stated in a 2023 blog post, with no trust page, security.txt or disclosure policy found (8 of 20). 20 + 14 + 0 + 10 + 8 = 52."
        },
        "scores": {
          "a": 77,
          "b": 52
        }
      },
      {
        "by": 21,
        "category": "transparency",
        "leads": "google-calendar-api",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under Google's API terms, with Apache-2.0 client libraries (15). Google's privacy policy covers end users, and the Workspace data processing terms cover tenants, but we didn't find one retention statement for Calendar API data (18). Dated announcements ahead of changes, such as the 1 June notice for the 29 June GA of `writerWithoutPrivateAccess` at least 90 days' notice promised before quota charges, and the 12 October notice that Workspace MCP servers reject OAuth clients not marked agentic from 11 November 2026 (15). The Workspace sub-processor list, last modified 19 October 2026, names Google group and third-party sub-processors with the countries each processes in, and covers Calendar as a Core Service for Workspace tenants (20).",
          "b": "Closed service under terms naming Yin Yang Inc. (15 of 30). Truto says it stores no customer data and calls vendors live, logs are kept 30 or 90 days by plan, data is kept 15 days after termination, and a DPA is public (25 of 30). Deprecated admin endpoints are marked with no policy or dates (6 of 20). Enterprise customers can choose a data region and tokens can be stored regionally; no subprocessor list was found (8 of 20). 15 + 25 + 6 + 8 = 54."
        },
        "scores": {
          "a": 82,
          "b": 61
        }
      },
      {
        "by": 20,
        "category": "ergonomics",
        "leads": "google-calendar-api",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Responses size with `maxResults` and Google's standard `fields` partial responses (20). `pageToken`, `syncToken`, `timeMin` and `timeMax`, `q` and `singleEvents` for expanding recurrences (20). Error reasons an agent can act on, with the action written next to each one (20). Client-supplied event IDs make creates safe to retry and ETags guard updates. We found no readOnlyHint or destructiveHint on the MCP's write tools (16). Official client libraries in many languages, and most parameters are optional (15).",
          "b": "`truto_exclude_fields`, `truto_ignore_remote_data`, `truto_key_by` and response formats (`unified`, `raw`, `normalized`) size the reply (22 of 25). Query operators such as `[gt]` and `[in]`, `sort_by`, `limit` and cursors, with a meta endpoint that says which filters each vendor supports (18 of 20). Errors name the HTTP status and say whether Truto or the provider failed, with the provider's message extracted (18 of 20). No idempotency key found for creates (5 of 20). Every call needs only the token and `integrated_account_id`; a CLI and the Link SDK exist, with no general API SDK found (8 of 15). 22 + 18 + 18 + 5 + 8 = 71."
        },
        "scores": {
          "a": 91,
          "b": 71
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "google-calendar-api",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Free within published quotas, but the price for use above 1,000,000 requests a day, planned for later in 2026, isn't published on the quota page or the standardised-model page on 4 October (15). No charge for standard use and no card needed to enable the API (20). A person creates a Cloud project, an OAuth consent screen and, for sensitive or restricted scopes, goes through app verification (0).",
          "b": "No x402, MPP or L402 (0). Plan prices per connector a year are public, with unlimited calls (10). A free 30-day sandbox is given after a work-email request reviewed within a business day (10 of 20). A person requests access or books a demo (0). 0 + 10 + 10 + 0 = 20."
        },
        "scores": {
          "a": 35,
          "b": 20
        }
      },
      {
        "by": 13,
        "category": "reliability",
        "leads": "google-calendar-api",
        "name": "Reliability",
        "reasons": {
          "a": "The Google Workspace Status Dashboard lists Calendar with component history and an incidents feed (20). On 1 November the dashboard's 365-day list shows two Calendar incidents, 31 May 2026 (56 minutes, several Workspace products) and 13 March 2026 (2 hours 30 minutes of intermittent errors), with none in the 90 days to 1 November. Other Workspace products have incidents in August and September (Drive, Gmail, Chat, Classroom and Gemini), none naming Calendar. The dashboard tracks the Calendar product rather than the API alone (30). 10,000 requests a minute per project, 600 a minute per user per project and 1,000,000 a day per project, unchanged on 1 November (15). 403 and 429 `usageLimits` errors with a truncated exponential backoff formula, client-supplied event IDs that return 409 on a duplicate, and ETags with 412 on a stale write (15). No SLA for the API found (0). The REST API is GA. The MCP server is still a developer preview on 1 November (10).",
          "b": "Graded as a hosted service on the Unified Calendar API. Better Stack status page with components for api.truto.one health, ping and link-token endpoints and the static IP proxy, with incident history (20). The feed lists \"APIs and Dashboard are down\" on 29 October 2026 and delayed sync jobs and webhooks on 1 November, which counts as one major outage (10). Truto's own limit is 50 requests every 10 seconds per integrated account, in front of each vendor's (15). A vendor 429 comes back with Retry-After and normalised `ratelimit-limit`, `-remaining` and `-reset` headers, with no idempotency guidance for creates (12 of 15). The Enterprise plan lists an SLA guarantee (10). Generally available (10). 20 + 10 + 15 + 12 + 10 + 10 = 77."
        },
        "scores": {
          "a": 90,
          "b": 77
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Google",
        "b": "Yin Yang Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://www.googleapis.com/calendar/v3",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (client libraries)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "9",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-03",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "2021-11-09",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-01",
        "b": "2024-10-19",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "12k stars, 1M npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "4/5 (8)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Google Calendar API scores 79.7 (A) on agent readiness against Truto Unified Calendar API's 60.4 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Google Calendar API or Truto Unified Calendar API?"
      },
      {
        "answer": "Google Calendar API uses an OAuth sign-in. Truto Unified Calendar API needs an API key.",
        "question": "Do Google Calendar API and Truto Unified Calendar API need an API key?"
      },
      {
        "answer": "Google Calendar API has a hosted endpoint at https://www.googleapis.com/calendar/v3. No hosted endpoint is listed for Truto Unified Calendar API.",
        "question": "Can an agent call Google Calendar API and Truto Unified Calendar API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 90 against 77",
          "Schema \u0026 documentation, 88 against 75",
          "Agent ergonomics, 91 against 71",
          "Security \u0026 auth, 77 against 52",
          "Payments \u0026 pricing, 35 against 20",
          "Maintenance \u0026 community, 87 against 50",
          "Transparency \u0026 trust, 82 against 61"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "An agent acting on Google Workspace or Gmail users' own calendars with tight scopes and no per-account fee.",
        "slug": "google-calendar-api",
        "watchFor": "Google calendars only"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Software companies that need their product's agent to read and book across customers' Google, Outlook, Cal.com and Calendly accounts.",
        "slug": "truto-calendar",
        "watchFor": "Priced from $999 per connector a year with a demo-led sandbox"
      }
    ],
    "history": {
      "google-calendar-api": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 79.6,
          "fromGrade": "A",
          "to": 79.7,
          "toGrade": "A"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-17",
          "delta": -1,
          "from": 80.6,
          "fromGrade": "A",
          "to": 79.6,
          "toGrade": "A"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 80.8,
          "fromGrade": "A",
          "to": 80.6,
          "toGrade": "A"
        }
      ],
      "truto-calendar": null
    },
    "job": {
      "capability": "calendar.read",
      "name": "Calendar access"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-google-calendar-api.json",
        "title": "Acuity Scheduling API vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar.json",
        "title": "Acuity Scheduling API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agenda-hero-vs-google-calendar-api.json",
        "title": "Agenda Hero vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/agenda-hero-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agenda-hero-vs-truto-calendar.json",
        "title": "Agenda Hero vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/agenda-hero-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-google-calendar-api.json",
        "title": "Apiroc Unified Calendar API vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-truto-calendar.json",
        "title": "Apiroc Unified Calendar API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-google-calendar-api.json",
        "title": "Aurinko Calendar API vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-truto-calendar.json",
        "title": "Aurinko Calendar API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api.json",
        "title": "Cal.com API v2 + MCP vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-truto-calendar.json",
        "title": "Cal.com API v2 + MCP vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/calendly-vs-google-calendar-api.json",
        "title": "Calendly API + MCP vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/calendly-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/calendly-vs-truto-calendar.json",
        "title": "Calendly API + MCP vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/calendly-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cozi-vs-google-calendar-api.json",
        "title": "Cozi Family Organizer vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/cozi-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cozi-vs-truto-calendar.json",
        "title": "Cozi Family Organizer vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/cozi-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.json",
        "title": "Cronofy API vs Google Calendar API",
        "url": "https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cronofy-vs-truto-calendar.json",
        "title": "Cronofy API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/cronofy-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-microsoft-graph-calendar.json",
        "title": "Google Calendar API vs Microsoft Graph Calendar API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-microsoft-graph-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-nylas-calendar.json",
        "title": "Google Calendar API vs Nylas Calendar and Scheduler API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-nylas-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-reclaim-ai.json",
        "title": "Google Calendar API vs Reclaim.ai",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-reclaim-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-savvycal.json",
        "title": "Google Calendar API vs SavvyCal API + MCP",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-savvycal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler.json",
        "title": "Google Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-truto-calendar.json",
        "title": "Microsoft Graph Calendar API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nylas-calendar-vs-truto-calendar.json",
        "title": "Nylas Calendar and Scheduler API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/nylas-calendar-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/reclaim-ai-vs-truto-calendar.json",
        "title": "Reclaim.ai vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/reclaim-ai-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/truto-calendar-vs-zoom-scheduler.json",
        "title": "Truto Unified Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/truto-calendar-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/savvycal-vs-truto-calendar.json",
        "title": "SavvyCal API + MCP vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/savvycal-vs-truto-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/truto-calendar-vs-youcanbookme.json",
        "title": "Truto Unified Calendar API vs YouCanBookMe API",
        "url": "https://www.anchorterminal.com/compare/truto-calendar-vs-youcanbookme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-youcanbookme.json",
        "title": "Google Calendar API vs YouCanBookMe API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-youcanbookme"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 13,
        "edge": "google-calendar-api",
        "google-calendar-api": 90,
        "key": "reliability",
        "name": "Reliability",
        "truto-calendar": 77,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "google-calendar-api",
        "google-calendar-api": 88,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "truto-calendar": 75,
        "weight": 13
      },
      {
        "by": 20,
        "edge": "google-calendar-api",
        "google-calendar-api": 91,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "truto-calendar": 71,
        "weight": 13
      },
      {
        "by": 25,
        "edge": "google-calendar-api",
        "google-calendar-api": 77,
        "key": "security",
        "name": "Security \u0026 auth",
        "truto-calendar": 52,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "google-calendar-api",
        "google-calendar-api": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "truto-calendar": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 37,
        "edge": "google-calendar-api",
        "google-calendar-api": 87,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "truto-calendar": 50,
        "weight": 7
      },
      {
        "by": 21,
        "edge": "google-calendar-api",
        "google-calendar-api": 82,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "truto-calendar": 61,
        "weight": 7
      }
    ],
    "summary": "Google Calendar API scores 79.7 (A) on agent readiness against Truto Unified Calendar API's 60.4 (C), and leads in every scored category. Both do calendar access.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "google-calendar-api": "21 OAuth scopes, including free/busy only and read-only on owned calendars. Google calendars only.",
      "truto-calendar": "Truto's calendar API is well documented for agents, with Markdown docs, field exclusion, normalised rate-limit headers and errors that name the failing side, across Google, Outlook, Cal.com and Calendly. It is sold from $999 a connector a year through a demo, had an API outage on 29 October 2026 and has no public changelog."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar",
    "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar.min.md"
  },
  "markdown": "Google Calendar API scores 79.7 (A) on agent readiness against Truto Unified Calendar API's 60.4 (C), and leads in every scored category. Both do calendar access.\n\n- Google Calendar API: grade A, 79.7/100, rank #16 of 1510. Markdown https://www.anchorterminal.com/tools/google-calendar-api.md · JSON https://www.anchorterminal.com/api/v1/tools/google-calendar-api.json\n- Truto Unified Calendar API: grade C, 60.4/100, rank #655 of 1510. Markdown https://www.anchorterminal.com/tools/truto-calendar.md · JSON https://www.anchorterminal.com/api/v1/tools/truto-calendar.json\n- Best calendar and scheduling APIs for AI agents: https://www.anchorterminal.com/best/scheduling/index.md\n- All 118 scheduling comparisons: https://www.anchorterminal.com/compare/scheduling/index.md\n\n## Which one, for what\n\n### Google Calendar API (A)\n\nGood for: An agent acting on Google Workspace or Gmail users' own calendars with tight scopes and no per-account fee.\n\nAhead on:\n- Reliability, 90 against 77\n- Schema \u0026 documentation, 88 against 75\n- Agent ergonomics, 91 against 71\n- Security \u0026 auth, 77 against 52\n- Payments \u0026 pricing, 35 against 20\n- Maintenance \u0026 community, 87 against 50\n- Transparency \u0026 trust, 82 against 61\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n\nWatch for: Google calendars only\n\n### Truto Unified Calendar API (C)\n\nGood for: Software companies that need their product's agent to read and book across customers' Google, Outlook, Cal.com and Calendly accounts.\n\nWatch for: Priced from $999 per connector a year with a demo-led sandbox\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Google Calendar API +37\n\n- Google Calendar API (87): @googleapis/calendar 20.1.0 on 3 October 2026 is still the newest on npm on 1 November, 29 days earlier, and the discovery document has moved to revision 20261028 (30). Release notes on 12 October, plus client releases on 10, 14 and 24 September and 3 October, all within the 90 days to 1 November (the July notes have aged out) (20). Dated release notes and public client repositories with active maintainers (12). Current official client libraries (15). Generated clients rebuilt by CI in google-api-nodejs-client, with commits up to 30 October in a clone on 1 November (10).\n- Truto Unified Calendar API (50): No API changelog, so the last API change can't be dated; the official @truto/truto-link-sdk was published as 1.3.5 on 26 October 2026, which we take as the latest dated release (20 of 30, since it is the connection widget, not the calendar API). Six Link SDK versions since 8 August (10 of 20, for the same reason). Support through Slack on paid plans, with no public tracker (5 of 15). A CLI and the Link SDK are official, with no API client (10 of 15). Package health not checked (5 of 10). 20 + 10 + 5 + 10 + 5 = 50.\n\n### Security \u0026 auth: Google Calendar API +25\n\n- Google Calendar API (77): OAuth 2.0 with 20 Calendar scopes on the auth page, from `calendar.freebusy` and `calendar.events.owned.readonly` up to full `calendar`, and the discovery document (revision 20261028) carries a 21st, `calendar.settings`, which the auth page still doesn't list on 1 November (30), less 10 because the discovery document lists `oauth_token` and `key` as query parameters, the API also reads `access_token` from the query string, and Google's OAuth web-server guide shows the query string as an alternative to the header, read as for Gmail, Sheets and Forms (20). The auth page's table gives each scope's meaning only, and the non-sensitive, sensitive and restricted classes are per the 1 October check, not re-read on 4 or 17 October. Read-only and free/busy-only scopes, and the MCP guide (updated 29 October) still configures three read-only scopes. Nothing in the API confirms a delete (17). The MCP guide, updated 29 October, warns about indirect prompt injection and says prompts and responses must be screened, with Model Armor or a documented alternative, and tells operators to review AI-initiated actions (12). The Cloud console API dashboard shows traffic, errors by method and response code, and latency percentiles per project, but not a per-call log (8). Valid security.txt to 2030 with contacts and the Google VRP bug bounty policy, read on 1 November. Google's SOC 2 page sends customers to Compliance Reports Manager for the Google Workspace reports, and that Calendar is in their scope is per the 4 October check (20).\n- Truto Unified Calendar API (52): API tokens are per environment and sent as Bearer headers; no scopes or expiry for them were found (20 of 30). Per-account MCP servers can be limited to read methods or tags and set to expire, and the customer's connection form can restrict access to specific resources, but the REST token reaches every integrated account in its environment (14 of 20). Event titles, descriptions and attendee text from outside parties pass through, and no prompt-injection guidance was found (0). Plans keep request logs 30 or 90 days (10 of 15). SOC 2 is stated in a 2023 blog post, with no trust page, security.txt or disclosure policy found (8 of 20). 20 + 14 + 0 + 10 + 8 = 52.\n\n### Transparency \u0026 trust: Google Calendar API +21\n\n- Google Calendar API (82): Closed service under Google's API terms, with Apache-2.0 client libraries (15). Google's privacy policy covers end users, and the Workspace data processing terms cover tenants, but we didn't find one retention statement for Calendar API data (18). Dated announcements ahead of changes, such as the 1 June notice for the 29 June GA of `writerWithoutPrivateAccess` at least 90 days' notice promised before quota charges, and the 12 October notice that Workspace MCP servers reject OAuth clients not marked agentic from 11 November 2026 (15). The Workspace sub-processor list, last modified 19 October 2026, names Google group and third-party sub-processors with the countries each processes in, and covers Calendar as a Core Service for Workspace tenants (20).\n- Truto Unified Calendar API (61): Closed service under terms naming Yin Yang Inc. (15 of 30). Truto says it stores no customer data and calls vendors live, logs are kept 30 or 90 days by plan, data is kept 15 days after termination, and a DPA is public (25 of 30). Deprecated admin endpoints are marked with no policy or dates (6 of 20). Enterprise customers can choose a data region and tokens can be stored regionally; no subprocessor list was found (8 of 20). 15 + 25 + 6 + 8 = 54.\n\n### Agent ergonomics: Google Calendar API +20\n\n- Google Calendar API (91): Responses size with `maxResults` and Google's standard `fields` partial responses (20). `pageToken`, `syncToken`, `timeMin` and `timeMax`, `q` and `singleEvents` for expanding recurrences (20). Error reasons an agent can act on, with the action written next to each one (20). Client-supplied event IDs make creates safe to retry and ETags guard updates. We found no readOnlyHint or destructiveHint on the MCP's write tools (16). Official client libraries in many languages, and most parameters are optional (15).\n- Truto Unified Calendar API (71): `truto_exclude_fields`, `truto_ignore_remote_data`, `truto_key_by` and response formats (`unified`, `raw`, `normalized`) size the reply (22 of 25). Query operators such as `[gt]` and `[in]`, `sort_by`, `limit` and cursors, with a meta endpoint that says which filters each vendor supports (18 of 20). Errors name the HTTP status and say whether Truto or the provider failed, with the provider's message extracted (18 of 20). No idempotency key found for creates (5 of 20). Every call needs only the token and `integrated_account_id`; a CLI and the Link SDK exist, with no general API SDK found (8 of 15). 22 + 18 + 18 + 5 + 8 = 71.\n\n### Payments \u0026 pricing: Google Calendar API +15\n\n- Google Calendar API (35): No x402, MPP or L402 (0). Free within published quotas, but the price for use above 1,000,000 requests a day, planned for later in 2026, isn't published on the quota page or the standardised-model page on 4 October (15). No charge for standard use and no card needed to enable the API (20). A person creates a Cloud project, an OAuth consent screen and, for sensitive or restricted scopes, goes through app verification (0).\n- Truto Unified Calendar API (20): No x402, MPP or L402 (0). Plan prices per connector a year are public, with unlimited calls (10). A free 30-day sandbox is given after a work-email request reviewed within a business day (10 of 20). A person requests access or books a demo (0). 0 + 10 + 10 + 0 = 20.\n\n### Reliability: Google Calendar API +13\n\n- Google Calendar API (90): The Google Workspace Status Dashboard lists Calendar with component history and an incidents feed (20). On 1 November the dashboard's 365-day list shows two Calendar incidents, 31 May 2026 (56 minutes, several Workspace products) and 13 March 2026 (2 hours 30 minutes of intermittent errors), with none in the 90 days to 1 November. Other Workspace products have incidents in August and September (Drive, Gmail, Chat, Classroom and Gemini), none naming Calendar. The dashboard tracks the Calendar product rather than the API alone (30). 10,000 requests a minute per project, 600 a minute per user per project and 1,000,000 a day per project, unchanged on 1 November (15). 403 and 429 `usageLimits` errors with a truncated exponential backoff formula, client-supplied event IDs that return 409 on a duplicate, and ETags with 412 on a stale write (15). No SLA for the API found (0). The REST API is GA. The MCP server is still a developer preview on 1 November (10).\n- Truto Unified Calendar API (77): Graded as a hosted service on the Unified Calendar API. Better Stack status page with components for api.truto.one health, ping and link-token endpoints and the static IP proxy, with incident history (20). The feed lists \"APIs and Dashboard are down\" on 29 October 2026 and delayed sync jobs and webhooks on 1 November, which counts as one major outage (10). Truto's own limit is 50 requests every 10 seconds per integrated account, in front of each vendor's (15). A vendor 429 comes back with Retry-After and normalised `ratelimit-limit`, `-remaining` and `-reset` headers, with no idempotency guidance for creates (12 of 15). The Enterprise plan lists an SLA guarantee (10). Generally available (10). 20 + 10 + 15 + 12 + 10 + 10 = 77.\n\n## Score by category\n\n| Category | Weight | Google Calendar API | Truto Unified Calendar API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 77 | Google Calendar API +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 75 | Google Calendar API +13 |\n| Agent ergonomics | 13% (16.2 this run) | 91 | 71 | Google Calendar API +20 |\n| Security \u0026 auth | 14% (17.5 this run) | 77 | 52 | Google Calendar API +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 20 | Google Calendar API +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 50 | Google Calendar API +37 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 82 | 61 | Google Calendar API +21 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **79.7 · A** | **60.4 · C** | |\n\n## Facts side by side\n\n| Fact | Google Calendar API | Truto Unified Calendar API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Google | Yin Yang Inc. |\n| Hosted endpoint | `https://www.googleapis.com/calendar/v3` | no (local only) |\n| Transports | HTTP, Streamable HTTP |  |\n| Auth | OAuth | API key |\n| Pricing | Free | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 (client libraries) | none |\n| Tools exposed | 9 | none |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-03 | 2026-10-26 |\n| Terms last updated | 2021-11-09 | no date given |\n| Privacy policy last updated | 2026-10-01 | 2024-10-19 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 12k stars, 1M npm/wk | none |\n| Agent reviews | 4/5 (8) | none |\n\n## How the scores have moved\n\n### Google Calendar API\n\n- +0.1 on 28 October 2026: checklist\n- -1.0 on 17 October 2026: correction\n- -0.2 on 8 October 2026: checklist\n\n### Truto Unified Calendar API\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Google Calendar API.** 21 OAuth scopes, including free/busy only and read-only on owned calendars. Google calendars only.\n\n**Truto Unified Calendar API.** Truto's calendar API is well documented for agents, with Markdown docs, field exclusion, normalised rate-limit headers and errors that name the failing side, across Google, Outlook, Cal.com and Calendly. It is sold from $999 a connector a year through a demo, had an API outage on 29 October 2026 and has no public changelog.\n\n## Before you call either\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. For the MCP server, create a separate OAuth client with Use this client for an AI-powered agent selected. From 11 November 2026 other clients are rejected\n\n### Truto Unified Calendar API\n\n1. Pass `integrated_account_id` on every call; the token alone reaches nothing\n2. Call the meta endpoint for the method first to see which filters the vendor supports\n3. Set `truto_ignore_remote_data=true` and list fields in `truto_exclude_fields` to keep responses small\n4. On 429 wait for Retry-After; stay under 50 requests every 10 seconds per integrated account\n5. Set `expand_recurring=true` when the task needs each instance of a repeating event\n\n## Questions\n\n### Which is better for AI agents, Google Calendar API or Truto Unified Calendar API?\n\nGoogle Calendar API scores 79.7 (A) on agent readiness against Truto Unified Calendar API's 60.4 (C), and leads in every scored category.\n\n### Do Google Calendar API and Truto Unified Calendar API need an API key?\n\nGoogle Calendar API uses an OAuth sign-in. Truto Unified Calendar API needs an API key.\n\n### Can an agent call Google Calendar API and Truto Unified Calendar API without installing anything?\n\nGoogle Calendar API has a hosted endpoint at https://www.googleapis.com/calendar/v3. No hosted endpoint is listed for Truto Unified Calendar API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar.json, and with the fewest tokens: https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"google-calendar-api\", \"b\": \"truto-calendar\"}`. From a terminal: `anchor compare google-calendar-api truto-calendar`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/google-calendar-api.json and https://www.anchorterminal.com/api/v1/tools/truto-calendar.json\n\n## Other comparisons with Google Calendar API or Truto Unified Calendar API\n\n- [Acuity Scheduling API vs Google Calendar API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-google-calendar-api.md)\n- [Acuity Scheduling API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar.md)\n- [Agenda Hero vs Google Calendar API](https://www.anchorterminal.com/compare/agenda-hero-vs-google-calendar-api.md)\n- [Agenda Hero vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/agenda-hero-vs-truto-calendar.md)\n- [Apiroc Unified Calendar API vs Google Calendar API](https://www.anchorterminal.com/compare/apiroc-vs-google-calendar-api.md)\n- [Apiroc Unified Calendar API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/apiroc-vs-truto-calendar.md)\n- [Aurinko Calendar API vs Google Calendar API](https://www.anchorterminal.com/compare/aurinko-calendar-vs-google-calendar-api.md)\n- [Aurinko Calendar API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/aurinko-calendar-vs-truto-calendar.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 Truto Unified Calendar API](https://www.anchorterminal.com/compare/cal-com-vs-truto-calendar.md)\n- [Calendly API + MCP vs Google Calendar API](https://www.anchorterminal.com/compare/calendly-vs-google-calendar-api.md)\n- [Calendly API + MCP vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/calendly-vs-truto-calendar.md)\n- [Cozi Family Organizer vs Google Calendar API](https://www.anchorterminal.com/compare/cozi-vs-google-calendar-api.md)\n- [Cozi Family Organizer vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/cozi-vs-truto-calendar.md)\n- [Cronofy API vs Google Calendar API](https://www.anchorterminal.com/compare/cronofy-vs-google-calendar-api.md)\n- [Cronofy API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/cronofy-vs-truto-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- [Google Calendar API vs Reclaim.ai](https://www.anchorterminal.com/compare/google-calendar-api-vs-reclaim-ai.md)\n- [Google Calendar API vs SavvyCal API + MCP](https://www.anchorterminal.com/compare/google-calendar-api-vs-savvycal.md)\n- [Google Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler.md)\n- [Microsoft Graph Calendar API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-truto-calendar.md)\n- [Nylas Calendar and Scheduler API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/nylas-calendar-vs-truto-calendar.md)\n- [Reclaim.ai vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/reclaim-ai-vs-truto-calendar.md)\n- [Truto Unified Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/truto-calendar-vs-zoom-scheduler.md)\n- [SavvyCal API + MCP vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/savvycal-vs-truto-calendar.md)\n- [Truto Unified Calendar API vs YouCanBookMe API](https://www.anchorterminal.com/compare/truto-calendar-vs-youcanbookme.md)\n- [Google Calendar API vs YouCanBookMe API](https://www.anchorterminal.com/compare/google-calendar-api-vs-youcanbookme.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Google Calendar API vs Truto Unified Calendar API",
        "url": ""
      }
    ],
    "description": "Google Calendar scores 79.7 (A) to Truto Unified Calendar's 60.4 (C) for calendar access. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Google Calendar API A 79.7",
      "Truto Unified Calendar API C 60.4",
      "scores"
    ],
    "h1": "Google Calendar API vs Truto Unified Calendar API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/google-calendar-api-vs-truto-calendar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Google Calendar vs Truto Unified Calendar for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar"
  },
  "tokens": {
    "markdown": 4950,
    "slim": 2880
  },
  "version": 1
}
