# book_hold_slot

Hold one open time slot (a self-expiring reservation, about 10 minutes) and get back a confirmation URL. The first argument, holdLabel, must be copied exactly from the chosen book_get_availability slot so the approval card describes the true booking details. Caboo validates holdLabel against slug, serviceKey, and slotId before creating any hold. Give the user ONLY the confirmUrl — Caboo's page collects their contact details and consent; never ask for name, email, or phone in chat. If the slot was just taken, the error includes alternative open times to offer instead.

Agent View of the PolicyLayer registry record for `book_hold_slot`. HTML page: https://policylayer.com/tools/com-getcaboo-caboo/book-hold-slot

## Facts

- Tool: `book_hold_slot`
- Server: Caboo (`https://getcaboo.com/mcp`) — https://policylayer.com/tools/com-getcaboo-caboo.md
- Homepage: https://github.com/https://getcaboo.com/mcp
- Risk category: Write (Medium risk)
- Registry record: grade C, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 7 (5 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `slug` | string | yes | The provider slug from search_providers or get_provider. |
| `slotId` | string | yes | The slotId from book_get_availability the user chose. |
| `holdLabel` | string | yes | The exact human-readable booking sentence from the chosen book_get_availability slot's holdLabel. It must describe this slug, serviceKey, and slotId; Caboo reje |
| `partySize` | integer | no | Number of people, when the user stated one for availability. |
| `serviceKey` | string | yes | The service key from book_list_services. |
| `expiresNote` | string | yes | Copy this exact value from the chosen availability slot's expiresNote: "held for ~10 minutes". It makes the approval card explain the short hold lifetime before |
| `idempotencyKey` | string | no | Optional retry key, accepted for forward compatibility. Holds are short-lived; re-holding a taken slot returns slot_already_claimed with alternatives. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "book_hold_slot",
    "arguments": {
      "slug": "<slug>",
      "slotId": "<slotId>",
      "holdLabel": "<holdLabel>",
      "serviceKey": "<serviceKey>",
      "expiresNote": "<expiresNote>"
    }
  }
}
```

## Why book_hold_slot is rated Medium

This tool creates a short-lived reservation hold, which is a reversible write operation — the hold self-expires in ~10 minutes and does not constitute a confirmed booking or financial commitment. It modifies availability state temporarily but is not irreversible (it expires automatically). No money is moved, no data is permanently deleted, and no code is executed.

From the tool's own definition: "Hold one open time slot (a self-expiring reservation, about 10 minutes) and get back a confirmation URL"

## Use case

AI agents use book_hold_slot to create or update resources in Caboo, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Caboo environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Caboo:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "book_hold_slot": {
      "limits": [
        {
          "counter": "book_hold_slot_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Caboo (5)

- `book_get_availability` — Read — https://policylayer.com/tools/com-getcaboo-caboo/book-get-availability.md
- `book_get_booking_status` — Read — https://policylayer.com/tools/com-getcaboo-caboo/book-get-booking-status.md
- `book_list_services` — Read — https://policylayer.com/tools/com-getcaboo-caboo/book-list-services.md
- `get_provider` — Read — https://policylayer.com/tools/com-getcaboo-caboo/get-provider.md
- `search_providers` — Read — https://policylayer.com/tools/com-getcaboo-caboo/search-providers.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-getcaboo-caboo · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-getcaboo-caboo
