Developers
The MCP scheduling server.
Drop it into Claude Code, Cursor, or any MCP host in 30 seconds. Two tools work with no auth at all; three more book, reschedule, and cancel real meetings with a bearer token. This page is the whole setup: the snippets, the tool reference, and nothing that doesn't exist.
The 60-second setup
One endpoint, every host: https://buildoutschedule.com/api/mcp. Streamable HTTP, stateless, JSON-RPC 2.0. The bearer header is only for booking; leave it out and you still get event types and live availability.
Claude Code
One command. Add the header line only if you want booking; reads work without it.
claude mcp add --transport http buildout-schedule https://buildoutschedule.com/api/mcp \
--header "Authorization: Bearer bos_mcp_YOUR_TOKEN"
# Or in .mcp.json at your project root:
{
"mcpServers": {
"buildout-schedule": {
"type": "http",
"url": "https://buildoutschedule.com/api/mcp",
"headers": { "Authorization": "Bearer bos_mcp_YOUR_TOKEN" }
}
}
}Cursor
Drop this in .cursor/mcp.json (project) or ~/.cursor/mcp.json (global).
{
"mcpServers": {
"buildout-schedule": {
"url": "https://buildoutschedule.com/api/mcp",
"headers": { "Authorization": "Bearer bos_mcp_YOUR_TOKEN" }
}
}
}Windsurf
In ~/.codeium/windsurf/mcp_config.json. If your Windsurf build only runs local servers, use the mcp-remote bridge shown for Claude Desktop below.
{
"mcpServers": {
"buildout-schedule": {
"serverUrl": "https://buildoutschedule.com/api/mcp"
}
}
}Claude Desktop
Two paths. Settings → Connectors → Add custom connector with the URL above is the no-file path. The config-file path bridges through mcp-remote:
{
"mcpServers": {
"buildout-schedule": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://buildoutschedule.com/api/mcp",
"--header", "Authorization: Bearer bos_mcp_YOUR_TOKEN"
]
}
}
}Zed
Zed runs context servers as local commands, so it bridges through mcp-remote too. In settings.json:
{
"context_servers": {
"buildout-schedule": {
"command": {
"path": "npx",
"args": ["-y", "mcp-remote", "https://buildoutschedule.com/api/mcp"]
}
}
}
}The five tools
The schemas below are the ones the server actually serves from tools/list, not a docs copy that drifts.
list_public_event_types
no authEvery bookable event type a workspace offers publicly. The workspace slug is the first path segment of a buildoutschedule.com booking URL.
Input
{
"workspace": "string (required) — workspace slug, e.g. \"acme\""
}Output
{
"workspace": { "slug", "name", "time_zone" },
"event_types": [{
"slug", "title", "description", "duration_minutes",
"location_type",
"price": { "amount_cents", "currency" } | null,
"booking_url"
}]
}Example tools/call params
{ "name": "list_public_event_types",
"arguments": { "workspace": "acme" } }get_availability
no authOpen, bookable slots for one event type over a date range. Same engine as the booking page: connected calendars, buffers, minimum notice, and existing bookings already accounted for. Returns UTC instants, capped at 120 slots per call.
Input
{
"workspace": "string (required)",
"event_type": "string (required) — event type slug",
"start_date": "YYYY-MM-DD (optional, UTC, defaults to today)",
"days": "integer 1-30 (optional, defaults to 7)"
}Output
{
"event_type": { "slug", "title", "duration_minutes" },
"range": { "start", "end" },
"slot_count": number,
"slots": ["2026-09-01T15:00:00.000Z", ...],
"truncated": boolean,
"booking_url": string
}Example tools/call params
{ "name": "get_availability",
"arguments": { "workspace": "acme",
"event_type": "intro-call", "days": 7 } }create_booking
bearer tokenBook a slot on the token workspace. slot_start must be a slot get_availability returned; the server re-checks the calendar at write time and rejects a taken slot. Free event types only: paid ones run through Stripe Checkout on the booking page.
Input
{
"event_type": "string (required) — slug on the token workspace",
"slot_start": "ISO 8601 with offset (required)",
"attendee_name": "string (required)",
"attendee_email": "string (required)",
"attendee_time_zone": "IANA zone (required), e.g. America/Chicago",
"notes": "string (optional, passed to the host)"
}Output
{
"booked": true,
"booking_id", "starts_at", "ends_at", "location",
"join_url", "cancel_url", "reschedule_url"
}Example tools/call params
{ "name": "create_booking", "arguments": {
"event_type": "intro-call",
"slot_start": "2026-09-01T15:00:00Z",
"attendee_name": "Jordan Wells",
"attendee_email": "jordan@example.com",
"attendee_time_zone": "America/Chicago" } }reschedule_booking
bearer tokenMove an existing booking on the token workspace to a new slot. Check get_availability first; the server re-verifies the new slot is free. Attendee and host get the update email.
Input
{
"booking_id": "UUID (required)",
"slot_start": "ISO 8601 with offset (required)"
}Output
{
"rescheduled": true,
"booking_id", "starts_at", "ends_at", "location", "join_url"
}Example tools/call params
{ "name": "reschedule_booking", "arguments": {
"booking_id": "BOOKING_UUID",
"slot_start": "2026-09-02T16:00:00Z" } }cancel_booking
bearer tokenCancel an existing booking, acting as the host. Paid bookings refund in full per the host-cancel policy. Attendee and host get the email.
Input
{
"booking_id": "UUID (required)"
}Output
{
"canceled": true,
"booking_id", "event_title", "refunded_cents"
}Example tools/call params
{ "name": "cancel_booking",
"arguments": { "booking_id": "BOOKING_UUID" } }Auth: one token, minted in settings
A workspace owner mints a token at Settings → MCP access. The plaintext shows once; store it where you store secrets. Every write call sends it as Authorization: Bearer bos_mcp_…
A token acts as the workspace host: it books, reschedules, and cancels the way you would, scoped to your workspace and nothing else. Revoke it from the same page and the tool holding it stops on its next request. Running agents at volume? The metered tier is documented at Enterprise Agent Access.
How do I add Buildout Schedule to Claude Code?
One command: claude mcp add --transport http buildout-schedule https://buildoutschedule.com/api/mcp and you have read access to every public workspace. Add --header "Authorization: Bearer <token>" with a token from Settings → MCP access and Claude Code can also book, reschedule, and cancel on your workspace.
Can Cursor book meetings via Buildout Schedule?
Yes. Point .cursor/mcp.json at the endpoint with a bearer token in the headers block and Cursor gets the same five tools every MCP host gets, including create_booking. Bookings made this way are real: calendar invite, confirmation email, reminders, the works.
What tools does the Buildout Schedule MCP server expose?
Five. list_public_event_types and get_availability work with no auth at all. create_booking, reschedule_booking, and cancel_booking need a bearer token minted by a workspace owner at /settings/mcp. That is the whole surface: no hidden tools, no beta flags.
Does the Buildout Schedule MCP server need an API key?
Not for reading. Anyone with a workspace slug can list event types and check live availability, the same as anyone with the booking link can see the booking page. Writing (book, reschedule, cancel) needs a bos_mcp_ bearer token, shown once at mint time and revocable any time.