{"schemaVersion":"1.0","name":"topcal","description":"Agent-native, multi-workspace scheduling. Every operation a human can do is reachable by a verified agent through the same typed surface.","homepage":"https://topcal.app","documentation":"https://topcal.app/docs","transports":{"rest":{"baseUrl":"https://topcal.app/api/v1","openapi":"https://topcal.app/api/v1/openapi","spec":"openapi-3.1"},"mcp":{"baseUrl":"https://topcal.app/api/mcp","transport":"streamable-http","spec":"modelcontextprotocol/2025-06-18","endpoints":{"streamableHttp":"https://topcal.app/api/mcp/mcp"}}},"authentication":{"apiKey":{"scheme":"http-bearer","header":"Authorization","format":"Bearer tofu_(live|test)_<32-char-secret>","scopesUrl":"https://topcal.app/docs/api-keys"},"agentIntent":{"scheme":"http-header","header":"X-Topcal-Agent-Intent","format":"JWT (HS256, 15-minute TTL by default)","issueOperation":"agent_verify_identity","revokeOperation":"agent_revoke_identity"}},"publicBooking":{"requiresApiKey":false,"antiAbuse":"email-otp + disposable-email block + per-email rate limit","webFetch":["GET /api/v1/public/{workspace}/{username} — list bookable event types (+ hostTimezone, invitee fields, form definitions)","GET /api/v1/public/{workspace}/{username}/{eventSlug}/slots — slots with UTC + bookerLocal display (pass timezone=<booker IANA>), availability.hostSchedule weekly hours, default limit 50, bookingProtocol (topcal.public_book.v1) + howToBook","GET /api/v1/public/{workspace}/{username}/{eventSlug}/otp?email=&startAt=&timezone=&name= — emails a 6-digit code; returns confirmUrl + codeExpiresInSeconds (use confirmUrl only — no separate token field)","GET /api/v1/public/{workspace}/{username}/{eventSlug}/confirm?confirmKey=&code= — verify confirmKey + OTP → { booking: { id, startAt, endAt, status, joinUrl? }, message }"],"rest":["POST /api/v1/public/{workspace}/{username}/{eventSlug}/otp","POST /api/v1/public/{workspace}/{username}/{eventSlug}/book"],"mcp":{"endpoint":"https://topcal.app/api/mcp/public/mcp","transport":"streamable-http","requiresAuth":false,"tools":["find_bookable_calendar","get_availability","request_booking_code","confirm_booking"]}},"capabilities":{"openBookerPlane":true,"agentSignup":true,"agentBilling":true,"agentBooking":true,"multiWorkspace":true,"configurableForms":true,"ruleBasedRouting":true,"googleCalendar":true,"microsoftCalendar":true,"caldav":false},"cli":{"name":"topcal","install":"npm install -g @topcal/cli","installScript":"https://topcal.app/api/agent/install","bootstrapCommand":"curl -sL \"https://topcal.app/api/agent/install\" | bash","loginCommand":"topcal login"},"onboarding":{"homepage":"https://topcal.app","scrapeTarget":"https://topcal.app#topcal-agent-onboarding","jsonLdType":"AgentOnboarding"},"contact":{"support":"support@topcal.ai","issues":"https://github.com/bcharleson/topcal-app/issues"}}