{
  "data": {
    "a": {
      "slug": "acuity-scheduling",
      "name": "Acuity Scheduling API",
      "vendor": "Squarespace",
      "vendorUrl": "https://acuityscheduling.com",
      "kind": "http-api",
      "category": "scheduling",
      "summary": "Acuity Scheduling is Squarespace's appointment booking product. Its REST API reads availability, creates, reschedules and cancels appointments, manages clients and blocked time, and sends webhooks, with Basic authentication or OAuth2.",
      "url": "https://www.anchorterminal.com/tools/acuity-scheduling",
      "markdownUrl": "https://www.anchorterminal.com/tools/acuity-scheduling.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/acuity-scheduling.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/acuity-scheduling.json",
      "dns": "acuity-scheduling.grade.anchorterminal.com",
      "repo": "https://github.com/AcuityScheduling/acuity-js",
      "license": "Proprietary service under Squarespace's Developer Terms. The Node.js and PHP SDKs are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://acuityscheduling.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "acuityscheduling"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. One account uses HTTP Basic authentication with the numeric User ID as username and the account API key as password, found under Integrations in the Acuity settings. Apps that connect other people's accounts register an OAuth2 client at https://acuityscheduling.com/oauth2/register and use the authorisation code grant, which has one scope, `api-v1`, and returns a Bearer token. `POST /oauth2/disconnect` disables a token. No app review step, token expiry or refresh token is described in the OAuth guide. Requests must come from a server, as cross-origin requests are refused.",
      "pricing": "paid",
      "pricingNotes": "The pricing page lists \"Custom API and CSS\" on the Premium plan only, at $61 a month or $49 a month billed yearly. Starter is $20 ($16 yearly) and Standard $34 ($27 yearly), in USD before tax. Each plan has a 7-day trial with no card needed. We did not establish whether the trial includes API access. No free tier or sandbox was found, and API calls carry no separate charge. An Enterprise plan with additional APIs is sold through sales (https://acuityscheduling.com/pricing).",
      "priceSummary": "$61 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or on the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 9182,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.acuityscheduling.com",
      "llmsTxt": "https://developers.acuityscheduling.com/llms.txt",
      "capabilities": [
        "calendar.read",
        "calendar.availability",
        "calendar.booking",
        "calendar.webhooks"
      ],
      "tags": [
        "hosted",
        "paid",
        "trial",
        "rest",
        "oauth",
        "basic-auth",
        "webhooks",
        "llms-txt",
        "closed-source",
        "status-page",
        "hipaa",
        "nodejs",
        "php"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 42.5,
        "grade": "E",
        "agentReady": false,
        "rank": 1276,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 44,
          "maintenance": 15,
          "payments": 30,
          "reliability": 58,
          "schema": 56,
          "security": 27,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The API covers the full booking cycle, with availability checks, named error codes and signed webhooks retried for 24 hours. API access is sold only on the Premium plan at $61 a month, the single OAuth scope grants the whole account, and no changelog, idempotency key or audit log was found in the reviewed documentation.",
        "bestFor": "A business that already takes bookings in Acuity and wants an agent to check slots, book, move and cancel appointments for clients, including classes, packages and intake forms.",
        "strengths": [
          "Availability by date and time, booking, rescheduling and cancelling are separate documented endpoints under `/api/v1`",
          "Errors return a status code, a named `error` code and a message, and a 404 suggests the nearest valid path",
          "Webhooks are signed with HMAC-SHA256 in `x-acuity-signature` and retried nine times over 24 hours",
          "Every docs page has a Markdown copy with an OpenAPI 3.1 fragment, and `llms.txt` is published",
          "Rate limit stated as 10 requests a second and 20 concurrent connections per IP"
        ],
        "weaknesses": [
          "The pricing page lists custom API access on Premium only, $61 a month or $49 billed yearly",
          "OAuth2 has one scope, `api-v1`, and Basic authentication uses one account API key, so no read-only credential exists",
          "No changelog or deprecation policy was found, and the Developer Terms allow changes without notice",
          "The Node.js and PHP SDKs were last released in July 2019",
          "The status page records two critical service disruptions in the last 90 days, on 19 July and 12 August 2026"
        ],
        "agentNotes": [
          "Call `/availability/dates` then `/availability/times` with `appointmentTypeID` before `POST /appointments`, which validates the slot as a client would",
          "Avoid `admin=true` unless the owner asks for it, because it skips availability and form validation",
          "Pass `noEmail=true` when a booking or cancellation must not send the client an email or SMS",
          "Check `GET /appointments` filtered by `email` and date before retrying a booking, since no idempotency key is documented",
          "Stay under 10 requests a second and 20 concurrent connections per IP, and back off on 429, which carries no documented `Retry-After`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 42.5
          }
        ],
        "editorialScores": {
          "ergonomics": 44,
          "maintenance": 15,
          "payments": 30,
          "reliability": 58,
          "schema": 56,
          "security": 27,
          "transparency": 34
        },
        "provenanceScore": 76,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-08",
            "maintenance": "2026-10-08",
            "payments": "2026-10-08",
            "reliability": "2026-10-08",
            "schema": "2026-10-08",
            "security": "2026-10-08",
            "transparency": "2026-10-08"
          },
          "last": "2026-10-08",
          "lastMoved": "2026-10-28",
          "oldest": "2026-10-08",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install --save acuityscheduling",
        "http": "curl -u ACUITY_USER_ID:ACUITY_API_KEY \"https://acuityscheduling.com/api/v1/appointments\""
      },
      "letme": {
        "capability": "https://letme.dev/calendar.read",
        "tool": "https://letme.dev/acuity-scheduling"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Premium (the plan with API access)",
          "unit": "month",
          "usd": 61,
          "note": "Monthly billing. $49 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Squarespace, Inc.",
        "domain": "acuityscheduling.com",
        "domainRegistered": "2007-01-15",
        "endpointOnVendorDomain": true,
        "terms": "https://www.squarespace.com/developer-terms",
        "privacy": "https://www.squarespace.com/privacy",
        "statusPage": "https://status.acuityscheduling.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The developer docs' legal page links two documents, Squarespace's Developer Terms (last updated 16 December 2025) and Squarespace's privacy policy (effective 15 July 2026). Both name acuityscheduling.com.",
          "The contracting entity is Squarespace, Inc., 225 Varick Street, New York, for US users and Squarespace Ireland Limited, Dublin, for others.",
          "acuityscheduling.com/.well-known/security.txt returns 404. www.squarespace.com publishes one that expires on 1 January 2028 and points to its vulnerability reporting page.",
          "The API answers at https://acuityscheduling.com/api/v1 and OAuth at https://acuityscheduling.com/oauth2.",
          "RDAP gives a registration date of 2007-01-15 and MarkMonitor Inc. as registrar.",
          "No changelog was found. developers.acuityscheduling.com/changelog.md returns the docs' not-found page."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/acuity-scheduling.json",
      "live": {
        "slug": "acuity-scheduling",
        "probe": {
          "target": "https://acuityscheduling.com/api/v1",
          "method": "get",
          "lastAt": "2026-11-07T19:21:50.102583196Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 470,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.49,
          "p50ms24h": 478,
          "p95ms24h": 562,
          "samples24h": 238,
          "samples30d": 7430,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "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": 218
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 246
            },
            {
              "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": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "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": 240
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ],
          "outages": [
            {
              "start": "2026-10-21T13:56:25.331686093Z",
              "end": "2026-10-21T17:02:44.771636572Z",
              "note": "HTTP 503 server error"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.acuityscheduling.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:20:37.154989371Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "acuityscheduling",
            "version": "0.1.9",
            "seenAt": "2026-11-06T23:02:33.727594861Z"
          }
        ],
        "githubStars": 37,
        "npmWeekly": 21710,
        "securityTxt": {
          "url": "https://acuityscheduling.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:00.96158731Z"
        },
        "llmsTxt": {
          "url": "https://developers.acuityscheduling.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:05.278570266Z"
        },
        "domain": {
          "domain": "acuityscheduling.com",
          "registered": "2007-01-15",
          "source": "https://rdap.verisign.com/com/v1/domain/acuityscheduling.com",
          "checkedAt": "2026-11-01T14:27:00.066842758Z"
        },
        "pages": [
          {
            "url": "https://acuityscheduling.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T13:58:35.327386655Z",
            "changedAt": "2026-10-14T20:34:38.321757155Z",
            "fingerprint": "f06a7932ca32"
          },
          {
            "url": "https://www.squarespace.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:35:05.461181793Z",
            "changedAt": "2026-10-24T02:36:55.582176904Z",
            "fingerprint": "35717e2f2fed"
          },
          {
            "url": "https://www.squarespace.com/developer-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:35:02.695075841Z",
            "changedAt": "2026-10-24T02:36:53.092977407Z",
            "fingerprint": "4eae8f3ec295"
          }
        ],
        "github": {
          "repo": "acuityscheduling/acuity-js",
          "checkedAt": "2026-11-02T08:27:56.255789894Z",
          "stars": 37,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2019-08-16T08:52:10Z",
          "openIssues": 1,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 9,
            "unanswered": 1,
            "medianDays": 4.4
          }
        },
        "updatedAt": "2026-11-07T19:21:50.102583196Z"
      }
    },
    "answer": "Truto Unified Calendar API scores 60.4 (C) on agent readiness against Acuity Scheduling API's 42.5 (E), and leads in 6 of 7 scored categories. Acuity Scheduling API leads on payments \u0026 pricing.",
    "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": 35,
        "category": "maintenance",
        "leads": "truto-calendar",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "No changelog or release notes found. The docs' own page dates show the OAuth guide edited on 1 October 2026 and the webhooks guide on 25 June 2026, which we count as the latest dated change (10). No three dated entries in 90 days (0). A developer email address and a support form, with no public issue tracker for the API (5). The Node.js and PHP SDKs were last tagged in July 2019 (0). No current package to assess (0). Total 15.",
          "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": 15,
          "b": 50
        }
      },
      {
        "by": 27,
        "category": "ergonomics",
        "leads": "truto-calendar",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "`max` caps list size and `excludeForms` trims intake forms from appointments. No field selection (10). Filters by date, calendar, type and client, but no cursor or offset is documented, so long lists need date windows (10). Errors carry a status, a named code and a message, and a 404 suggests the nearest path (16). No idempotency key or safe-retry guidance for `POST /appointments` (0). Booking needs five fields and picks a calendar when none is given. SDKs exist for Node.js and PHP, both last released in 2019 (8). Total 44.",
          "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": 44,
          "b": 71
        }
      },
      {
        "by": 25,
        "category": "security",
        "leads": "truto-calendar",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Basic authentication with one account API key, or OAuth2 with the single scope `api-v1`. Tokens can be disabled at `/oauth2/disconnect`. No scoped keys, expiry or rotation documented. Credentials travel in headers only (15). No read-only credential. Client-mode validation is the default and `admin=true` is opt-in (3). Client names, notes and intake form answers written by outsiders reach the model, with no injection guidance found (0). No API audit log found (0). Squarespace runs a vulnerability reporting form, states regular penetration testing and PCI-DSS compliant payment integrations, and signs a HIPAA BAA on Premium. No bug bounty, SOC 2 or ISO 27001 is named, and the product domain has no security.txt (9). Total 27.",
          "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": 27,
          "b": 52
        }
      },
      {
        "by": 19,
        "category": "reliability",
        "leads": "truto-calendar",
        "name": "Reliability",
        "reasons": {
          "a": "Graded as a hosted API. Statuspage site at status.acuityscheduling.com with incident history, though one component stands for the whole product (20). In the 90 days to 8 October 2026 the feed shows a critical disruption of 2 hours 5 minutes on 19 July and one of 18 minutes on 12 August, both marked as possibly affecting all users and services, plus a four-day iOS app fault and three minor integration incidents. Read as one major outage (10). 10 requests a second and 20 concurrent connections per IP (15). The 429 body is documented, with no `Retry-After`, backoff advice or idempotency key for booking writes (3). No SLA found, and the Developer Terms disclaim uninterrupted service (0). The v1 API is generally available (10). Total 58.",
          "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": 58,
          "b": 77
        }
      },
      {
        "by": 19,
        "category": "schema",
        "leads": "truto-calendar",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Each reference page carries an OpenAPI 3.1 fragment for its own operation, generated by the docs platform from hand-written pages. No single downloadable specification was found (15). `llms.txt` is published and every page has a Markdown copy, but the index lists only five of 36 reference pages (8). Pages explain client and admin booking modes and when availability is validated, without when-not-to-use guidance (10). Parameters are typed with required fields, but there are no enums and `datetime` is any string PHP's strtotime accepts (8). Request examples, an error table and per-endpoint error codes (12). The path is versioned as v1, with no changelog found (3). Total 56.",
          "b": "An OpenAPI specification is linked from the RFC 9727 API catalogue, but the file timed out and was not read, so it is credited as published and unverified (20 of 25). llms.txt and a Markdown sibling for every page (10). Parameter descriptions say what each does and what it falls back to, such as `end_time` defaulting to the month of `start_time` (15 of 20). Types, required marks and allowed values such as `focus_time` and `out_of_office` (13 of 15). One documented error shape with provider and Truto fields; few request examples on the reference pages read (12 of 15). Deprecated admin endpoints are marked, but no API changelog was found (5 of 15). 20 + 10 + 15 + 13 + 12 + 5 = 75."
        },
        "scores": {
          "a": 56,
          "b": 75
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "acuity-scheduling",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices are public, $20, $34 and $61 a month, with nothing per call (10). A 7-day trial needs no card. Whether the trial includes API access was not established (20). A person signs up in a browser and copies the key or approves OAuth (0). Total 30.",
          "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": 30,
          "b": 20
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Squarespace",
        "b": "Yin Yang Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://acuityscheduling.com/api/v1",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Squarespace's Developer Terms. The Node.js and PHP SDKs are MIT",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "none",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "2025-12-16",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2024-10-19",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9.2k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Truto Unified Calendar API scores 60.4 (C) on agent readiness against Acuity Scheduling API's 42.5 (E), and leads in 6 of 7 scored categories. Acuity Scheduling API leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Acuity Scheduling API or Truto Unified Calendar API?"
      },
      {
        "answer": "Acuity Scheduling API takes an API key or an OAuth sign-in. Truto Unified Calendar API needs an API key.",
        "question": "Do Acuity Scheduling API and Truto Unified Calendar API need an API key?"
      },
      {
        "answer": "Acuity Scheduling API has a hosted endpoint at https://acuityscheduling.com/api/v1. No hosted endpoint is listed for Truto Unified Calendar API.",
        "question": "Can an agent call Acuity Scheduling API and Truto Unified Calendar API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 30 against 20"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A business that already takes bookings in Acuity and wants an agent to check slots, book, move and cancel appointments for clients, including classes, packages and intake forms.",
        "slug": "acuity-scheduling",
        "watchFor": "The pricing page lists custom API access on Premium only, $61 a month or $49 billed yearly"
      },
      {
        "aheadOn": [
          "Reliability, 77 against 58",
          "Schema \u0026 documentation, 75 against 56",
          "Agent ergonomics, 71 against 44",
          "Security \u0026 auth, 52 against 27",
          "Maintenance \u0026 community, 50 against 15",
          "Transparency \u0026 trust, 61 against 55"
        ],
        "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": {
      "acuity-scheduling": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": 0,
          "from": 42.5,
          "fromGrade": "E",
          "to": 42.5,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 42.4,
          "fromGrade": "E",
          "to": 42.5,
          "toGrade": "E"
        }
      ],
      "truto-calendar": null
    },
    "job": {
      "capability": "calendar.read",
      "name": "Calendar access"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-agenda-hero.json",
        "title": "Acuity Scheduling API vs Agenda Hero",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-agenda-hero"
      },
      {
        "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-aurinko-calendar.json",
        "title": "Acuity Scheduling API vs Aurinko Calendar API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-aurinko-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cal-com.json",
        "title": "Acuity Scheduling API vs Cal.com API v2 + MCP",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cal-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-calendly.json",
        "title": "Acuity Scheduling API vs Calendly API + MCP",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-calendly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cozi.json",
        "title": "Acuity Scheduling API vs Cozi Family Organizer",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cozi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cronofy.json",
        "title": "Acuity Scheduling API vs Cronofy API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-cronofy"
      },
      {
        "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-microsoft-graph-calendar.json",
        "title": "Acuity Scheduling API vs Microsoft Graph Calendar API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-microsoft-graph-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-nylas-calendar.json",
        "title": "Acuity Scheduling API vs Nylas Calendar and Scheduler API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-nylas-calendar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-reclaim-ai.json",
        "title": "Acuity Scheduling API vs Reclaim.ai",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-reclaim-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-savvycal.json",
        "title": "Acuity Scheduling API vs SavvyCal API + MCP",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-savvycal"
      },
      {
        "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/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-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-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-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-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-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-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-truto-calendar.json",
        "title": "Google Calendar API vs Truto Unified Calendar API",
        "url": "https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar"
      },
      {
        "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/acuity-scheduling-vs-youcanbookme.json",
        "title": "Acuity Scheduling API vs YouCanBookMe API",
        "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-youcanbookme"
      },
      {
        "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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "acuity-scheduling": 58,
        "by": 19,
        "edge": "truto-calendar",
        "key": "reliability",
        "name": "Reliability",
        "truto-calendar": 77,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "acuity-scheduling": 56,
        "by": 19,
        "edge": "truto-calendar",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "truto-calendar": 75,
        "weight": 13
      },
      {
        "acuity-scheduling": 44,
        "by": 27,
        "edge": "truto-calendar",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "truto-calendar": 71,
        "weight": 13
      },
      {
        "acuity-scheduling": 27,
        "by": 25,
        "edge": "truto-calendar",
        "key": "security",
        "name": "Security \u0026 auth",
        "truto-calendar": 52,
        "weight": 14
      },
      {
        "acuity-scheduling": 30,
        "by": 10,
        "edge": "acuity-scheduling",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "truto-calendar": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "acuity-scheduling": 15,
        "by": 35,
        "edge": "truto-calendar",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "truto-calendar": 50,
        "weight": 7
      },
      {
        "acuity-scheduling": 55,
        "by": 6,
        "edge": "truto-calendar",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "truto-calendar": 61,
        "weight": 7
      }
    ],
    "summary": "Truto Unified Calendar API scores 60.4 (C) on agent readiness against Acuity Scheduling API's 42.5 (E), and leads in 6 of 7 scored categories. Acuity Scheduling API leads on payments \u0026 pricing. Both do calendar access.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "acuity-scheduling": "The API covers the full booking cycle, with availability checks, named error codes and signed webhooks retried for 24 hours. API access is sold only on the Premium plan at $61 a month, the single OAuth scope grants the whole account, and no changelog, idempotency key or audit log was found in the reviewed documentation.",
      "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/acuity-scheduling-vs-truto-calendar",
    "json": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar.min.md"
  },
  "markdown": "Truto Unified Calendar API scores 60.4 (C) on agent readiness against Acuity Scheduling API's 42.5 (E), and leads in 6 of 7 scored categories. Acuity Scheduling API leads on payments \u0026 pricing. Both do calendar access.\n\n- Acuity Scheduling API: grade E, 42.5/100, rank #1276 of 1510. Markdown https://www.anchorterminal.com/tools/acuity-scheduling.md · JSON https://www.anchorterminal.com/api/v1/tools/acuity-scheduling.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### Acuity Scheduling API (E)\n\nGood for: A business that already takes bookings in Acuity and wants an agent to check slots, book, move and cancel appointments for clients, including classes, packages and intake forms.\n\nAhead on:\n- Payments \u0026 pricing, 30 against 20\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: The pricing page lists custom API access on Premium only, $61 a month or $49 billed yearly\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\nAhead on:\n- Reliability, 77 against 58\n- Schema \u0026 documentation, 75 against 56\n- Agent ergonomics, 71 against 44\n- Security \u0026 auth, 52 against 27\n- Maintenance \u0026 community, 50 against 15\n- Transparency \u0026 trust, 61 against 55\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: Truto Unified Calendar API +35\n\n- Acuity Scheduling API (15): No changelog or release notes found. The docs' own page dates show the OAuth guide edited on 1 October 2026 and the webhooks guide on 25 June 2026, which we count as the latest dated change (10). No three dated entries in 90 days (0). A developer email address and a support form, with no public issue tracker for the API (5). The Node.js and PHP SDKs were last tagged in July 2019 (0). No current package to assess (0). Total 15.\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### Agent ergonomics: Truto Unified Calendar API +27\n\n- Acuity Scheduling API (44): `max` caps list size and `excludeForms` trims intake forms from appointments. No field selection (10). Filters by date, calendar, type and client, but no cursor or offset is documented, so long lists need date windows (10). Errors carry a status, a named code and a message, and a 404 suggests the nearest path (16). No idempotency key or safe-retry guidance for `POST /appointments` (0). Booking needs five fields and picks a calendar when none is given. SDKs exist for Node.js and PHP, both last released in 2019 (8). Total 44.\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### Security \u0026 auth: Truto Unified Calendar API +25\n\n- Acuity Scheduling API (27): Basic authentication with one account API key, or OAuth2 with the single scope `api-v1`. Tokens can be disabled at `/oauth2/disconnect`. No scoped keys, expiry or rotation documented. Credentials travel in headers only (15). No read-only credential. Client-mode validation is the default and `admin=true` is opt-in (3). Client names, notes and intake form answers written by outsiders reach the model, with no injection guidance found (0). No API audit log found (0). Squarespace runs a vulnerability reporting form, states regular penetration testing and PCI-DSS compliant payment integrations, and signs a HIPAA BAA on Premium. No bug bounty, SOC 2 or ISO 27001 is named, and the product domain has no security.txt (9). Total 27.\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### Reliability: Truto Unified Calendar API +19\n\n- Acuity Scheduling API (58): Graded as a hosted API. Statuspage site at status.acuityscheduling.com with incident history, though one component stands for the whole product (20). In the 90 days to 8 October 2026 the feed shows a critical disruption of 2 hours 5 minutes on 19 July and one of 18 minutes on 12 August, both marked as possibly affecting all users and services, plus a four-day iOS app fault and three minor integration incidents. Read as one major outage (10). 10 requests a second and 20 concurrent connections per IP (15). The 429 body is documented, with no `Retry-After`, backoff advice or idempotency key for booking writes (3). No SLA found, and the Developer Terms disclaim uninterrupted service (0). The v1 API is generally available (10). Total 58.\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### Schema \u0026 documentation: Truto Unified Calendar API +19\n\n- Acuity Scheduling API (56): Each reference page carries an OpenAPI 3.1 fragment for its own operation, generated by the docs platform from hand-written pages. No single downloadable specification was found (15). `llms.txt` is published and every page has a Markdown copy, but the index lists only five of 36 reference pages (8). Pages explain client and admin booking modes and when availability is validated, without when-not-to-use guidance (10). Parameters are typed with required fields, but there are no enums and `datetime` is any string PHP's strtotime accepts (8). Request examples, an error table and per-endpoint error codes (12). The path is versioned as v1, with no changelog found (3). Total 56.\n- Truto Unified Calendar API (75): An OpenAPI specification is linked from the RFC 9727 API catalogue, but the file timed out and was not read, so it is credited as published and unverified (20 of 25). llms.txt and a Markdown sibling for every page (10). Parameter descriptions say what each does and what it falls back to, such as `end_time` defaulting to the month of `start_time` (15 of 20). Types, required marks and allowed values such as `focus_time` and `out_of_office` (13 of 15). One documented error shape with provider and Truto fields; few request examples on the reference pages read (12 of 15). Deprecated admin endpoints are marked, but no API changelog was found (5 of 15). 20 + 10 + 15 + 13 + 12 + 5 = 75.\n\n### Payments \u0026 pricing: Acuity Scheduling API +10\n\n- Acuity Scheduling API (30): No x402, MPP or L402 (0). Plan prices are public, $20, $34 and $61 a month, with nothing per call (10). A 7-day trial needs no card. Whether the trial includes API access was not established (20). A person signs up in a browser and copies the key or approves OAuth (0). Total 30.\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## Score by category\n\n| Category | Weight | Acuity Scheduling API | Truto Unified Calendar API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 77 | Truto Unified Calendar API +19 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 56 | 75 | Truto Unified Calendar API +19 |\n| Agent ergonomics | 13% (16.2 this run) | 44 | 71 | Truto Unified Calendar API +27 |\n| Security \u0026 auth | 14% (17.5 this run) | 27 | 52 | Truto Unified Calendar API +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Acuity Scheduling API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 15 | 50 | Truto Unified Calendar API +35 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 61 | Truto Unified Calendar API +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **42.5 · E** | **60.4 · C** | |\n\n## Facts side by side\n\n| Fact | Acuity Scheduling API | Truto Unified Calendar API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Squarespace | Yin Yang Inc. |\n| Hosted endpoint | `https://acuityscheduling.com/api/v1` | no (local only) |\n| Transports | HTTP |  |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Squarespace's Developer Terms. The Node.js and PHP SDKs are MIT | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | none | 2026-10-26 |\n| Terms last updated | 2025-12-16 | no date given |\n| Privacy policy last updated | no date given | 2024-10-19 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 9.2k npm/wk | none |\n| Agent reviews | 2.5/5 (4) | none |\n\n## How the scores have moved\n\n### Acuity Scheduling API\n\n- no change on 28 October 2026: correction\n- +0.1 on 27 October 2026: checklist\n\n### Truto Unified Calendar API\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Acuity Scheduling API.** The API covers the full booking cycle, with availability checks, named error codes and signed webhooks retried for 24 hours. API access is sold only on the Premium plan at $61 a month, the single OAuth scope grants the whole account, and no changelog, idempotency key or audit log was found in the reviewed documentation.\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### Acuity Scheduling API\n\n1. Call `/availability/dates` then `/availability/times` with `appointmentTypeID` before `POST /appointments`, which validates the slot as a client would\n2. Avoid `admin=true` unless the owner asks for it, because it skips availability and form validation\n3. Pass `noEmail=true` when a booking or cancellation must not send the client an email or SMS\n4. Check `GET /appointments` filtered by `email` and date before retrying a booking, since no idempotency key is documented\n5. Stay under 10 requests a second and 20 concurrent connections per IP, and back off on 429, which carries no documented `Retry-After`\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, Acuity Scheduling API or Truto Unified Calendar API?\n\nTruto Unified Calendar API scores 60.4 (C) on agent readiness against Acuity Scheduling API's 42.5 (E), and leads in 6 of 7 scored categories. Acuity Scheduling API leads on payments \u0026 pricing.\n\n### Do Acuity Scheduling API and Truto Unified Calendar API need an API key?\n\nAcuity Scheduling API takes an API key or an OAuth sign-in. Truto Unified Calendar API needs an API key.\n\n### Can an agent call Acuity Scheduling API and Truto Unified Calendar API without installing anything?\n\nAcuity Scheduling API has a hosted endpoint at https://acuityscheduling.com/api/v1. 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/acuity-scheduling-vs-truto-calendar.json, and with the fewest tokens: https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"acuity-scheduling\", \"b\": \"truto-calendar\"}`. From a terminal: `anchor compare acuity-scheduling truto-calendar`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/acuity-scheduling.json and https://www.anchorterminal.com/api/v1/tools/truto-calendar.json\n\n## Other comparisons with Acuity Scheduling API or Truto Unified Calendar API\n\n- [Acuity Scheduling API vs Agenda Hero](https://www.anchorterminal.com/compare/acuity-scheduling-vs-agenda-hero.md)\n- [Acuity Scheduling API vs Apiroc Unified Calendar API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-apiroc.md)\n- [Acuity Scheduling API vs Aurinko Calendar API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-aurinko-calendar.md)\n- [Acuity Scheduling API vs Cal.com API v2 + MCP](https://www.anchorterminal.com/compare/acuity-scheduling-vs-cal-com.md)\n- [Acuity Scheduling API vs Calendly API + MCP](https://www.anchorterminal.com/compare/acuity-scheduling-vs-calendly.md)\n- [Acuity Scheduling API vs Cozi Family Organizer](https://www.anchorterminal.com/compare/acuity-scheduling-vs-cozi.md)\n- [Acuity Scheduling API vs Cronofy API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-cronofy.md)\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 Microsoft Graph Calendar API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-microsoft-graph-calendar.md)\n- [Acuity Scheduling API vs Nylas Calendar and Scheduler API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-nylas-calendar.md)\n- [Acuity Scheduling API vs Reclaim.ai](https://www.anchorterminal.com/compare/acuity-scheduling-vs-reclaim-ai.md)\n- [Acuity Scheduling API vs SavvyCal API + MCP](https://www.anchorterminal.com/compare/acuity-scheduling-vs-savvycal.md)\n- [Acuity Scheduling API vs Zoom Scheduler API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-zoom-scheduler.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 Truto Unified Calendar API](https://www.anchorterminal.com/compare/apiroc-vs-truto-calendar.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 Truto Unified Calendar API](https://www.anchorterminal.com/compare/cal-com-vs-truto-calendar.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 Truto Unified Calendar API](https://www.anchorterminal.com/compare/cozi-vs-truto-calendar.md)\n- [Cronofy API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/cronofy-vs-truto-calendar.md)\n- [Google Calendar API vs Truto Unified Calendar API](https://www.anchorterminal.com/compare/google-calendar-api-vs-truto-calendar.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- [Acuity Scheduling API vs YouCanBookMe API](https://www.anchorterminal.com/compare/acuity-scheduling-vs-youcanbookme.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",
  "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": "Acuity Scheduling API vs Truto Unified Calendar API",
        "url": ""
      }
    ],
    "description": "Truto Unified Calendar scores 60.4 (C) to Acuity Scheduling's 42.5 (E) for calendar access. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Acuity Scheduling API E 42.5",
      "Truto Unified Calendar API C 60.4",
      "scores"
    ],
    "h1": "Acuity Scheduling API vs Truto Unified Calendar API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/acuity-scheduling-vs-truto-calendar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Acuity Scheduling vs Truto Unified Calendar for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/acuity-scheduling-vs-truto-calendar"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2580
  },
  "version": 1
}
