--- name: swiggy-dineout-booking description: Find a restaurant, check table slots and book (free or paid deal) on Swiggy Dineout with swiggy-cli; also check or cancel a booking. Use when the user says "book a table", "reserve", "is X free at 8pm", "cancel my reservation". license: MIT compatibility: Requires swiggy-cli signed in. Booking a paid deal spends money via UPI. metadata: author: HKTITAN version: "0.2.4" --- # swiggy-dineout-booking ``` locations → search → details → slots → (cart, paid only) → book → status ``` Dineout tools take `latitude`/`longitude`. Saved locations do not expose coordinates, so the CLI captures them from the `search`/`details` response and reuses them for `slots`, `cart` and `book`. Keep the steps in this order and the coordinates take care of themselves. ## 1. Location, then search ```bash swiggy dineout locations --json --no-interactive # "near me / home / office" → pick an id swiggy dineout search -q italian --address-id --json --no-interactive swiggy dineout search -q rooftop --lat 12.9352 --lng 77.6245 --json --no-interactive # named area ``` One term only (name, cuisine, area, "pub", "rooftop", "buffet"). A dish becomes its cuisine ("dosa" → "South Indian"). Empty results mean nothing matched: say so and offer another term; never present unrelated restaurants as matches. ## 2. Details (optional) and slots ```bash swiggy dineout details --json --no-interactive swiggy dineout slots --restaurant-id --date 2026-09-06 --json --no-interactive # 7 days from the date ``` `data.slots[]` has `dateStr`, `displayTime`, `reservationTime`, `slotId`, and `deals[]` with `itemId`, `isFree`, `bookingPrice`. Match the user's date+time against `dateStr` + `displayTime` for THAT date; every 15-minute time inside a returned window is bookable. Trust the data — do not tell the user a listed time is unavailable. ## 3. Confirm, then book Ask: "Book for guests on at