Agent readiness · calendly.com
2026-08-12 10:16 UTC · formula v9.2 · 3.9s
You publish files for machines to read, but nothing that tells one how to become a customer.
None of the nine known agent entry paths answered, including /agent-signup.md and /.well-known/agent-access.json. Reading is solved on your site; joining is not.
- A · Discovery
- 5/6
- B · Agent entry
- 2/4
- C · Registration
- 0/1
- D · Provisioning
- 1/3
- E · Integration
- 0/1
of the 15 points that apply to you and we could measure · 2 of 17 were not scored
You 8 · category median 8 · best cal.com 10 · 15 deterministic HTTP checks, published formula
Fix this first
This is the whole list: everything we could measure and you do not pass. Another 2 points sit behind checks we could not evaluate on your domain, and each of those lines below says what would make it measurable.
- 1llms.txt publishedminutes · +1
Your llms.txt is already there. 1 of the 12 links we sampled are gone, starting with https://calendly.com/blog/calendly-vs-hubspot-meetings. Fix those and this passes: a map an agent follows into a 404 costs it the budget it came with.
- 2Agent entry pointan afternoon · +2
Publish /agent-signup.md: the path from nothing to a working key, written as steps for a machine rather than a tour for a person. Ours is at /agent-signup.md if you want a worked example, and it says plainly that we have nothing to sign up for.
- 3Programmatic key provisioningan afternoon · +2
Document how a key is created without opening a dashboard: management API, service account or CLI. If no such path exists, that gap is the finding, not the docs.
Cheap too, same week
- Machine-readable API description an afternoon · +1Publish an OpenAPI file at /openapi.json, or serve markdown when a client sends Accept: text/markdown. Either one stops agents guessing your API.
Then, when you have room
- Signup reachable without a browser a project · +1Let https://calendly.com/signup render its form in server HTML and stop refusing non-browser requests to it.
Take it with you
5 of the checks an agent depends on, calendly.com does not pass.
Send yourself the list above with the checks that cost the most, and a permanent link. Whoever owns the fix is usually not the person who ran the scan.
One email with the report, and one follow-up asking what you did with it. No newsletter, no sequence. Delete on request at hello@letagentsin.com.
None of this tells you whether an agent picked you
Everything above is a file an agent could read. Whether one actually chose you is a different measurement, and we have not run it on calendly.com. What we have run it on is a rich text editor vendor: six agents, one brief, six isolated copies of a real codebase. All six picked the same competitor, and the vendor being studied was never named, not even on a rejection list, while the runs named and dismissed ten alternatives between them. In an earlier round, run before we isolated the copies, it was named twice and struck off both times in four words: Fully commercial, licence key required. That study is about them, not about you. It is here because it is the difference between a file and a decision.
Against scheduling and calendar apis
You are 3 of 6 in a category where a developer is trying to book a meeting into a calendar you do not control.
- 1cal.com10/15
- 2nylas.com9/14
- 3calendly.comyou8/15
- 4savvycal.com8/16
- 5timekit.io7/14
- 6cronofy.com6/15
Where competitors pass and calendly.com does not
- Machine-readable API descriptioncal.com · nylas.com · cronofy.com · timekit.io
- llms.txt publishedcal.com · timekit.io
- Signup reachable without a browsersavvycal.com
- Programmatic key provisioningnylas.com
Only domains we have actually scanned appear here, so the ranking is a floor: a competitor missing from the list has not been measured, not beaten.
By stage
Every check
Each line is one HTTP observation with a published rule, so you can rerun any of them yourself. Most are the same tomorrow if you are: the two that are not are the bot gate and the pricing page, which answer inconsistently on their own, which is why those run more than once and say so when the tries disagreed. PASS and PART are counted. UNMEASURED means we could not evaluate it, N/A means it does not apply to a product like yours, and neither is in the score or its denominator. See the formula
A · Discovery
- PASSAnswers an agent user-agentAnswered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/methodology)
- FAILllms.txt publishedllms.txt present at https://calendly.com/llms.txt and https://developer.calendly.com/llms.txt, but 1 of the 12 links we sampled across the file are gone, starting with https://calendly.com/blog/calendly-vs-hubspot-meetingsA curated map of your docs is the cheapest way to control what an agent reads first. Worth one point and not more: in eighteen isolated agent runs across four categories, not one cited llms.txt among its sources, and an independent ninety-day measurement published by Otterly in February 2026 found it served 84 requests against 62,100 AI-bot visits.
- PASSDocs readable without JavaScript8,926 characters of text without JS, on https://developer.calendly.com/docs/authentication/refresh-token-rotation-guide rather than on https://developer.calendly.com/
- PASSOn-demand agents not blockedNo on-demand agent is blocked
- PASSPaths robots.txt points at answerthe 2 concrete paths your robots.txt allows all answer
- PASSNo punishing crawl delayNo Crawl-delay applies to the agents we check
B · Agent entry
- FAILAgent entry pointNone of the 9 known agent entry paths returns a file rather than your page shellA markdown file written for a machine turns a guessing game into a procedure it can follow.
- PASSOAuth dynamic client registrationregistration_endpoint published
- PASSMCP surfaceLive MCP endpoint at https://mcp.calendly.com, answered 401 with an auth challenge
C · Registration
- UNMEASUREDNo CAPTCHA in the signup HTMLUnmeasurable: the signup form at https://calendly.com/signup is not in the server HTML, so its gates are not eitherServer-render the form, or tell us the endpoint it posts to, and the gates become visible to us and to an agent.
- FAILSignup reachable without a browserhttps://calendly.com/signup is reachable, but its form needs JavaScriptIf a bare HTTP request gets a 403, the agent never sees the form at all.
D · Provisioning
- FAILProgrammatic key provisioningNone of the 7 provisioning phrases appears in the 6 documents we readDocumented key creation is the difference between a two-minute integration and a support ticket.
- PASSFree tier or no-card trial stated in textFree tier or no-card signals at https://calendly.com/pricing: "Get started for free", "started for free", "Try for free"
E · Integration
- UNMEASUREDTyped SDK on the registryUnmeasurable: we could not identify the package a developer installs to use you, from your site, your docs or a registry searchName your package once in your docs, or link it from your repository, and we stop guessing. If your product is not something a developer installs, this check does not apply to you: unmeasured is out of the score and out of the denominator, so it costs you nothing.
- FAILMachine-readable API descriptionNo OpenAPI spec at the 5 usual paths, none declared by https://developer.calendly.com/, and no markdown negotiationAn OpenAPI file or markdown negotiation lets an agent read your API instead of guessing it.Point at your spec from your docs page with rel="service-desc" and an agent finds it without guessing.
What we discovered on the way
- Docs
- https://developer.calendly.com/ · linked from the site
- Pricing
- https://calendly.com/pricing · linked from the site
- Signup
- https://calendly.com/signup · linked from the site
- npm package
- not found
- GitHub
- not found
- Package licence
- not found
- Crawl-delay
- none
- Content-Signal
- none
- Blocked on-demand agents
- none