{
  "name": "BusyBoard",
  "description": "Scheduling tool for sharing availability and finding mutual free time without exposing calendar details. Others only ever see free/busy \u2014 never event titles, attendees, or locations.",
  "homepage": "https://busyboard.app",
  "documentation": {
    "llms": "https://busyboard.app/llms.txt",
    "api": "https://busyboard.app/docs/api",
    "agents": "https://busyboard.app/docs/agents"
  },
  "api": {
    "baseUrl": "https://busyboard.app/api/v1",
    "openapi": "https://busyboard.app/openapi.yaml",
    "auth": {
      "type": "http_bearer",
      "keyPrefix": "bb_live_",
      "createAt": "https://busyboard.app/settings/api",
      "notes": "Create an API key in Settings \u2192 API & Integrations. Read scopes are free; write scopes require a Pro plan."
    }
  },
  "mcp": {
    "endpoint": "https://busyboard.app/api/mcp",
    "transport": "streamable-http",
    "auth": "Authorization: Bearer <api key>",
    "tools": [
      "get_my_schedule",
      "get_my_availability",
      "get_person_availability",
      "list_my_people",
      "find_mutual_time",
      "propose_booking"
    ]
  },
  "shareLinks": {
    "pattern": "https://busyboard.app/a/{slug}/{token}",
    "contentNegotiation": "GET a share link with 'Accept: application/json' (and no text/html) \u2014 or simply append ?format=json to the URL \u2014 to receive structured free/busy availability instead of HTML. The token in the URL is the credential; no other auth is needed. Default window is the next 14 days; pass startDate/endDate ISO query params for a specific range (max 5 weeks).",
    "booking": "When the JSON response includes links.book, POST there with { token, startTime, durationMinutes, name, email, note? } to request a booking. Requests are approval-first by default \u2014 the calendar owner confirms."
  },
  "privacy": "Availability responses contain merged, anonymized busy intervals only. No event content is ever exposed to other parties or via share links."
}
