search-room
search-room
Get all room types and rate packages for one specific hotel. Use this when the user wants to explore alternatives beyond the default package returned by search-hotel.
When to use
After the user has run search-hotel and wants to drill into a specific hotel:
- "Show me the rooms at Park Hyatt Tokyo"
- "What room types does hotel #2 have?"
- "I want a refundable rate"
- "Is there a package with breakfast included?"
Do NOT use this skill if the user hasn't already searched for hotels — run search-hotel first to obtain a sessionId.
Prerequisites
You need both:
- A
hotelIdfrom a priorsearch-hotelresult - The
sessionIdfrom that same search
Both are in the JSON output of search-hotel. Don't ask the user — pull them from the previous tool output in your conversation.
How to call
npx @tvl-justin/travel-cli@latest search-package \
--hotel-id "<hotelId>" \
--session-id "<sessionId>" \
--checkin <YYYY-MM-DD> \
--checkout <YYYY-MM-DD>
--checkin and --checkout are required by the CLI — reuse the dates from the prior search-hotel call.
Optional overrides
If the user wants different dates or occupancy than the original search, pass them explicitly:
npx @tvl-justin/travel-cli@latest search-package \
--hotel-id "h_001" \
--session-id "abc123" \
--checkin 2026-05-02 \
--checkout 2026-05-06 \
--rooms "2,8"
Output
{
"sessionId": "abc123",
"hotelId": "h_001",
"hotelName": "Park Hyatt Tokyo",
"options": [
{
"packageId": "pkg_a",
"roomName": "Park Deluxe King",
"mealType": "Breakfast included",
"totalPriceAllRoomsUSD": 1800,
"totalPricePerNightAllRoomsUSD": 450,
"refundability": "Refundable",
"nights": 4,
"availableRooms": 3
}
]
}
Presenting to the user
List packages sorted by price. Highlight what differs (meal type, refundability). Example:
Park Hyatt Tokyo — 4 nights, May 1–5:
- Park Deluxe King — $450/night · Breakfast included · Free cancellation
- Park Deluxe King — $400/night · Room only · Non-refundable
- Park Suite — $720/night · Breakfast + dinner · Free cancellation
Which one would you like to book?
Save each packageId — that's what book-hotel needs.
Edge cases
- If
optionsis empty, the hotel has no availability for those dates. Suggest alternatives (different dates or runsearch-hotelagain). - Some packages have a
cancellation.time_remaining_humanfield. Surface it when refundability matters: "Free cancellation expires in 18 hours."
More from justintravala/travel-skills
search-hotel
Search for hotels by location and dates. Use this skill whenever the user wants to find a place to stay, look for accommodation, search for hotels, or asks questions like "find me a hotel in X", "where can I stay in Y", "show me hotels near Z", or provides a destination plus check-in/check-out dates. Always use this skill before book-hotel or search-room since those require a sessionId from this search.
14book-hotel
Book a hotel package and pay with USDC via the x402 payment protocol. Use this skill when the user explicitly wants to confirm and pay for a hotel — phrases like "book it", "reserve hotel #2", "go ahead and book the Park Hyatt", "confirm my reservation", "pay for this hotel". This is a real-money on-chain action; always confirm with the user before calling, run search-hotel or search-room first to get a valid packageId, and ensure the user has an authenticated wallet with sufficient USDC.
14manage-booking
Look up details of an existing hotel booking. Use this skill when the user wants to check the status of their reservation, see check-in instructions, verify booking details, or asks "what's the status of my booking", "show me my reservation", "when is my hotel check-in", "did my booking go through". Requires a booking ID, the last name, and the email on the booking.
13cancel-booking
Cancel an existing hotel booking. Use this skill when the user explicitly wants to cancel their reservation — phrases like "cancel my booking", "cancel reservation BK_xxx", "I don't need the hotel anymore", "refund my booking". This is a destructive action; always confirm with the user before calling, and warn if the cancellation is past the free-cancellation deadline.
13pay-and-book
>
8