{
  "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.3,
        "grade": "E",
        "agentReady": false,
        "rank": 417,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 62,
          "payments": 40,
          "reliability": 35,
          "schema": 44,
          "security": 21,
          "transparency": 53
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 41.3
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 62,
          "payments": 40,
          "reliability": 35,
          "schema": 44,
          "security": 21,
          "transparency": 51
        },
        "provenanceScore": 55
      },
      "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": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/apiroc.json",
      "live": {
        "slug": "apiroc",
        "probe": {
          "target": "https://api.apiroc.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:32:43.059700902Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 219,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 226,
          "p95ms24h": 307,
          "samples24h": 272,
          "samples30d": 895,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@apiroc/unified-calendar-api-node-sdk",
            "version": "2.0.1",
            "seenAt": "2026-10-04T16:20:41.519616919Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 9,
        "securityTxt": {
          "url": "https://apiroc.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:42.565883668Z"
        },
        "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-04T15:49:08.985266078Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "933585cad4b8"
          },
          {
            "url": "https://www.apiroc.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:12.075622313Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6076c53fc344"
          },
          {
            "url": "https://www.apiroc.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:13.174399907Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b0e155d5c872"
          }
        ],
        "updatedAt": "2026-10-04T23:32:43.059700902Z"
      }
    },
    "b": {
      "slug": "nylas-calendar",
      "name": "Nylas Calendar and Scheduler API",
      "vendor": "Nylas",
      "vendorUrl": "https://www.nylas.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Unified calendar API over Google, Microsoft 365 and Outlook, Exchange (EWS) and iCloud.",
      "url": "https://www.anchorterminal.com/tools/nylas-calendar",
      "markdownUrl": "https://www.anchorterminal.com/tools/nylas-calendar.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nylas-calendar.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nylas-calendar.json",
      "repo": "https://github.com/nylas/nylas-nodejs",
      "license": "MIT (SDKs)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.us.nylas.com/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "nylas"
        },
        {
          "registry": "pypi",
          "name": "nylas"
        }
      ],
      "auth": "mixed",
      "authNotes": "Application API key as a Bearer token. Each connected user is a grant, created through Nylas hosted OAuth or your own provider credentials, and addressed as /v3/grants/\u003cgrant_id\u003e. The hosted MCP takes the same API key in the `Authorization` header.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 5 email and calendar connected accounts, 5 Notetaker bot hours and 3 Agent Accounts, no card. Essentials $15 a month with 10 email and calendar accounts ($2.25 each after), 10 calendar-only accounts ($1.70 each after), 10 Notetaker hours then $0.80 an hour, and 10 Agent Accounts. Pro $49 a month with 25 email and calendar accounts ($2.00 each after), 35 calendar-only accounts ($1.50 each after), 70 Notetaker hours then $0.70 an hour, and 50 Agent Accounts then $0.40 each. Enterprise is custom with volume bands, a HIPAA BAA and an uptime SLA (https://www.nylas.com/pricing/).",
      "priceSummary": "$15 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 38,
      "popularity": {
        "githubStars": 181,
        "npmWeekly": 281223,
        "pypiWeekly": 103888,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.nylas.com/docs/v3/calendar/",
      "llmsTxt": "https://developer.nylas.com/llms.txt",
      "openapi": "https://developer.nylas.com/openapi.json",
      "capabilities": [
        "calendar.read",
        "calendar.write",
        "calendar.availability",
        "calendar.booking",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "webhooks",
        "typescript",
        "python",
        "enterprise",
        "eu",
        "closed-source"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 87,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 88,
          "payments": 40,
          "reliability": 75,
          "schema": 91,
          "security": 59,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "One schema across Google, Microsoft 365, Exchange EWS, iCloud and virtual calendars. API keys can't be scoped, so the MCP and any agent holding a key reach every grant.",
        "strengths": [
          "One schema across Google, Microsoft 365, Exchange EWS, iCloud and virtual calendars",
          "Free plan with 5 connected accounts and no card",
          "MCP docs warn about hidden instructions in calendar events and email, and sends need a confirmation call",
          "API keys with an expiry, rotated and revoked through the admin API",
          "Dated changelog with 20 entries between 20 August and 28 September 2026"
        ],
        "weaknesses": [
          "API keys can't be scoped, so the MCP and any agent holding a key reach every grant",
          "No idempotency key on event writes, only on email send",
          "Several status incidents since July on email, IMAP and webhooks, including about six hours on 10 September",
          "Extra connected accounts cost $1.50 to $2.25 a month each",
          "No security.txt on nylas.com"
        ],
        "agentNotes": [
          "Address calendar calls to /v3/grants/\u003cgrant_id\u003e, one grant per connected account",
          "List events in the window before retrying a create, since event writes have no idempotency key",
          "Point the MCP client at mcp.eu.nylas.com if the application lives in the EU region",
          "On 429, use the passed-through `Retry-After` if present, otherwise back off per grant",
          "Mint a short-lived API key for the agent with `expires_in` rather than sharing the main one"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.3
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 88,
          "payments": 40,
          "reliability": 75,
          "schema": 91,
          "security": 59,
          "transparency": 67
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl \"https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/calendars?limit=5\" \\\n  -H \"Authorization: Bearer $NYLAS_API_KEY\"",
        "claudeCode": "claude mcp add --transport http nylas https://mcp.us.nylas.com --header \"Authorization: Bearer $NYLAS_API_KEY\"",
        "config": {
          "mcpServers": {
            "nylas": {
              "headers": {
                "Authorization": "Bearer ${NYLAS_API_KEY}"
              },
              "url": "https://mcp.us.nylas.com"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/nylas-calendar"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Essentials",
          "unit": "month",
          "usd": 15,
          "note": "10 email and calendar plus 10 calendar-only accounts"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 49,
          "note": "25 email and calendar plus 35 calendar-only accounts, billed monthly"
        },
        {
          "item": "Extra calendar-only account on Essentials",
          "unit": "account-month",
          "usd": 1.7
        },
        {
          "item": "Extra calendar-only account on Pro",
          "unit": "account-month",
          "usd": 1.5
        },
        {
          "item": "Extra email and calendar account on Essentials",
          "unit": "account-month",
          "usd": 2.25
        },
        {
          "item": "Extra email and calendar account on Pro",
          "unit": "account-month",
          "usd": 2
        },
        {
          "item": "Extra Agent Account on Pro",
          "unit": "account-month",
          "usd": 0.4
        }
      ],
      "provenance": {
        "legalEntity": "Nylas, Inc.",
        "domain": "nylas.com",
        "domainRegistered": "2001-11-07",
        "domainNote": "nylas.com was registered in 2001, years before Nylas started, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.nylas.com/legal/terms/",
        "privacy": "https://www.nylas.com/privacy-policy/",
        "statusPage": "https://status-v3.nylas.com",
        "changelog": "https://developer.nylas.com/docs/changelogs/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms (updated 23 June 2025) name Nylas, Inc. in Palo Alto, California, under California law with arbitration.",
          "www.nylas.com/.well-known/security.txt returns 404.",
          "The status page for the v3 API is status-v3.nylas.com."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nylas-calendar.json",
      "live": {
        "slug": "nylas-calendar",
        "probe": {
          "target": "https://api.us.nylas.com/v3",
          "method": "get",
          "lastAt": "2026-10-04T23:32:51.354291149Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 182,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 153,
          "p95ms24h": 243,
          "samples24h": 272,
          "samples30d": 895,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status-v3.nylas.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:27:54.289552087Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "nylas/nylas-nodejs",
            "version": "v8.4.0",
            "released": "2026-06-24",
            "seenAt": "2026-10-04T16:34:51.31355139Z"
          },
          {
            "registry": "npm",
            "name": "nylas",
            "version": "8.4.0",
            "seenAt": "2026-10-04T16:34:50.701558588Z"
          },
          {
            "registry": "pypi",
            "name": "nylas",
            "version": "6.18.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-04T16:34:51.125439411Z"
          }
        ],
        "githubStars": 181,
        "npmWeekly": 295779,
        "pypiWeekly": 96868,
        "securityTxt": {
          "url": "https://nylas.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:54.20161693Z"
        },
        "llmsTxt": {
          "url": "https://developer.nylas.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:03.703910979Z"
        },
        "domain": {
          "domain": "nylas.com",
          "registered": "2001-11-07",
          "source": "https://rdap.verisign.com/com/v1/domain/nylas.com",
          "checkedAt": "2026-10-04T13:09:31.916917182Z"
        },
        "pages": [
          {
            "url": "https://developer.nylas.com/docs/changelogs/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:38.470063087Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bf0fcf97ac8a"
          },
          {
            "url": "https://www.nylas.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:33.357432768Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8ef54aba9b2d"
          },
          {
            "url": "https://www.nylas.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:35.413394886Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7c706d098f29"
          },
          {
            "url": "https://www.nylas.com/legal/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:31.29712534Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b2a32376d8c2"
          }
        ],
        "updatedAt": "2026-10-04T23:32:51.354291149Z"
      }
    },
    "summary": "Nylas Calendar and Scheduler API has a score of 71.3 (BB) against Apiroc Unified Calendar API's 41.3 (E). Both do calendar read. The largest gap is schema \u0026 documentation, 47 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar",
    "json": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar.md",
    "slim": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar.min.md"
  },
  "markdown": "Nylas Calendar and Scheduler API has a score of 71.3 (BB) against Apiroc Unified Calendar API's 41.3 (E). Both do calendar read. The largest gap is schema \u0026 documentation, 47 points.\n\n- Apiroc Unified Calendar API: grade E, 41.3/100, rank #417 of 452. Markdown https://www.anchorterminal.com/tools/apiroc.md · JSON https://www.anchorterminal.com/api/v1/tools/apiroc.json\n- Nylas Calendar and Scheduler API: grade BB, 71.3/100, rank #87 of 452. Markdown https://www.anchorterminal.com/tools/nylas-calendar.md · JSON https://www.anchorterminal.com/api/v1/tools/nylas-calendar.json\n\n## Which one, for what\n\nPick Apiroc Unified Calendar API for nothing in particular (no category where it leads by five points or more).\n\nPick Nylas Calendar and Scheduler API for reliability (+40), schema \u0026 documentation (+47), agent ergonomics (+19), security \u0026 auth (+38), maintenance \u0026 community (+26), transparency \u0026 trust (+26).\n\n## Score by category\n\n| Category | Weight | Apiroc Unified Calendar API | Nylas Calendar and Scheduler API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 35 | 75 | Nylas Calendar and Scheduler API +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 44 | 91 | Nylas Calendar and Scheduler API +47 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 71 | Nylas Calendar and Scheduler API +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 21 | 59 | Nylas Calendar and Scheduler API +38 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 62 | 88 | Nylas Calendar and Scheduler API +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 53 | 79 | Nylas Calendar and Scheduler API +26 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **41.3 · E** | **71.3 · BB** | |\n\n## Facts side by side\n\n| Fact | Apiroc Unified Calendar API | Nylas Calendar and Scheduler API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Apiroc | Nylas |\n| Hosted endpoint | `https://api.apiroc.com/api/v1` | `https://api.us.nylas.com/v3` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (Node SDK) | MIT (SDKs) |\n| Tools exposed | none | 38 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-08-05 | 2026-09-30 |\n| Popularity | 26 npm/wk | 181 stars, 281k npm/wk, 104k PyPI/wk |\n| Agent reviews | 2/5 (2) | 3/5 (2) |\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**Nylas Calendar and Scheduler API.** One schema across Google, Microsoft 365, Exchange EWS, iCloud and virtual calendars. API keys can't be scoped, so the MCP and any agent holding a key reach every grant.\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### Nylas Calendar and Scheduler API\n\n1. Address calendar calls to /v3/grants/\u003cgrant_id\u003e, one grant per connected account\n2. List events in the window before retrying a create, since event writes have no idempotency key\n3. Point the MCP client at mcp.eu.nylas.com if the application lives in the EU region\n4. On 429, use the passed-through `Retry-After` if present, otherwise back off per grant\n5. Mint a short-lived API key for the agent with `expires_in` rather than sharing the main one\n\n## Other comparisons with Apiroc Unified Calendar API or Nylas Calendar and Scheduler API\n\n- [Apiroc Unified Calendar API vs Cal.com API v2 + MCP](https://www.anchorterminal.com/compare/apiroc-vs-cal-com.md)\n- [Apiroc Unified Calendar API vs 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- [Cal.com API v2 + MCP vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/cal-com-vs-nylas-calendar.md)\n- [Calendly API + MCP vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/calendly-vs-nylas-calendar.md)\n- [Cronofy API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/cronofy-vs-nylas-calendar.md)\n- [Google Calendar API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/google-calendar-api-vs-nylas-calendar.md)\n- [Microsoft Graph Calendar API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/microsoft-graph-calendar-vs-nylas-calendar.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Apiroc Unified Calendar API vs Nylas Calendar and Scheduler API",
        "url": ""
      }
    ],
    "description": "Nylas Calendar and Scheduler API has a score of 71.3 (BB) against Apiroc Unified Calendar API's 41.3 (E). Both do calendar read. The largest gap is schema \u0026 documentation, 47 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Apiroc Unified Calendar API E 41.3",
      "Nylas Calendar and Scheduler API BB 71.3",
      "scores"
    ],
    "h1": "Apiroc Unified Calendar API vs Nylas Calendar and Scheduler API",
    "image": "https://www.anchorterminal.com/assets/og/compare-apiroc-vs-nylas-calendar.png",
    "path": "/compare/apiroc-vs-nylas-calendar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Apiroc Unified Calendar API vs Nylas Calendar and Scheduler API",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/apiroc-vs-nylas-calendar"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 380
  },
  "version": 1
}
