{
  "name": "New Jersey Flooring Consultant",
  "description": "Free service that connects New Jersey homeowners with Sparkle Floors and Carpet (rated 4.9 on Google) for free, no-obligation flooring estimates. An agent can book an estimate appointment directly via the Cal.com booking link, or submit a callback lead to the intake endpoint.",
  "url": "https://newjerseyflooringconsultant.com/api/intake",
  "protocolVersion": "0.2.0",
  "provider": {
    "organization": "New Jersey Flooring Consultant",
    "url": "https://newjerseyflooringconsultant.com/"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "get_estimate_availability",
      "name": "get_estimate_availability",
      "description": "Get open appointment times for a free flooring estimate with Sparkle Floors and Carpet. GET https://newjerseyflooringconsultant.com/api/slots?start=YYYY-MM-DD&end=YYYY-MM-DD&timeZone=America/New_York. Returns { ok, slots: { 'YYYY-MM-DD': [ { start } ] } }. Each 'start' is an ISO datetime you can pass to book_flooring_estimate. No authentication required. Call this first, then book one of the returned slots.",
      "tags": ["flooring", "availability", "appointment", "estimate", "new-jersey"],
      "examples": [
        "What times are open for a flooring estimate next week?",
        "Find availability for an estimate between June 15 and June 30."
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"],
      "parameters": {
        "type": "object",
        "required": ["start", "end"],
        "properties": {
          "start":    { "type": "string", "description": "Start of the date window, ISO date e.g. 2026-06-15." },
          "end":      { "type": "string", "description": "End of the date window, ISO date e.g. 2026-06-30." },
          "timeZone": { "type": "string", "description": "IANA timezone for the returned slot times. Defaults to America/New_York." }
        }
      }
    },
    {
      "id": "book_flooring_estimate",
      "name": "book_flooring_estimate",
      "description": "Book a free, no-obligation flooring estimate appointment with Sparkle Floors and Carpet. This is the primary action. POST JSON to https://newjerseyflooringconsultant.com/api/book with name, email, and a 'start' time obtained from get_estimate_availability (GET /api/slots). Returns { ok: true, bookingUid, booking }. No authentication required. For a human, the same booking is available in a browser at https://cal.com/dustin-crump/free-estimates, and is published in the site JSON-LD as a schema.org ReserveAction.",
      "tags": ["flooring", "home-improvement", "booking", "appointment", "estimate", "new-jersey"],
      "examples": [
        "Book a free flooring estimate for a homeowner in Hoboken, NJ.",
        "Schedule an estimate appointment with Sparkle Floors and Carpet for June 15 at 11am."
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"],
      "parameters": {
        "type": "object",
        "required": ["name", "email", "start"],
        "properties": {
          "name":     { "type": "string", "description": "Homeowner's full name." },
          "email":    { "type": "string", "description": "Homeowner's email address (booking confirmation is sent here)." },
          "start":    { "type": "string", "description": "Appointment start time, ISO datetime from get_estimate_availability, e.g. 2026-06-15T11:00:00-04:00." },
          "timeZone": { "type": "string", "description": "IANA timezone of the homeowner. Defaults to America/New_York." },
          "phone":    { "type": "string", "description": "Best contact phone number (optional)." },
          "notes":    { "type": "string", "description": "Project details: rooms, square footage, flooring type (optional)." }
        }
      }
    },
    {
      "id": "submit_flooring_lead",
      "name": "submit_flooring_lead",
      "description": "Submit a New Jersey homeowner's flooring project as a lead. POST a JSON body to the intake url. Returns { ok: true, message }. Requires name and phone; email, zip, type, and message are optional but improve matching.",
      "tags": ["flooring", "home-improvement", "lead", "new-jersey", "quote"],
      "examples": [
        "Get my client a hardwood flooring quote in Hoboken, NJ.",
        "Submit a carpet installation lead for a homeowner in ZIP 07030."
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"],
      "parameters": {
        "type": "object",
        "required": ["name", "phone"],
        "properties": {
          "name":    { "type": "string", "description": "Homeowner's full name." },
          "phone":   { "type": "string", "description": "Best contact phone number." },
          "email":   { "type": "string", "description": "Homeowner's email address." },
          "zip":     { "type": "string", "description": "New Jersey ZIP code of the project." },
          "type":    { "type": "string", "description": "Flooring type: Hardwood, Laminate, Luxury vinyl / LVP, Tile, or Carpet." },
          "message": { "type": "string", "description": "Project details: rooms, square footage, timeline." }
        }
      }
    }
  ]
}
