opentable_book_preview
Preview an OpenTable reservation before booking to check cancellation policy, saved card charges, and get the booking token needed to confirm.
Instructions
Preview an OpenTable booking BEFORE committing. Fetches the /booking/details SSR page and the slot-lock to surface: the cancellation policy (including any credit-card no-show fee), the saved payment card that would be charged/held, and a short-lived booking_token that opentable_book consumes. REQUIRED for CC-required slots — opentable_book refuses to commit without the token. Safe to call for standard slots too (the token skips a redundant re-lock in book). Holds the slot for ~60-90s; preview → book should happen within a minute. For Listing-type restaurants (Le Bernardin, etc.) this tool can't fetch a slot at all — callers should check opentable_get_restaurant.bookable first and surface the restaurant's phone/URL instead. For Experience-mandatory slots (find_slots returned booking_type=experience_mandatory), pass experience_id from the slot's experience_ids to route through the Experience slot-lock. Slots that charge the card at booking (a Deposit policy, or a prepaid/priced Experience) are refused with a link to book on opentable.com directly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD | |
| time | Yes | HH:MM (24h) — must match a slot returned by find_slots | |
| slot_hash | Yes | slot_hash from opentable_find_slots | |
| party_size | Yes | ||
| experience_id | No | For Experience-mandatory slots: which experience to book (from slot.experience_ids). Required when find_slots returned an Experience slot. | |
| restaurant_id | Yes | ||
| dining_area_id | No | Optional dining-area (room) id. When omitted, auto-resolved to the default dining area from OpenTable's booking-details page — so you can go straight from find_slots to book without calling opentable_get_restaurant. Pass explicitly only to pin a specific room. | |
| experience_ids | No | Pass-through from find_slots.experience_ids. When non-empty, experience_id must also be set. | |
| database_region | No | OpenTable's sharded-database region for the restaurant. Defaults to 'NA' (North America). Pass the venue's region (e.g. for UK/EU/APAC restaurants) when booking or cancelling outside North America — slot-lock, availability, and cancel route to the wrong database shard, or fail opaquely, when this is wrong. LIMITATION: not auto-derived from restaurant data (OpenTable's availability/booking responses don't surface the shard id), so non-NA bookings must set it explicitly. | |
| reservation_token | Yes | slot_availability_token from opentable_find_slots |