search-hotel
Original:🇺🇸 English
Translated
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.
15installs
Added on
NPX Install
npx skill4agent add justintravala/travel-skills search-hotelTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →search-hotel
Search hotels using the . Returns a list of matching hotels with prices, ratings, and the IDs you need to book or look at room options.
travel-cliWhen to use
Trigger this skill when the user wants to find accommodation. Examples:
- "Find me a hotel in Tokyo from May 1 to May 5"
- "Show me 4-star hotels in Paris with ocean view"
- "Where can I stay near Shibuya next weekend"
- "I need a place for 2 adults and 1 child in Bangkok"
Do NOT use this skill for flights, tours, restaurants, or non-accommodation travel queries.
Prerequisites
The CLI must be available. Run via :
travel-clinpxbash
npx @tvl-justin/travel-cli@latest search-hotel ...If the user has installed it globally (), call directly.
npm install -g @tvl-justin/travel-clitravel-cliHow to call
The full command:
bash
npx @tvl-justin/travel-cli@latest search-hotel \
--location "<city or destination>" \
--checkin <YYYY-MM-DD> \
--checkout <YYYY-MM-DD> \
--rooms "<occupancy>" \
--limit 5Parameter rules
- (required) — A city, neighborhood, or destination name. Use the most specific one the user gave. If the user only said "Tokyo" use
--location; if they said "Shinjuku, Tokyo" use"Tokyo"."Shinjuku, Tokyo" - /
--checkin(required) —--checkoutformat. Resolve relative dates ("next weekend", "tomorrow") against today's date before calling. If the user only gave a single date and a duration ("3 nights from May 1"), compute the checkout date.YYYY-MM-DD - — Occupancy string. Format:
--rooms- = 1 room, 2 adults
"2" - = 1 room, 2 adults + 1 child age 5
"2,5" - = 1 room, 2 adults + children ages 3 and 8
"2,3,8" - Multiple rooms separated by :
;= room 1 has 2 adults, room 2 has 2 adults + child age 5"2;2,5" - Default if user doesn't specify: .
"2"
- — How many hotels to return. Default 5. Increase to 10 if the user wants more options.
--limit - /
--min-price— Price per night in USD. Always convert other currencies to USD before passing. E.g. "under 2 million VND" →--max-price.--max-price 80 - — Comma-separated. Allowed values:
--filters,free_breakfast,swimming_pool,ocean_view. Only include filters the user explicitly asked for.all_inclusive - /
--lat— Optional coordinates for precision. Use them when you know the coordinates of a well-known city.--lng
Asking for missing info
If the user gave a destination but not the dates, ask once for both check-in and check-out (or check-in plus duration). Don't ask for occupancy unless the question implies a non-default party (e.g. "for my family of 4").
Output
The CLI prints JSON to stdout:
json
{
"sessionId": "abc123",
"hotels": [
{
"hotelId": "h_001",
"name": "Park Hyatt Tokyo",
"rating": 9.2,
"star": 5,
"pricePerNight": 450,
"totalPrice": 1800,
"currency": "USD",
"packageId": "pkg_001",
"refundability": "free_cancellation_until_2026-04-29"
}
]
}Important — Save the . The user will need it for any follow-up call (search-room, book-hotel).
sessionIdPresenting results to the user
Show a clean, scannable list — name, price/night, rating, and one notable feature. Don't dump the raw JSON. Example:
Found 5 hotels in Tokyo for May 1–5:
- Park Hyatt Tokyo — $450/night · 9.2/10 · Free cancellation until Apr 29
- Hotel Gracery Shinjuku — $180/night · 8.5/10 · Free breakfast
- ...
Want to see room options for any of these, or shall I go ahead and book one?
Always offer a clear next step: see rooms ( skill) or book directly ( skill).
search-roombook-hotelCommon errors
- — Travel API unreachable. Tell the user and ask if they want to retry.
Network error - — Usually invalid dates (checkout before checkin, dates in the past). Re-validate inputs and re-prompt.
400 Bad Request - — Try a broader location or different dates.
No hotels found