{
  "name": "Goil calendar booking (agent-ready)",
  "description": "Assists other agents in discovering Goil calendar widgets, checking availability, and creating bookings via the public widget HTTP API and per-tenant llms.txt / agent.json / OpenAPI surfaces.",
  "version": "0.1.0",
  "documentationUrl": "https://calendar.widgets.goil.app/.well-known/api-catalog",
  "provider": {
    "organization": "Goil Technologies",
    "url": "https://goil.com"
  },
  "supportedInterfaces": [
    {
      "url": "https://calendar.widgets.goil.app/a2a/v1",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "fetch_widget_configuration",
      "name": "Get widget configuration",
      "description": "Returns widget metadata, including registration groups. Each group's `id` is the `groupId` required in booking and register-and-book bodies.",
      "tags": [
        "calendar",
        "booking",
        "goil",
        "widget-api",
        "configuration"
      ],
      "examples": [
        "Get widget configuration (groups → groupId)"
      ]
    },
    {
      "id": "fetch_calendars",
      "name": "List calendars",
      "description": "List calendars exposed by this widget.",
      "tags": [
        "calendar",
        "booking",
        "goil",
        "widget-api",
        "configuration"
      ],
      "examples": [
        "List calendars"
      ]
    },
    {
      "id": "fetch_services",
      "name": "List services",
      "description": "List services for a given calendar.",
      "tags": [
        "calendar",
        "booking",
        "goil",
        "widget-api",
        "configuration"
      ],
      "examples": [
        "List services"
      ]
    },
    {
      "id": "fetch_available_time_slots",
      "name": "Check availability",
      "description": "Return available time slots for a service within a date range (inclusive).",
      "tags": [
        "calendar",
        "booking",
        "goil",
        "widget-api",
        "availability"
      ],
      "examples": [
        "Check availability"
      ]
    },
    {
      "id": "create_booking_existing_user",
      "name": "Create booking (existing user)",
      "description": "Create a booking for a user identified by phone (after checkPhone flow in the widget).",
      "tags": [
        "calendar",
        "booking",
        "goil",
        "widget-api",
        "reservations"
      ],
      "examples": [
        "Create booking (existing user)"
      ]
    },
    {
      "id": "create_booking_new_user",
      "name": "Create booking (new user)",
      "description": "Register a new customer and create a booking in one call.",
      "tags": [
        "calendar",
        "booking",
        "goil",
        "widget-api",
        "reservations"
      ],
      "examples": [
        "Create booking (new user)"
      ]
    }
  ]
}