HOST
Setup
- 01Paste the skill into Cursor, Claude, or ChatGPT.
- 02Approve in the browser at app.topcal.ai/cli/approve. No key to copy.
- 03Connect Google or Microsoft. Share topcal.ai/{workspace}/{you}/{event}.
Explore endpoints: fetch the OpenAPI spec, or open Scalar. Guide is on the developers page.
Developers: https://topcal.ai/developers
Explore endpoints: https://app.topcal.ai/docs
OpenAPI: https://app.topcal.ai/api/v1/openapi
Discovery manifest: https://app.topcal.ai/.well-known/agent-discovery.json
Run this in your terminal:
curl -sL "https://app.topcal.ai/api/agent/install" | bashDEVELOPERS
Book a link someone sent you, or stand up your own. REST, MCP, and the CLI all hit the same free/busy.
Explore endpointsExplore endpoints · openapi · developers.md · developers.json · SKILL.md
PICK THE JOB
JOB 1
Parse topcal.ai/{workspace}/{username}/{event}. Ask the guest which time works. Email goes to their address. They read the code back.
GET https://topcal.ai/api/v1/public/{workspace}/{username}
GET https://topcal.ai/api/v1/public/{workspace}/{username}/{eventSlug}/slots?timezone={IANA}
POST https://topcal.ai/api/v1/public/{workspace}/{username}/{eventSlug}/otp
POST https://topcal.ai/api/v1/public/{workspace}/{username}/{eventSlug}/bookGET /api/v1/public/{workspace}/{username}
List their event types and any form fields you must collect.
GET /api/v1/public/{workspace}/{username}/{eventSlug}/slots?timezone={IANA}
Read open times. Each slot has UTC and a local display string.
GET /api/v1/public/{workspace}/{username}/{eventSlug}/otp?email=&startAt=&timezone=&name=
Email the code. Response has confirmUrl — use that, not a token field.
GET {confirmUrl}&code={6 digits}
Confirm with the digits the guest read from email. Never guess.
POST /api/v1/public/{workspace}/{username}/{eventSlug}/otp
Same code email. Body: { email, name? }.
POST /api/v1/public/{workspace}/{username}/{eventSlug}/book
Finish the booking. Body: { startAt, code, invitee, customFields? }.
The first GET includes the form and requiredFieldKeys. Collect them in your UI. Send them as customFields on book. A homepage button is still just an HTML link — see embeds.
MCP
Public — no login
https://topcal.ai/api/mcp/public/mcp
Host — after approve
https://app.topcal.ai/api/mcp/mcp
Propose slots and book as the host. /api/mcp without the last segment 404s.
JOB 2
HOST
Set up topcal from https://topcal.ai/skill/SKILL.mdnpm install -g @topcal/cli topcal auth register --wait auto --url https://app.topcal.ai --client-name cursor --agent-name topcal topcal auth status --json topcal calendars connect --provider google topcal calendars status --json
curl -sL "https://app.topcal.ai/api/agent/install" | bashRULES