# cancel_booking

Cancels a booking and applies the business's cancellation policy. Returns whether cancellation was free, any fee, and any refund. Notifies the business. This cannot be undone.

Canonical: https://bookwise.live/docs/tools/cancel_booking

Version: 1.1.0
Scope: Directory + business
Authentication: As specified in parameters
Category: Booking management

## Parameters

- **bookingId** (string; required): bookingId: the booking ID (same as the holdId), e.g. "bkg_01j…"
- **accessToken** (string; required): accessToken: secret returned after verification, immediate confirmation, or recover_booking_access; also works while awaiting payment or approval
- **reason** (string; optional): reason: optional short reason, e.g. "plans changed"

## Example MCP call

Replace placeholders with returned IDs and saved credentials. Example dates must be replaced with the customer's future dates.

```json
{
  "name": "cancel_booking",
  "arguments": {
    "bookingId": "<bookingId>",
    "accessToken": "<saved-access-token>"
  }
}
```

## Input JSON Schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string",
      "minLength": 1,
      "description": "bookingId: the booking ID (same as the holdId), e.g. \"bkg_01j…\""
    },
    "accessToken": {
      "type": "string",
      "minLength": 10,
      "description": "accessToken: secret returned after verification, immediate confirmation, or recover_booking_access; also works while awaiting payment or approval"
    },
    "reason": {
      "description": "reason: optional short reason, e.g. \"plans changed\"",
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "bookingId",
    "accessToken"
  ]
}
```

## Output JSON Schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "const": "cancelled"
    },
    "fee": {
      "type": "object",
      "properties": {
        "amountMinor": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        }
      },
      "required": [
        "amountMinor",
        "currency",
        "formatted"
      ],
      "additionalProperties": false
    },
    "refund": {
      "type": "object",
      "properties": {
        "amountMinor": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        }
      },
      "required": [
        "amountMinor",
        "currency",
        "formatted"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "bookingId",
    "status",
    "fee",
    "refund"
  ],
  "additionalProperties": {}
}
```

## Annotations

```json
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": true,
  "openWorldHint": true
}
```

On failure, inspect isError and content; domain errors may include structuredContent.code, retryable, details.fields or alternatives. Annotations are behavior hints, not authorization.
