{
  "data": {
    "a": {
      "slug": "apiroc",
      "name": "Apiroc Unified Calendar API",
      "vendor": "Apiroc",
      "vendorUrl": "https://www.apiroc.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Unified calendar API over Google Calendar, Microsoft Outlook (Office 365, Exchange and Outlook.com) and iCloud.",
      "url": "https://www.anchorterminal.com/tools/apiroc",
      "markdownUrl": "https://www.anchorterminal.com/tools/apiroc.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/apiroc.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/apiroc.json",
      "repo": "https://github.com/OneCal/unified-calendar-api-node-sdk",
      "license": "MIT (Node SDK)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.apiroc.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@apiroc/unified-calendar-api-node-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Your application calls the API with an `x-api-key` header, server side only. End users connect Google and Microsoft accounts through OAuth 2.0 and iCloud with an app-specific password.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 a month for up to 10 end-user accounts at 20 requests a second, no card. Pro $25 a month with 50 end-user accounts, then $0.50 per account a month, at 300 requests a second and licensed for production use. Enterprise is custom with volume discounts and custom rate limits. Every plan has unlimited API requests and webhooks (https://www.apiroc.com/pricing).",
      "priceSummary": "$25 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 26,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.apiroc.com",
      "capabilities": [
        "calendar.read",
        "calendar.write",
        "calendar.availability",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "webhooks",
        "typescript"
      ],
      "lastRelease": "2026-08-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 41.1,
        "grade": "E",
        "agentReady": false,
        "rank": 904,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 62,
          "payments": 40,
          "reliability": 35,
          "schema": 44,
          "security": 21,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "$0.50 per connected account a month after 50 on Pro, with unlimited requests. No status page history, changelog, OpenAPI spec, llms.txt or security.txt.",
        "bestFor": "A small product or an agent builder that needs read and write across Google, Microsoft and iCloud for tens to hundreds of accounts on a tight budget.",
        "strengths": [
          "$0.50 per connected account a month after 50 on Pro, with unlimited requests",
          "Free plan for 10 accounts with no card",
          "Google, Outlook (Office 365, Exchange, Outlook.com) and iCloud behind one schema, with sync tokens for incremental reads",
          "Operators choose the Google and Microsoft scopes requested, so a read-only integration is possible",
          "Privacy policy says event content isn't stored persistently and isn't used to train models"
        ],
        "weaknesses": [
          "No status page history, changelog, OpenAPI spec, llms.txt or security.txt",
          "One application key reaches every connected account, with no key scopes documented",
          "No SLA on any plan, and no 429 or retry guidance in the docs",
          "Svix handles webhook delivery but isn't on the sub-processor list",
          "Node.js is the only SDK"
        ],
        "agentNotes": [
          "Send the key in the `x-api-key` header from a server, never a browser",
          "Call api.apiroc.com, since the SDK's old default host was api.onecalunified.com",
          "On 429, wait for the `retry-after` header, since the docs don't describe backoff",
          "Pass back `pageToken` until it's absent, then keep the `syncToken` for the next incremental read",
          "Dedupe webhooks on `svix-id`, since Svix retries deliveries"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 41.1
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 62,
          "payments": 40,
          "reliability": 35,
          "schema": 44,
          "security": 21,
          "transparency": 51
        },
        "provenanceScore": 48
      },
      "connect": {
        "http": "curl -G https://api.apiroc.com/api/v1/endUserAccounts -H \"x-api-key: $APIROC_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/apiroc"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Pro",
          "unit": "month",
          "usd": 25,
          "note": "50 end-user accounts included"
        },
        {
          "item": "Extra end-user account on Pro",
          "unit": "account-month",
          "usd": 0.5
        }
      ],
      "provenance": {
        "legalEntity": "UTC Labs",
        "domain": "apiroc.com",
        "domainRegistered": "2026-04-09",
        "domainNote": "apiroc.com was registered on 2026-04-09. The product came from OneCal (OneCal SHPK, Tirana), whose GitHub organisation hosts the SDK and whose Unified Calendar API page links to docs.apiroc.com.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.apiroc.com/tos",
        "privacy": "https://www.apiroc.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms (updated 24 August 2026) name UTC Labs at Durana Tech Park, Shijak, Albania, under Albanian law, with contact@utclabs.com as the contact. No company form or registration number is given.",
          "onecal.io's privacy policy names OneCal SHPK in Tirana. Neither site names the other's entity.",
          "status.apiroc.com doesn't resolve. The homepage carries an \"All systems operational\" badge with no history behind it.",
          "www.apiroc.com/.well-known/security.txt returned 404 on the 30 September check, and docs.apiroc.com/llms.txt returned 404."
        ],
        "score": 48
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/apiroc.json",
      "live": {
        "slug": "apiroc",
        "probe": {
          "target": "https://api.apiroc.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-10T04:40:40.696602637Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 245,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 249,
          "p95ms24h": 1218,
          "samples24h": 248,
          "samples30d": 2282,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "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": 48,
              "ok": 48
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@apiroc/unified-calendar-api-node-sdk",
            "version": "2.1.0",
            "seenAt": "2026-10-09T16:39:55.008101445Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 8,
        "securityTxt": {
          "url": "https://apiroc.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:49.553633434Z"
        },
        "domain": {
          "domain": "apiroc.com",
          "registered": "2026-04-09",
          "source": "https://rdap.verisign.com/com/v1/domain/apiroc.com",
          "checkedAt": "2026-10-04T13:10:05.921989529Z"
        },
        "pages": [
          {
            "url": "https://www.apiroc.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:48:06.761122281Z",
            "changedAt": "2026-10-08T18:26:12.375413176Z",
            "fingerprint": "559e540280f7"
          },
          {
            "url": "https://www.apiroc.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:48:09.743249293Z",
            "changedAt": "2026-10-08T18:26:14.685364242Z",
            "fingerprint": "c6a9b3271bea"
          },
          {
            "url": "https://www.apiroc.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:48:11.115838291Z",
            "changedAt": "2026-10-08T18:26:16.746229765Z",
            "fingerprint": "8fc649f03b2d"
          }
        ],
        "updatedAt": "2026-10-10T04:40:40.696602637Z"
      }
    },
    "answer": "Zoom Scheduler API scores 50.6 (D) on agent readiness against Apiroc Unified Calendar API's 41.1 (E), and leads in 4 of 7 scored categories. Apiroc Unified Calendar API leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "slug": "zoom-scheduler",
      "name": "Zoom Scheduler API",
      "vendor": "Zoom Communications, Inc.",
      "vendorUrl": "https://www.zoom.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Zoom's REST API for Zoom Scheduler, its appointment booking product. It reads schedules, availability and scheduled events, lists open slots, creates and cancels bookings and sends booking webhooks, with OAuth access on api.zoom.us.",
      "url": "https://www.anchorterminal.com/tools/zoom-scheduler",
      "markdownUrl": "https://www.anchorterminal.com/tools/zoom-scheduler.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zoom-scheduler.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zoom-scheduler.json",
      "license": "Proprietary service under the Zoom API Licence and Terms of Use",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.zoom.us/v2",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 only. A person creates an app in the Zoom App Marketplace and picks Scheduler scopes. User apps use the authorisation code grant (PKCE supported) and get one-hour access tokens with 90-day refresh tokens. Server-to-Server OAuth apps exchange an account ID, client ID and client secret for a one-hour token with no user step, and an account administrator authorises the scopes. Granular scopes exist per operation, each with an `:admin` variant. The docs show refresh tokens and device codes sent as URL query parameters as one option.",
      "pricing": "paid",
      "pricingNotes": "Scheduler costs $5.99 a user a month, or $4.99 billed yearly, and is included in Workplace Business ($21.99 monthly). The pricing page lists \"Connect to Scheduler APIs\" under the paid Scheduler plan. Scheduler Basic is free with no card, with one booking page and one calendar, and whether it can call the API was not established. A 14-day trial is advertised. No per-call charge was found (checked 2026-10-09).",
      "priceSummary": "$5.99 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Scheduler reference, the rate limit and OAuth docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://developers.zoom.us/docs/api/scheduler/",
      "llmsTxt": "https://developers.zoom.us/llms.txt",
      "capabilities": [
        "calendar.read",
        "calendar.availability",
        "calendar.booking",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "paid",
        "free-plan",
        "rest",
        "oauth",
        "webhooks",
        "llms-txt",
        "closed-source",
        "status-page",
        "soc2",
        "bug-bounty"
      ],
      "lastRelease": "2026-08-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.6,
        "grade": "D",
        "agentReady": false,
        "rank": 767,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 43,
          "maintenance": 28,
          "payments": 25,
          "reliability": 63,
          "schema": 61,
          "security": 54,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Each of the 24 operations has its own granular OAuth scope, and Zoom Scheduler and the REST API are separate components on the status page. No operation moves a booking, no official SDK covers Scheduler, and Zoom's API terms forbid benchmarking or monitoring the service.",
        "bestFor": "An agent booking into a Zoom Scheduler user's or team's booking pages, with slot lookup, booking, cancellation and two webhooks.",
        "strengths": [
          "Granular OAuth scopes per operation, with separate read, write, update and delete scopes and user and admin variants",
          "A slot lookup (`GET /scheduler/schedules/{scheduleId}/available_times`) and a booking call (`POST /scheduler/attendee`), added in July and June 2026",
          "llms.txt and a Markdown copy of the full reference, with request examples and 400, 401, 404, 409, 429 and 500 responses listed",
          "Rate limits published by plan. Every Scheduler operation is labelled Light, 30 requests a second on Pro",
          "SOC 2 Type 2 report (October 2024 to October 2025) names Zoom Scheduler and Zoom APIs in scope, and security.txt is valid to 2029"
        ],
        "weaknesses": [
          "Zoom's API terms (section 3.7.9) forbid using the APIs to monitor availability or performance, or for benchmarking. This matters before any probe is run",
          "No operation moves a booking. `PATCH /scheduler/events/{eventId}` changes status, notes and no-show marks only",
          "No idempotency key or safe-retry guidance for booking writes was found in the reviewed documentation",
          "No official SDK covers Scheduler. Zoom Rivet 0.3.0 has no Scheduler module",
          "No downloadable OpenAPI file is linked, and the Markdown reference omits query and path parameters",
          "The API terms allow Zoom to change or deprecate APIs without prior notice and disclaim any uptime guarantee"
        ],
        "agentNotes": [
          "Call `GET /scheduler/schedules/{scheduleId}/available_times` and book only a spot whose status is `available`",
          "Send `start_date_time` in ISO 8601 with the booker's IANA `time_zone` to `POST /scheduler/attendee`. Expect 409 on a conflict",
          "To move a booking, cancel it with `PATCH /scheduler/events/{eventId}` and `status` set to `cancelled`, then book the new slot",
          "List scheduled events before retrying a booking, because no idempotency key is documented",
          "Request a new Server-to-Server OAuth token every hour. That grant issues no refresh token"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.6
          }
        ],
        "editorialScores": {
          "ergonomics": 43,
          "maintenance": 28,
          "payments": 25,
          "reliability": 63,
          "schema": 61,
          "security": 54,
          "transparency": 59
        },
        "provenanceScore": 79
      },
      "connect": {
        "http": "curl -H \"Authorization: Bearer $ZOOM_ACCESS_TOKEN\" \"https://api.zoom.us/v2/scheduler/schedules\""
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/zoom-scheduler"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Zoom Scheduler (the plan that lists Scheduler API access)",
          "unit": "seat-month",
          "usd": 5.99,
          "note": "Monthly billing. $4.99 a user a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Zoom Communications, Inc.",
        "domain": "zoom.us",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zoom.com/en/trust/legal/zoom-api-license-and-tou/",
        "privacy": "https://www.zoom.com/en/trust/privacy/privacy-statement/",
        "statusPage": "https://status.zoom.us",
        "changelog": "https://developers.zoom.us/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Zoom API Licence and Terms of Use (last updated 16 July 2025) and the Privacy Statement (last updated 17 September 2026) both name Zoom Communications, Inc., 55 Almaden Blvd, Suite 600, San Jose, CA 95113.",
          "The API answers at https://api.zoom.us/v2 and tokens are issued at https://zoom.us/oauth/token. Legal pages sit on www.zoom.com.",
          "zoom.us/.well-known/security.txt gives a report form, security-reports@zoom.us, a PGP key and an expiry of 31 December 2029.",
          "status.zoom.us redirects to www.zoomstatus.com, an Atlassian Statuspage site.",
          "The registration date of zoom.us was not established. rdap.org answered 404 for the domain.",
          "The account holder's use of Scheduler itself falls under the Zoom Terms of Service (effective 11 August 2023), which the API terms cite for the definition of Customer Content."
        ],
        "score": 79
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zoom-scheduler.json",
      "live": {
        "slug": "zoom-scheduler",
        "probe": {
          "target": "https://api.zoom.us/v2",
          "method": "get",
          "lastAt": "2026-10-10T04:41:10.909587006Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 153,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 173,
          "p95ms24h": 303,
          "samples24h": 133,
          "samples30d": 133,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.zoom.us",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T04:41:37.219876298Z"
        },
        "pages": [
          {
            "url": "https://developers.zoom.us/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:36:20.102873356Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          },
          {
            "url": "https://www.zoom.com/en/trust/privacy/privacy-statement/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:06.989690084Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "91c109d39062"
          },
          {
            "url": "https://www.zoom.com/en/trust/legal/zoom-api-license-and-tou/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:04.552901735Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c294e7e03b58"
          }
        ],
        "updatedAt": "2026-10-10T04:41:37.219876298Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Apiroc",
        "b": "Zoom Communications, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.apiroc.com/api/v1",
        "b": "https://api.zoom.us/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (Node SDK)",
        "b": "Proprietary service under the Zoom API Licence and Terms of Use",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-05",
        "b": "2026-08-17",
        "name": "Last release"
      },
      {
        "a": "2026-08-24",
        "b": "2025-07-16",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-24",
        "b": "2026-09-17",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "26 npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "2/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Zoom Scheduler API scores 50.6 (D) on agent readiness against Apiroc Unified Calendar API's 41.1 (E), and leads in 4 of 7 scored categories. Apiroc Unified Calendar API leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Apiroc Unified Calendar API or Zoom Scheduler API?"
      },
      {
        "answer": "Apiroc Unified Calendar API takes an API key or an OAuth sign-in. Zoom Scheduler API uses an OAuth sign-in.",
        "question": "Do Apiroc Unified Calendar API and Zoom Scheduler API need an API key?"
      },
      {
        "answer": "Yes. Apiroc Unified Calendar API has a hosted endpoint at https://api.apiroc.com/api/v1 and Zoom Scheduler API at https://api.zoom.us/v2.",
        "question": "Can an agent call Apiroc Unified Calendar API and Zoom Scheduler API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 52 against 43",
          "Payments \u0026 pricing, 40 against 25",
          "Maintenance \u0026 community, 62 against 28"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "A small product or an agent builder that needs read and write across Google, Microsoft and iCloud for tens to hundreds of accounts on a tight budget.",
        "slug": "apiroc",
        "watchFor": "No status page history, changelog, OpenAPI spec, llms.txt or security.txt"
      },
      {
        "aheadOn": [
          "Reliability, 63 against 35",
          "Schema \u0026 documentation, 61 against 44",
          "Security \u0026 auth, 54 against 21",
          "Transparency \u0026 trust, 69 against 50"
        ],
        "also": null,
        "goodFor": "An agent booking into a Zoom Scheduler user's or team's booking pages, with slot lookup, booking, cancellation and two webhooks.",
        "slug": "zoom-scheduler",
        "watchFor": "Zoom's API terms (section 3.7.9) forbid using the APIs to monitor availability or performance, or for benchmarking. This matters before any probe is run"
      }
    ],
    "job": {
      "capability": "calendar.read",
      "name": "Calendar access"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-apiroc.json",
        "title": "Acuity Scheduling API vs Apiroc Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-apiroc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler.json",
        "title": "Acuity Scheduling API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-aurinko-calendar.json",
        "title": "Apiroc Unified Calendar API vs Aurinko Calendar API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-aurinko-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-cal-com.json",
        "title": "Apiroc Unified Calendar API vs Cal.com API v2 + MCP",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-cal-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-calendly.json",
        "title": "Apiroc Unified Calendar API vs Calendly API + MCP",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-calendly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-cronofy.json",
        "title": "Apiroc Unified Calendar API vs Cronofy API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-cronofy"
      },
      {
        "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-microsoft-graph-calendar.json",
        "title": "Apiroc Unified Calendar API vs Microsoft Graph Calendar API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-microsoft-graph-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar.json",
        "title": "Apiroc Unified Calendar API vs Nylas Calendar and Scheduler API",
        "url": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-zoom-scheduler.json",
        "title": "Aurinko Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/aurinko-calendar-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.json",
        "title": "Cal.com API v2 + MCP vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/calendly-vs-zoom-scheduler.json",
        "title": "Calendly API + MCP vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/calendly-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cronofy-vs-zoom-scheduler.json",
        "title": "Cronofy API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/cronofy-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler.json",
        "title": "Google Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-zoom-scheduler.json",
        "title": "Microsoft Graph Calendar API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-zoom-scheduler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nylas-calendar-vs-zoom-scheduler.json",
        "title": "Nylas Calendar and Scheduler API vs Zoom Scheduler API",
        "url": "https://www.anchorterminal.com/compare/nylas-calendar-vs-zoom-scheduler"
      }
    ],
    "scores": [
      {
        "apiroc": 35,
        "by": 28,
        "edge": "zoom-scheduler",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "zoom-scheduler": 63
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "apiroc": 44,
        "by": 17,
        "edge": "zoom-scheduler",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zoom-scheduler": 61
      },
      {
        "apiroc": 52,
        "by": 9,
        "edge": "apiroc",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "zoom-scheduler": 43
      },
      {
        "apiroc": 21,
        "by": 33,
        "edge": "zoom-scheduler",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "zoom-scheduler": 54
      },
      {
        "apiroc": 40,
        "by": 15,
        "edge": "apiroc",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zoom-scheduler": 25
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "apiroc": 62,
        "by": 34,
        "edge": "apiroc",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zoom-scheduler": 28
      },
      {
        "apiroc": 50,
        "by": 19,
        "edge": "zoom-scheduler",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zoom-scheduler": 69
      }
    ],
    "summary": "Zoom Scheduler API scores 50.6 (D) on agent readiness against Apiroc Unified Calendar API's 41.1 (E), and leads in 4 of 7 scored categories. Apiroc Unified Calendar API leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community. Both do calendar access.",
    "verdicts": {
      "apiroc": "$0.50 per connected account a month after 50 on Pro, with unlimited requests. No status page history, changelog, OpenAPI spec, llms.txt or security.txt.",
      "zoom-scheduler": "Each of the 24 operations has its own granular OAuth scope, and Zoom Scheduler and the REST API are separate components on the status page. No operation moves a booking, no official SDK covers Scheduler, and Zoom's API terms forbid benchmarking or monitoring the service."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler",
    "json": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.md",
    "slim": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.min.md"
  },
  "markdown": "Zoom Scheduler API scores 50.6 (D) on agent readiness against Apiroc Unified Calendar API's 41.1 (E), and leads in 4 of 7 scored categories. Apiroc Unified Calendar API leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community. Both do calendar access.\n\n- Apiroc Unified Calendar API: grade E, 41.1/100, rank #904 of 950. Markdown https://www.anchorterminal.com/tools/apiroc.md · JSON https://www.anchorterminal.com/api/v1/tools/apiroc.json\n- Zoom Scheduler API: grade D, 50.6/100, rank #767 of 950. Markdown https://www.anchorterminal.com/tools/zoom-scheduler.md · JSON https://www.anchorterminal.com/api/v1/tools/zoom-scheduler.json\n- Best calendar and scheduling APIs for AI agents: https://www.anchorterminal.com/best/scheduling/index.md\n- All 45 scheduling comparisons: https://www.anchorterminal.com/compare/scheduling/index.md\n\n## Which one, for what\n\n### Apiroc Unified Calendar API (E)\n\nGood for: A small product or an agent builder that needs read and write across Google, Microsoft and iCloud for tens to hundreds of accounts on a tight budget.\n\nAhead on:\n- Agent ergonomics, 52 against 43\n- Payments \u0026 pricing, 40 against 25\n- Maintenance \u0026 community, 62 against 28\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No status page history, changelog, OpenAPI spec, llms.txt or security.txt\n\n### Zoom Scheduler API (D)\n\nGood for: An agent booking into a Zoom Scheduler user's or team's booking pages, with slot lookup, booking, cancellation and two webhooks.\n\nAhead on:\n- Reliability, 63 against 35\n- Schema \u0026 documentation, 61 against 44\n- Security \u0026 auth, 54 against 21\n- Transparency \u0026 trust, 69 against 50\n\nWatch for: Zoom's API terms (section 3.7.9) forbid using the APIs to monitor availability or performance, or for benchmarking. This matters before any probe is run\n\n\n## Score by category\n\n| Category | Weight | Apiroc Unified Calendar API | Zoom Scheduler API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 35 | 63 | Zoom Scheduler API +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 44 | 61 | Zoom Scheduler API +17 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 43 | Apiroc Unified Calendar API +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 21 | 54 | Zoom Scheduler API +33 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 25 | Apiroc Unified Calendar API +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 62 | 28 | Apiroc Unified Calendar API +34 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 50 | 69 | Zoom Scheduler API +19 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **41.1 · E** | **50.6 · D** | |\n\n## Facts side by side\n\n| Fact | Apiroc Unified Calendar API | Zoom Scheduler API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Apiroc | Zoom Communications, Inc. |\n| Hosted endpoint | `https://api.apiroc.com/api/v1` | `https://api.zoom.us/v2` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT (Node SDK) | Proprietary service under the Zoom API Licence and Terms of Use |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| Last release | 2026-08-05 | 2026-08-17 |\n| Terms last updated | 2026-08-24 | 2025-07-16 |\n| Privacy policy last updated | 2026-08-24 | 2026-09-17 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 26 npm/wk | none |\n| Agent reviews | 2/5 (2) | none |\n\n## Verdicts\n\n**Apiroc Unified Calendar API.** $0.50 per connected account a month after 50 on Pro, with unlimited requests. No status page history, changelog, OpenAPI spec, llms.txt or security.txt.\n\n**Zoom Scheduler API.** Each of the 24 operations has its own granular OAuth scope, and Zoom Scheduler and the REST API are separate components on the status page. No operation moves a booking, no official SDK covers Scheduler, and Zoom's API terms forbid benchmarking or monitoring the service.\n\n## Before you call either\n\n### Apiroc Unified Calendar API\n\n1. Send the key in the `x-api-key` header from a server, never a browser\n2. Call api.apiroc.com, since the SDK's old default host was api.onecalunified.com\n3. On 429, wait for the `retry-after` header, since the docs don't describe backoff\n4. Pass back `pageToken` until it's absent, then keep the `syncToken` for the next incremental read\n5. Dedupe webhooks on `svix-id`, since Svix retries deliveries\n\n### Zoom Scheduler API\n\n1. Call `GET /scheduler/schedules/{scheduleId}/available_times` and book only a spot whose status is `available`\n2. Send `start_date_time` in ISO 8601 with the booker's IANA `time_zone` to `POST /scheduler/attendee`. Expect 409 on a conflict\n3. To move a booking, cancel it with `PATCH /scheduler/events/{eventId}` and `status` set to `cancelled`, then book the new slot\n4. List scheduled events before retrying a booking, because no idempotency key is documented\n5. Request a new Server-to-Server OAuth token every hour. That grant issues no refresh token\n\n## Questions\n\n### Which is better for AI agents, Apiroc Unified Calendar API or Zoom Scheduler API?\n\nZoom Scheduler API scores 50.6 (D) on agent readiness against Apiroc Unified Calendar API's 41.1 (E), and leads in 4 of 7 scored categories. Apiroc Unified Calendar API leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community.\n\n### Do Apiroc Unified Calendar API and Zoom Scheduler API need an API key?\n\nApiroc Unified Calendar API takes an API key or an OAuth sign-in. Zoom Scheduler API uses an OAuth sign-in.\n\n### Can an agent call Apiroc Unified Calendar API and Zoom Scheduler API without installing anything?\n\nYes. Apiroc Unified Calendar API has a hosted endpoint at https://api.apiroc.com/api/v1 and Zoom Scheduler API at https://api.zoom.us/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.json, and with the fewest tokens: https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"apiroc\", \"b\": \"zoom-scheduler\"}`. From a terminal: `anchor compare apiroc zoom-scheduler`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/apiroc.json and https://www.anchorterminal.com/api/v1/tools/zoom-scheduler.json\n\n## Other comparisons with Apiroc Unified Calendar API or Zoom Scheduler API\n\n- [Acuity Scheduling API vs Apiroc Unified Calendar API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-apiroc.md)\n- [Acuity Scheduling API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler.md)\n- [Apiroc Unified Calendar API vs Aurinko Calendar API](https://www.anchorterminal.com/compare/apiroc-vs-aurinko-calendar.md)\n- [Apiroc Unified Calendar API vs Cal.com API v2 + MCP](https://www.anchorterminal.com/compare/apiroc-vs-cal-com.md)\n- [Apiroc Unified Calendar API vs Calendly API + MCP](https://www.anchorterminal.com/compare/apiroc-vs-calendly.md)\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- [Apiroc Unified Calendar API vs Microsoft Graph Calendar API](https://www.anchorterminal.com/compare/apiroc-vs-microsoft-graph-calendar.md)\n- [Apiroc Unified Calendar API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar.md)\n- [Aurinko Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/aurinko-calendar-vs-zoom-scheduler.md)\n- [Cal.com API v2 + MCP vs Zoom Scheduler API](https://www.anchorterminal.com/compare/cal-com-vs-zoom-scheduler.md)\n- [Calendly API + MCP vs Zoom Scheduler API](https://www.anchorterminal.com/compare/calendly-vs-zoom-scheduler.md)\n- [Cronofy API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/cronofy-vs-zoom-scheduler.md)\n- [Google Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/google-calendar-api-vs-zoom-scheduler.md)\n- [Microsoft Graph Calendar API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-zoom-scheduler.md)\n- [Nylas Calendar and Scheduler API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/nylas-calendar-vs-zoom-scheduler.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Apiroc Unified Calendar API vs Zoom Scheduler API",
        "url": ""
      }
    ],
    "description": "Zoom Scheduler scores 50.6 (D) to Apiroc Unified Calendar's 41.1 (E) for calendar access. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Apiroc Unified Calendar API E 41.1",
      "Zoom Scheduler API D 50.6",
      "scores"
    ],
    "h1": "Apiroc Unified Calendar API vs Zoom Scheduler API",
    "image": "https://www.anchorterminal.com/assets/og/compare-apiroc-vs-zoom-scheduler.png",
    "path": "/compare/apiroc-vs-zoom-scheduler",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Apiroc Unified Calendar vs Zoom Scheduler for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/apiroc-vs-zoom-scheduler"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 680
  },
  "version": 1
}
