# Cancel a Demo Booking

> Cancel a Demo Booking is a paid API for AI agents from agents.zeroclick.ai, paid per call via MPP, price unknown, status unknown (last checked 2026-09-10).

Cancels a confirmed demo booking by booking ID, returning the updated booking record with status set to 'cancelled'.

## Facts

- Endpoint: POST https://agents.zeroclick.ai/demo/bookings/{booking_id}/cancel
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-10
- Activations on Zero: 0
- Provider: agents.zeroclick.ai
- Website: https://agents.zeroclick.ai
- Canonical page: https://www.zero.xyz/c/agents-zeroclick-ai-cancel-a-demo-booking-b0efc836
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_J304LtaeD6UA_UwFLHIau

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-zeroclick-ai-cancel-a-demo-booking-b0efc836 -d '<json body>'
```

Example prompt: Please cancel my ZeroClick demo booking with ID abc-12345 — the reason is that the customer is no longer interested.

## When to prefer this

Use this endpoint when an agent or user needs to definitively cancel a previously confirmed demo booking and optionally record the cancellation reason. It is idempotent — calling it on an already-cancelled booking safely returns the current cancelled state. Prefer this over simply abandoning a booking, as it properly updates the booking record and frees the time slot.

## Known failure modes

- Invalid or unknown booking_id returns a not-found error
- Attempting to cancel a booking in a non-cancellable state (e.g. 'failed') may return an error
- Reason string exceeding 500 characters is rejected
- Missing booking_id path parameter causes a bad request error
- Network timeouts may require retry

## How this service works

Cancels a confirmed demo booking created at /demo/bookings. The reason is optional. An already cancelled booking returns its retained state. The response is the booking record with status cancelled.

## Output

Returns the full booking record as a JSON object including booking_id, status (set to 'cancelled'), requested_start, scheduled_start, scheduled_end, time_zone, service_key, created_at, and updated_at timestamps. If the booking was already cancelled, the retained cancelled state is returned without error.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "reason": {
   "type": "string",
   "example": "Customer requested cancellation",
   "maxLength": 500
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "status": {
   "enum": [
    "requested",
    "processing",
    "confirmed",
    "cancelled",
    "failed"
   ],
   "type": "string"
  },
  "time_zone": {
   "type": "string"
  },
  "booking_id": {
   "type": "string"
  },
  "created_at": {
   "type": "string",
   "format": "date-time"
  },
  "updated_at": {
   "type": "string",
   "format": "date-time"
  },
  "service_key": {
   "type": "string"
  },
  "scheduled_end": {
   "type": "string",
   "format": "date-time"
  },
  "requested_start": {
   "type": "string",
   "format": "date-time"
  },
  "scheduled_start": {
   "type": "string",
   "format": "date-time"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-zeroclick-ai-cancel-a-demo-booking-b0efc836/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.zeroclick.ai](https://www.zero.xyz/host/agents.zeroclick.ai/llms.txt)
