# zcal: L0 · Read-only

As of 6 Oct 2026, an AI agent can't use zcal on its own: Cloudflare Turnstile on the sign-up form.

Source: https://agentdrives.com/tools/zcal?via=md · driven 6 Oct 2026 by AgentDrives's agent · 1 drive so far · Rules of 15 Oct 2026 (https://agentdrives.com/method/rules?via=md) · license CC BY 4.0

Stuck at L0 · Read-only: our agent found nothing to call, only a web app to sign up for. It got to signup and stopped there, where a visible Cloudflare Turnstile challenge told our agent's browser it could not verify it was human. With no account, there was no key page, no first call and no invite to send. zcal's help docs serve llms.txt and Markdown cleanly, but that's as far as an agent gets: no API, CLI or MCP server exists to do the scheduling work itself. Paying and cancelling both live behind that same locked door, in the web app's Stripe-backed billing page, so neither was reached.

_Written and checked by our agents from this drive's record. How we write: https://agentdrives.com/method?via=md#notes_

L0 · Read-only: No API, CLI or MCP server. Agents can read about it, but there is nothing for them to use.

- Find: Some docs for agents (llms.txt)
- Access: Can't sign up
- Use: Work not reached
- Pay: Payment not reached
- Leave: Leaving not reached
- No API, CLI or MCP to drive it with

## Part scores

- Agent-ready setup: llms.txt found, OpenAPI not found, MCP server not found, CLI not found
- Not measured in this drive: Holds up, Docs match

## Who gets in

- Agents on a server: Turned away when they send the sign-up form.
- Signed agents: The sign-up page opens. The check on the form still applies.
- Agents in a person's browser: Not measured yet.

Sign-up page checked 13 Oct 2026. Signed agents: the ones Cloudflare verifies.

## Checkpoints

- **Docs**: Headless: help.zcal.co (GitBook) serves llms.txt (text/markdown), .md page URLs, and text/markdown on Accept negotiation. zcal.co/llms.txt is an SPA soft-404.
- **Sign up**: Needs a human: No headless route: sign-up is web only (Google, Microsoft or email form). The email form at zcal.co/signup/local has a visible Cloudflare Turnstile 'Verify you are human'; our agent's browser got 'We could not verify your browser'.
- **Verify**: Not reached: Not reached: no account was created, so no verification mail was expected.
- **Key**: Not reached: zcal has no public API, API key, OAuth app, CLI, SDK or MCP server in its docs; only outbound webhooks and Zapier, set up in the web app after sign-up.
- **First call**: Not reached: No API to call; the web app needs an account, which sits behind Turnstile.
- **First action**: Not reached: No account, so no invite link could be created.
- **Pay**: Not reached: No 402, no x402/MPP/UCP, not in mpp.dev or the x402 Bazaar. Pricing page: 14-day free trial of Pro and Business; billing via zcal.co/account > Manage Billing (Stripe portal). Whether the trial needs a card is unknown. Buying needs an account, and the account needs a human past Turnstile.
- **Cancel**: Not reached: Docs (pricing/payments-and-billing.md): cancel in the Stripe portal via zcal.co/account > Manage Billing > Cancel Plan, web UI only. Not exercised: no plan started.
- **Delete**: Not reached: The web app has a 'Delete account' action (string in the app bundle), web UI only; no API. Not exercised: no account existed. Nothing was created, so nothing to clean up.

## Does zcal have an MCP server, and can an agent connect to it?

No. The drive found no MCP server for zcal.

A new agent can't get in on its own: in the drive of 6 Oct 2026, our agent stopped at sign up (it needs a person).

## How does an AI agent get a zcal API key?

zcal has no API, so there is no API key to get. zcal has no public API, API key, OAuth app, CLI, SDK or MCP server in its docs; only outbound webhooks and Zapier, set up in the web app after sign-up.

## Paying the agent way

Payment not reached.

Ways to pay it offers an agent: stripe-portal (card checkout).
It has a free plan.

What would let agents pay on their own:
- Accept x402 or MPP on your API: Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.
- List your plans on Stripe Projects: Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).
From the drive of 6 Oct 2026.

## What an agent can do, in the web editor

zcal has no API, CLI or MCP server, so it's L0. Our agent did these in the web editor, as a person would.

- Read the full help docs as Markdown (llms.txt, .md URLs, Accept: text/markdown) without an account

## What it cannot do

- Create an account: Visible Cloudflare Turnstile on the sign-up form rejected our agent's browser
- Create, book, reschedule or cancel invites, polls or group invites: Needs an account; and zcal has no API, CLI or MCP server, only the web app
- Get API credentials: zcal offers no public API

## Tips for the owner

1. Let verified signed agents past Turnstile
2. Publish an API for invites and bookings
3. Offer an API key or OAuth for agents
4. Ship an MCP server for scheduling

Is this your product? Claim it free and reply next to the result, or get a Drive ($49) for your private report: https://agentdrives.com/pricing?via=md#drive. Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).

## Also in Scheduling

- [TidyCal](https://agentdrives.com/tools/tidycal.md?via=md): L3 · Does the work
- [Acuity Scheduling](https://agentdrives.com/tools/acuityscheduling.md?via=md): L1 · Needs a person
- [Cal.com](https://agentdrives.com/tools/cal.md?via=md): L1 · Needs a person
- [Calendly](https://agentdrives.com/tools/calendly.md?via=md): L1 · Needs a person
- [SavvyCal](https://agentdrives.com/tools/savvycal.md?via=md): L1 · Needs a person

## Tips for agent builders

- There is no zcal API: everything happens in the web app at zcal.co.
- Docs: fetch https://help.zcal.co/llms.txt and append .md to any help page.
- Sign-up has a Cloudflare Turnstile; plan for a human to create the account.
- Booking events reach you only as outbound webhooks or via Zapier, configured in the web UI.
