# ES Luxury Auto Detailing

People can book on the [ES Luxury Auto Detailing booking page](https://book.enhancedint.com/es-luxury). An AI agent can book here directly, with no key and no account: ask for the open times, then book one.

A booking made this way is sent to the business as a request. The business confirms it, and the agent should tell the customer so.

## About

- Business: Detailing.
- Time zone: `America/Los_Angeles`.
- Phone: (619) 863-7033.

## Services

- Bronze Package (package). Quick exterior refresh. $100. 1 h. Slug: `bronze`.
- Ceramic Coating (add-on). Full vehicle ceramic coating. $500. 8 h. Slug: `ceramic-coating`.
- Silver Package (package). Interior & exterior care. $350. 3 h. Slug: `silver`.
- Paint Correction (add-on). Stage 2 paint correction. $300. 6 h. Slug: `paint-correction`.
- Gold Package (package). Full premium detail. $450. 5 h. Slug: `gold`.
- Interior Deep Clean (add-on). Thorough interior restoration. $150. 2 h. Slug: `interior-deep-clean`.
- Odor Removal (add-on). Professional odor elimination. $100. 1 h 30 min. Slug: `odor-removal`.
- Headlight Restoration (add-on). Restore cloudy headlights. $75. 1 h. Slug: `headlight-restoration`.
- Engine Bay Detail (add-on). Engine bay cleaning & dressing. $85. 1 h. Slug: `engine-bay-detail`.

## Where the work happens

- The business comes to the customer.

## Hours

- Monday: 8:00 AM to 6:00 PM
- Tuesday: 8:00 AM to 6:00 PM
- Wednesday: 8:00 AM to 6:00 PM
- Thursday: 8:00 AM to 6:00 PM
- Friday: 8:00 AM to 6:00 PM
- Saturday: 8:00 AM to 6:00 PM
- Sunday: 8:00 AM to 6:00 PM

## What a booking needs

A booking is sent to ES Luxury Auto Detailing as a request. The owner approves it or suggests another time, and the customer is emailed either way.

- What to book: items: a list of {slug, quantity?, label}, each slug from \`services\`. \`label\` names the car the service is for (for example "2023 Porsche 911") and is required on every item. Give each car exactly one package, and any add-ons for it, as separate items that share that car's label. A second car is a second package with its own label. Start from a package, never an add-on. quantity is a whole number, 1 when left out.
- The customer, `name`: required: the customer's full name, at most 200 characters
- The customer, `email`: required: an email address, at most 320 characters; the confirmation is sent to it
- The customer, `phone`: optional: a phone number, at most 50 characters
- The customer, `time_zone`: optional: an IANA zone such as "Europe/London"
- Service address: required, text. Text on one line, at most 500 characters. Answer id: `address`. Example: `"123 Main St, Poway, CA 92064"`.

## Limits

- Reading the card and times: 60 a minute from one network address.
- Bookings: 10 an hour from one network address.
- Bookings by agents: 30 a day for this business in all.
- One request for times may span at most 14 days.
- A time can be booked at most 60 days ahead.

A request over a limit is answered 429 with a Retry-After header.

## Cancelling

Cancel with the booking's manage token. A request still waiting is withdrawn; a booking the business has approved or taken in hand must be changed with the business, and the answer says how to reach it.

## Endpoints

- `GET https://book.enhancedint.com/es-luxury/agent`: the business card, as JSON
- `POST https://book.enhancedint.com/es-luxury/agent/times`: the open times that fit what is being booked
- `POST https://book.enhancedint.com/es-luxury/agent/book`: book one of them
- `GET https://book.enhancedint.com/es-luxury/agent/bookings/{reference}`: check a booking, with the token the booking returned
- `POST https://book.enhancedint.com/es-luxury/agent/bookings/{reference}/cancel`: cancel it, with the same token
- `GET https://book.enhancedint.com/es-luxury/agent/openapi.json`: the OpenAPI description of all of the above
- `POST https://book.enhancedint.com/es-luxury/mcp`: the same, as an MCP server
- `GET https://book.enhancedint.com/es-luxury/agents.md`: this page, as Markdown
- `GET https://book.enhancedint.com/es-luxury/llms.txt`: llms.txt for this business

## Example

Ask for the open times, then book one of them. These bodies are built from this business's own services and show the exact shape; their values are examples, so use the customer's own. The OpenAPI description is the authority.

```
curl -s -X POST 'https://book.enhancedint.com/es-luxury/agent/times' \
  -H 'Content-Type: application/json' \
  -d '{
  "items": [
    {
      "slug": "bronze",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "ceramic-coating",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "silver",
      "label": "2021 Honda Civic"
    }
  ],
  "from": "2026-10-06",
  "to": "2026-10-12",
  "windows": [
    {
      "start": "2026-10-06T08:00:00-07:00",
      "end": "2026-10-06T18:00:00-07:00"
    }
  ]
}'
```

Then book one of the times it returned. Send your own `idempotency_key`: a fresh random string for each booking, 32 to 255 letters, digits, dashes or underscores (a UUID without hyphens is right), never a counter or a word. The example's is a placeholder the door refuses.

```
curl -s -X POST 'https://book.enhancedint.com/es-luxury/agent/book' \
  -H 'Content-Type: application/json' \
  -d '{
  "items": [
    {
      "slug": "bronze",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "ceramic-coating",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "silver",
      "label": "2021 Honda Civic"
    }
  ],
  "start": "2026-10-06T08:00:00-07:00",
  "customer": {
    "name": "Ada Lovelace",
    "email": "ada@example.com",
    "phone": "(619) 555-0123"
  },
  "answers": {
    "address": "123 Main St, Poway, CA 92064"
  },
  "agent": {
    "name": "Your agent name"
  },
  "idempotency_key": "replace-this-with-a-fresh-random-key-0000"
}'
```

As an MCP server (no key, JSON over POST): `https://book.enhancedint.com/es-luxury/mcp`. Tools: `get_business`, `find_times`, `book`, `get_booking`, `cancel_booking`.
