{
  "protocolVersion": "0.3.0",
  "name": "François Beausoleil — meeting door",
  "description": "Request and book a conversation or 1:1 session with François Beausoleil on behalf of a real person.",
  "url": "https://beausoleil.ai/api/request-meeting",
  "preferredTransport": "HTTP+JSON",
  "version": "1.1.0",
  "provider": {
    "organization": "François Beausoleil",
    "url": "https://beausoleil.ai"
  },
  "documentationUrl": "https://beausoleil.ai/llms.txt?v=20261113d",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "request_meeting",
      "name": "Request a meeting",
      "description": "POST https://beausoleil.ai/api/request-meeting with { person: { name, email, organization }, need, timezone (IANA), preferred_window (optional), agent: { name, operator } (optional) } to get up to 8 open slots and a request_id. Then POST https://beausoleil.ai/api/book with { request_id, slot } to confirm. GET /api/request-meeting describes the fields. Fallback: email Francois@Beausoleil.ai.",
      "tags": [
        "scheduling",
        "meeting",
        "booking",
        "coaching",
        "nvc"
      ],
      "examples": [
        "Book a 1:1 with François next week to discuss NVC training for my team."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_slots",
      "name": "List open slots (read-only)",
      "description": "Open the readable slots page for the person's time zone: https://beausoleil.ai/slots/America/Toronto, https://beausoleil.ai/slots/America/New_York, https://beausoleil.ai/slots/Europe/London, https://beausoleil.ai/slots/Europe/Amsterdam; other zones follow the same pattern, https://beausoleil.ai/slots/<Area>/<City> (no zone: times in America/Toronto). It lists the open times for the next 7 days, grouped by day, each a link to its booking page. The same data as JSON: GET https://beausoleil.ai/api/slots/<Area>/<City> (?timezone= also works), each slot with start (ISO), start_local (readable, labeled with the zone) and confirm_url. For assistants that can only read: hand the person the link (confirm_url) of the slot they pick and they confirm it on the booking page themselves. No personal data needed. Fallback: email Francois@Beausoleil.ai.",
      "tags": [
        "scheduling",
        "availability",
        "meeting",
        "coaching",
        "nvc"
      ],
      "examples": [
        "When is François free next week? Give me a link to book one of those times."
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}
