
Google Hotels
- 425 installs
- Updated March 4, 2026
- skillhq/hotel-search
google-hotels is an agent skill that queries Google Hotels for rates, availability, ratings, and property details through browser automation so developers building travel-planning or concierge agents can compare lodging
About
google-hotels is an installable agent skill from skillhq/hotel-search that automates Google Hotels searches for prices, ratings, amenities, and availability inside Claude Code and other skills-compatible agents. The skill prefers a URL fast path that encodes location and check-in/check-out dates in google.com/travel/search links using a base64 protobuf ts parameter, loading filtered results in about three browser commands instead of long interactive flows. Developers reach for google-hotels when an agent must answer hotel comparison, cheapest stay, or availability questions during travel planning, concierge research, or itinerary tooling. The workflow uses agent-browser navigation with wait-for-idle snapshots, keeps searches on Google Hotels during discovery, and supports interactive guest, room, star, and price filters when URL encoding is insufficient. Install with npx skills add skillhq/hotel-search --skill google-hotels when lodging lookup should run inside an automated agent session rather than a separate booking API integration.
- Searches Google Hotels programmatically
- Returns rates and availability signals
- Supports trip comparison workflows
- Wraps third-party lodging data access
- Reduces manual hotel tab research
Google Hotels by the numbers
- 425 all-time installs (skills.sh)
- +8 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #440 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Jul 27, 2026 (Skillselion catalog sync)
npx skills add https://github.com/skillhq/hotel-search --skill google-hotelsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 425 |
|---|---|
| Last updated | March 4, 2026 |
| Repository | skillhq/hotel-search ↗ |
How do agents search Google Hotels for rates and availability?
Query Google Hotels for rates, availability, and property details to compare lodging options inside agent-assisted travel planning or concierge-style research workflows.
Who is it for?
Developers wiring travel-planning or concierge agents that must compare Google Hotels listings during automated research sessions.
Skip if: Developers who need direct OTA inventory, guaranteed booking APIs, or hotel search without browser automation should skip google-hotels.
When should I use this skill?
The user asks to search hotels, compare accommodation prices, check availability for dates, or find places to stay near a landmark.
What you get
Structured hotel price, rating, amenity, and availability comparisons from Google Hotels search results.
- Hotel price and rating comparison tables
- Availability notes for requested dates and locations
By the numbers
- URL fast path loads dated Google Hotels results in about 3 browser commands
- Encodes check-in and check-out dates in a base64 protobuf ts URL parameter
Files
Google Hotels Search
Search Google Hotels via agent-browser to find hotel prices, ratings, amenities, and availability.
When to Use
- User asks to search, find, or compare hotels or accommodation
- User wants hotel prices in a city, neighborhood, or near a landmark
- User asks about hotel availability for specific dates
- User wants the best-rated or cheapest hotel in an area
When NOT to Use
- Booking: This skill searches only — never complete a purchase
- Vacation rentals / Airbnb: Google Hotels shows hotels, not rentals
- Flights: Use the flight-search skill
- Historical prices: Google Hotels shows current prices only
- NEVER leave Google Hotels during search — do not navigate to Booking.com, Expedia, Hotels.com, or any OTA as a search workaround. Exception: after presenting results, you MAY visit the hotel's own website for direct booking/promo checks (see Post-Search).
Session Convention
Always use --session hotels for isolation.
URL Fast Path (Preferred)
Build a URL with location and dates encoded. Loads results directly — 3 commands total.
URL Template
https://www.google.com/travel/search?q={QUERY}&qs=CAE4AA&ts={TS_PARAM}&ap=MAEWhere {QUERY} is the location/hotel name and {TS_PARAM} is a base64-encoded date parameter.
Encoding Dates in the URL
Google Hotels uses a protobuf-encoded ts parameter for dates. The byte layout is fixed for years 2025-2030. Use this bash function to generate it:
hotel_ts() {
local ci_y=$1 ci_m=$2 ci_d=$3 co_y=$4 co_m=$5 co_d=$6 nights=$7
local cyl=$(printf '%02x' $(( ($ci_y & 0x7f) | 0x80 )))
local cyh=$(printf '%02x' $(($ci_y >> 7)))
local col=$(printf '%02x' $(( ($co_y & 0x7f) | 0x80 )))
local coh=$(printf '%02x' $(($co_y >> 7)))
echo -n "08011a200a021a00121a12140a0708${cyl}${cyh}10$(printf '%02x' $ci_m)18$(printf '%02x' $ci_d)120708${col}${coh}10$(printf '%02x' $co_m)18$(printf '%02x' $co_d)18$(printf '%02x' $nights)32020801" \
| xxd -r -p | base64 | tr -d '\n='
}
# Usage: hotel_ts CHECKIN_YEAR MONTH DAY CHECKOUT_YEAR MONTH DAY NIGHTS
# Example: hotel_ts 2026 3 15 2026 3 20 5
# Output: CAEaIAoCGgASGhIUCgcI6g8QAxgPEgcI6g8QAxgUGAUyAggBConstraints: Years 2025-2030, months 1-12, days 1-31, nights 1-127. These cover all realistic hotel searches.
Location Formats
| Format | Example |
|---|---|
| City | Hotels+in+Bangkok |
| City + country | Hotels+in+Bangkok+Thailand |
| Neighborhood | Hotels+in+Shibuya+Tokyo |
| Near landmark | Hotels+near+Eiffel+Tower |
| Region | Hotels+in+Amalfi+Coast |
| Airport | Hotels+near+BKK+airport |
| Specific hotel | Haus+im+Tal+Munich |
URL vs Interactive Features
| Feature | Via URL? |
|---|---|
| Location | ✅ Yes (via q=) |
| Dates | ✅ Yes (via `ts=`) |
| Guests / rooms | ❌ Set interactively (default: 1 room, 2 guests) |
| Filters (stars, price, amenities) | ❌ Set interactively |
Example: Hotels in Bangkok, March 15-20
# Step 1: Generate ts parameter
ts=$(hotel_ts 2026 3 15 2026 3 20 5)
# Step 2: Open with location + dates — results load immediately
agent-browser --session hotels open "https://www.google.com/travel/search?q=Hotels+in+Bangkok&qs=CAE4AA&ts=${ts}&ap=MAE"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -i
# Step 3: Extract results from snapshot, then close
agent-browser --session hotels closeExample: Specific Hotel with Dates
ts=$(hotel_ts 2026 3 9 2026 3 12 3)
agent-browser --session hotels open "https://www.google.com/travel/search?q=Haus+im+Tal+Munich&qs=CAE4AA&ts=${ts}&ap=MAE"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -i
agent-browser --session hotels closeWithout Dates (Location Only)
If the user doesn't specify dates, omit the ts, qs, and ap parameters:
agent-browser --session hotels open "https://www.google.com/travel/search?q=Hotels+in+Bangkok"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iResults will show "starting from" prices. Set dates interactively if the user provides them later (see deep-dive reference).
For detailed interactive workflows (calendar navigation, guest/room selector, filters), see the deep-dive reference.
Result Format
Present results as a single rich table:
| # | Hotel | Stars | Rating | Price/Night | Total | Via | Key Amenities |
|---|-------|-------|--------|-------------|-------|-----|---------------|
| 1 | Sukhothai Bangkok | ★★★★★ | 9.2 | $185 | $925 | Hotels.com | Pool, Spa, WiFi |
| 2 | Centara Grand | ★★★★★ | 8.8 | $165 | $825 | Booking.com | Pool, Gym, WiFi |
| 3 | Ibis Sukhumvit | ★★★ | 7.4 | $45 | $225 | Agoda | WiFi, Restaurant |Parallel Sessions
Only use when the user explicitly asks for a comparison between distinct searches (e.g., "Compare hotels in Shibuya vs Shinjuku").
agent-browser --session shibuya open "https://www.google.com/travel/search?q=Hotels+in+Shibuya+Tokyo" &
agent-browser --session shinjuku open "https://www.google.com/travel/search?q=Hotels+in+Shinjuku+Tokyo" &
wait
agent-browser --session shibuya wait --load networkidle &
agent-browser --session shinjuku wait --load networkidle &
wait
# Set dates in both sessions, then snapshot both
agent-browser --session shibuya snapshot -i
agent-browser --session shinjuku snapshot -i
agent-browser --session shibuya close &
agent-browser --session shinjuku close &
waitKey Rules
| Rule | Why |
|---|---|
Prefer URL fast path with ts= | 3 commands with dates vs 10+ interactive |
wait --load networkidle | Smarter than fixed wait 5000 |
| Always encode dates in URL when available | Use hotel_ts to generate the ts parameter |
Use fill not type for text | Clears existing text first |
| Wait 2s after typing location | Autocomplete needs API roundtrip |
| Click suggestions, never Enter | Enter is unreliable for autocomplete |
| Re-snapshot after every interaction | DOM changes invalidate refs |
| Check for "View prices" | Means dates aren't set yet |
| Never leave Google Hotels during search | Exception: hotel's own site for direct booking check after results |
| Navigate calendar with "<" and ">" | Calendar may open on wrong month — use arrows to go backward or forward |
Troubleshooting
| Problem | Solution |
|---|---|
| Consent popup | Click "Accept all" or "Reject all" |
| URL fast path fails | Fall back to google.com/travel/hotels interactive flow |
| No results / "View prices" | Set check-in and check-out dates |
| Calendar opens on wrong month | Use "<" arrow to navigate backward or ">" to go forward. Always re-snapshot after navigating to confirm target month is visible |
| Snapshot blocked by calendar overlay | Press Escape to close the calendar, re-snapshot, then re-open the date picker and try again |
| Stale pricing | Prices are real-time and indicative — mention this caveat |
| Currency mismatch | Google uses browser locale currency — note any discrepancy |
| CAPTCHA | Inform user. Do NOT solve. Retry after a short wait |
| Map view instead of list | Click "List" or "View list" toggle |
| Hotel not found | Try variations: full name, shorter name, name + city, name + neighborhood |
Post-Search: Direct Booking & Deals
After presenting results, always ask the user if they'd like you to check for better deals. Phrase it like:
"Want me to check [hotel name]'s direct website for promo codes or member rates? Direct booking is often cheaper than OTAs."
When to Offer
- Always when the user searches for a specific hotel by name
- Always when results show a single clear winner the user is interested in
- On request when comparing multiple hotels — offer for whichever they pick
What to Check
Open the hotel's own website in a new session (--session direct) and look for:
1. Direct booking price — often 5-15% cheaper than OTAs (Booking.com, Expedia, etc.) 2. Promo codes — look for banners, pop-ups, or a "offers"/"deals"/"promotions" page 3. Member/loyalty rates — "sign up for X% off first booking" or free membership discounts 4. Package deals — breakfast included, free cancellation, parking bundles 5. Seasonal promotions — holiday specials, early bird rates, last-minute deals
# After Google Hotels search is done, visit hotel's direct site
agent-browser --session direct open "https://www.example-hotel.com"
agent-browser --session direct wait --load networkidle
agent-browser --session direct snapshot -i
# Look for: promo banners, "offers" or "deals" links, booking widget prices
agent-browser --session direct closeChain Hotel Loyalty Programs
If the hotel belongs to a major chain, mention the loyalty program — members often get better rates, room upgrades, or points:
| Chain | Brands | Loyalty Program | Typical Member Perks |
|---|---|---|---|
| IHG | Holiday Inn, InterContinental, Crowne Plaza, Kimpton, Indigo | IHG One Rewards | Member rate (often cheapest), points earning, 4th night free on reward stays |
| Marriott | Marriott, Sheraton, Westin, W, Ritz-Carlton, Courtyard, Aloft | Marriott Bonvoy | Member rate, mobile check-in, points/miles |
| Hilton | Hilton, DoubleTree, Hampton, Conrad, Waldorf Astoria | Hilton Honors | Member discount, 5th night free on reward stays, digital key |
| Accor | Sofitel, Novotel, ibis, Mercure, Moxy, Fairmont | ALL - Accor Live Limitless | Member rates, status benefits |
| Hyatt | Hyatt, Andaz, Park Hyatt, Thompson | World of Hyatt | Member rate, free night awards, suite upgrades |
How to Identify the Chain
The Google Hotels snapshot often includes the chain name:
"Holiday Inn Express Bangkok Sukhumvit 11 by IHG"→ IHG"Courtyard by Marriott Bangkok"→ Marriott"Hilton Munich City"→ Hilton"Novotel Muenchen City"→ Accor- No chain suffix → likely independent (check their website directly)
Independent Hotels
For independent/boutique hotels (like Haus im Tal):
- Check their website for promo codes (often shown in banners or a dedicated "Offers" page)
- Look for "Book Direct" incentives (best price guarantee, free extras)
- Check if they offer a newsletter signup discount
- Mention the hotel name + "promo code" in a web search if the site doesn't show any
Present the Comparison
After checking, present a direct vs OTA comparison:
## Haus im Tal — Booking Comparison
| Source | Room Type | Price/Night | Total (3 nights) | Notes |
|--------|-----------|-------------|-------------------|-------|
| Booking.com | Downtown Cozy | €183 | €549 | Free cancellation |
| Hotel direct | Downtown Cozy | €175 | €525 | Use code HIT24 for 5% off |
| Hotel direct (with code) | Downtown Cozy | €166 | €499 | Best price |Tip: Always remind the user that you cannot complete the booking — just provide the link and any promo codes found.
Deep-Dive Reference
See references/interaction-patterns.md for:
- Full annotated walkthrough (every command + expected output)
- Location autocomplete failure modes and recovery
- Date picker calendar navigation
- Guest & room selector (the most complex widget)
- Filters (stars, price, amenities, cancellation)
- Scrolling for more results
- Hotel detail drill-down with provider price comparison
- Direct booking & promo check workflow
name: Publish to ClawHub
on:
push:
branches: [main]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install ClawHub CLI
run: npm install -g clawhub
- name: Authenticate
run: clawhub login --token "$CLAWHUB_TOKEN" --no-browser
env:
CLAWHUB_TOKEN: ${{ secrets.CLAWHUB_TOKEN }}
- name: Get current version and bump patch
id: version
run: |
CURRENT=$(clawhub inspect hotel-search 2>/dev/null | grep "^Latest:" | awk '{print $2}' || echo "1.0.0")
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT"
NEXT="${MAJOR}.${MINOR}.$((PATCH + 1))"
echo "next=$NEXT" >> "$GITHUB_OUTPUT"
- name: Publish
run: |
CHANGELOG=$(git log -1 --pretty=%B)
clawhub publish . \
--slug hotel-search \
--name "Google Hotels" \
--version "${{ steps.version.outputs.next }}" \
--changelog "${CHANGELOG}" \
--tags latest
🏨 hotel-search
Google Hotels search skill for Claude Code. Find hotel prices, ratings, and availability using browser automation via agent-browser.
📦 Install
npx skills add https://github.com/skillhq/hotel-search🔍 What It Does
1. Opens Google Hotels via agent-browser with location and dates encoded in the URL (3 commands) 2. Applies filters interactively (stars, price, amenities, cancellation) 3. Presents results as a formatted table with prices, ratings, and amenities
💬 Triggers
- "Find hotels in Bangkok, March 15-20"
- "Cheapest 4-star hotels in Paris near the Eiffel Tower"
- "Where to stay in Tokyo Shibuya for 3 nights"
- "Hotel prices in New York for 2 adults and 1 child"
- "Compare hotels in Shibuya vs Shinjuku"
✅ Capabilities
| Feature | Method |
|---|---|
| Location search | URL fast path (3 commands) |
| Check-in / check-out dates | URL fast path (encoded ts parameter) |
| Guests & rooms | Interactive (multiple rooms, children with ages) |
| Star rating filter | Interactive (2★–5★) |
| Price range filter | Interactive (min/max) |
| Amenities filter | Interactive (Pool, WiFi, Spa, etc.) |
| Free cancellation filter | Interactive (toggle) |
| Hotel detail drill-down | Interactive (provider price comparison) |
| Area comparison | Parallel sessions (e.g., Shibuya vs Shinjuku) |
⚙️ Requirements
- agent-browser CLI installed and available in PATH
📁 Files
SKILL.md # Quick reference (workflow, rules, troubleshooting)
references/
interaction-patterns.md # Deep-dive cookbook (complex widget interactions)📄 License
MIT
Google Hotels Interaction Patterns
Deep-dive cookbook for automating Google Hotels with agent-browser. Covers tricky interactions that need careful handling.
Quick reference: ../SKILL.md for the main workflow and key rules.
Contents
- Full Annotated Walkthrough
- Specific Hotel Search
- Location Autocomplete
- Date Picker Calendar
- Guest & Room Selector
- Filters
- Scrolling for More Results
- Hotel Detail Drill-Down
- Direct Booking & Promo Check
---
Full Annotated Walkthrough
Complete command-by-command example: Hotels in Bangkok, March 15-20, 2 adults, 1 room.
With Date-Encoded URL (Preferred — 3 commands)
# ── Step 1: Generate ts parameter and open ──
ts=$(hotel_ts 2026 3 15 2026 3 20 5)
agent-browser --session hotels open "https://www.google.com/travel/search?q=Hotels+in+Bangkok&qs=CAE4AA&ts=${ts}&ap=MAE"
agent-browser --session hotels wait --load networkidle
# ── Step 2: Handle consent banner (if present) ──
# agent-browser --session hotels click @eN (Accept all / Reject all)
# agent-browser --session hotels wait 2000
# ── Step 3: Snapshot and extract ──
agent-browser --session hotels snapshot -i
# Expected elements include:
# @e1 [combobox] "Search for places, hotels and more"
# @e2 [textbox] "Check-in" ← dates are set (verify with JS eval)
# @e3 [textbox] "Check-out"
# @e4 [button] "Number of travelers"
# @e5 [link] "Hilton Bangkok ..." ← hotel results with actual prices
# Actual ref numbers WILL vary. Always read the snapshot.
#
# NOTE: The snapshot shows date textboxes as "Check-in"/"Check-out" even when
# dates are set. The dates ARE populated — verify if needed with:
# agent-browser --session hotels eval "document.querySelector('input[placeholder=\"Check-in\"]')?.value"
# Parse snapshot for: hotel name, star rating, guest rating,
# price/night, booking provider, amenities
# ── Step 4: Close ──
agent-browser --session hotels closeWithout Dates (Interactive Fallback)
Use when dates aren't known upfront, or when hotel_ts isn't available.
# ── Step 1: Open with location only ──
agent-browser --session hotels open "https://www.google.com/travel/search?q=Hotels+in+Bangkok"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -i
# ── Step 2: Set check-in date ──
agent-browser --session hotels click @eN # Check-in button — opens calendar
agent-browser --session hotels wait 1000
agent-browser --session hotels snapshot -i
# Navigate to target month if needed (use "<" for backward, ">" for forward)
agent-browser --session hotels click @eN # March 15
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
# ── Step 3: Set check-out date ──
agent-browser --session hotels click @eN # March 20
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # "Done"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -i
# Results now show actual per-night prices
# ── Step 4: Extract and close ──
agent-browser --session hotels close---
Specific Hotel Search
When the user asks about a specific hotel by name (not a general area search), use the hotel name directly in the URL:
agent-browser --session hotels open "https://www.google.com/travel/search?q=Haus+im+Tal+Munich"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iGoogle typically shows the specific hotel in the sidebar or as the top result. Click into it for pricing and provider comparison, then set dates.
If the Hotel Doesn't Appear
Try variations:
- Full official name:
Haus+im+Tal+Munich - Shorter name:
Haus+im+Tal - Name + neighborhood:
Haus+im+Tal+Isarvorstadt - Name + country:
Haus+im+Tal+Munich+Germany
If none work, fall back to a general area search and look for the hotel in the results list.
---
Location Autocomplete
Only relevant for the interactive workflow (the URL fast path pre-fills location).
How It Works
1. Click the location field (focuses it, may show recent searches) 2. Type triggers a debounced API call (~500ms) 3. Dropdown renders with matching locations (cities, neighborhoods, landmarks, hotels) 4. Click the correct suggestion — never press Enter
Suggestion Types
| Type | Example |
|---|---|
| City | "Bangkok, Thailand" |
| Neighborhood | "Shibuya, Tokyo, Japan" |
| Landmark | "Near Eiffel Tower, Paris" |
| Airport | "Near BKK Airport" |
| Hotel name | "Sukhothai Bangkok" |
Failure Modes
Dropdown doesn't appear after typing + 2s wait:
agent-browser --session hotels press Escape
agent-browser --session hotels wait 500
agent-browser --session hotels click @eN # Re-click field
agent-browser --session hotels wait 1000
agent-browser --session hotels fill @eN "Bangkok"
agent-browser --session hotels wait 3000 # Wait longer
agent-browser --session hotels snapshot -iStill nothing? Try a more specific query like "Bangkok Thailand".
Wrong location selected — results show wrong city:
agent-browser --session hotels click @eN # Location field
agent-browser --session hotels wait 1000
agent-browser --session hotels fill @eN "Shibuya Tokyo"
agent-browser --session hotels wait 2000
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # Correct suggestionAmbiguous location — multiple matches (e.g., Portland OR vs ME): Read the full suggestion text which includes state/country, then click the correct one.
"Near X" not working: Try the landmark name directly without "near".
---
Date Picker Calendar
Calendar Structure
- Month headers: "March 2026", "April 2026"
- Day buttons: Labeled like "Saturday, March 15" — some show price annotations
- Navigation arrows: "<" / ">" to move between months
- Done button: Confirms selection
- Reset/Clear: Clears selected dates
Setting Dates
1. First click = check-in, second click = check-out 2. Range between them highlights 3. Click "Done" to confirm
agent-browser --session hotels click @eN # Check-in field — opens calendar
agent-browser --session hotels wait 1000
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # Check-in day
agent-browser --session hotels wait 500
agent-browser --session hotels click @eN # Check-out day
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # "Done"
agent-browser --session hotels wait --load networkidleNavigating Between Months
The calendar may open on the wrong month (e.g., showing May when you need March). Use "<" to go backward and ">" to go forward.
# Navigate BACKWARD (to earlier months)
agent-browser --session hotels click @eN # "<" previous month arrow
agent-browser --session hotels wait 1000
agent-browser --session hotels snapshot -i
# Repeat until target month is visible
# Navigate FORWARD (to later months)
agent-browser --session hotels click @eN # ">" next month arrow
agent-browser --session hotels wait 1000
agent-browser --session hotels snapshot -i
# Repeat until target month is visibleTip: Search the snapshot text for your target date string (e.g., "March 15") to check visibility. If the month header in the snapshot doesn't match your target, keep navigating.
Important: Always re-snapshot after each arrow click. The calendar re-renders and all refs change.
Cross-Month Stays
For a stay from March 28 to April 5: click March 28 first. The calendar may auto-advance to show April. If not, navigate with ">". Then click April 5 and "Done".
Common Issues
- Calendar opens on wrong month: Use "<" to navigate backward. This is common when Google defaults to a future month. Keep clicking "<" and re-snapshotting until the target month is visible.
- Snapshot blocked by calendar overlay: Press Escape to close the calendar, re-snapshot, then re-open the date picker and try again.
- Ambiguous day numbers (e.g., "15" in two visible months): Day elements are grouped under month headers — pick the one under the correct month.
- Calendar doesn't close: Click "Done" explicitly. It doesn't auto-close.
- Still shows "View prices" after setting dates: Wait for networkidle or add a short wait after "Done".
---
Guest & Room Selector
The most complex widget. Supports multiple rooms, each with independent adult/child counts and per-child age dropdowns.
Default: 1 room, 2 adults, 0 children.
Opening
agent-browser --session hotels click @eN # "Number of travelers" button
agent-browser --session hotels wait 1000
agent-browser --session hotels snapshot -i
# Panel shows: Room 1 → Adults [−] 2 [+], Children [−] 0 [+]
# [Add a room] [Done]Adjusting Counts
Click "+" or "−" next to Adults/Children. Re-snapshot to confirm.
Child Ages
Adding a child creates an age dropdown for that child. Each child needs a separate age selection:
agent-browser --session hotels click @eN # "+" next to Children
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # Age dropdown
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # Select age (e.g., "8")
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -iMultiple Rooms
agent-browser --session hotels click @eN # "Add a room"
agent-browser --session hotels wait 1000
agent-browser --session hotels snapshot -i
# New "Room 2" section appears — adjust adults/children for itTo remove a room, click "Remove room" or "X" next to that room.
Confirming
agent-browser --session hotels click @eN # "Done"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iCommon Issues
- Age dropdown won't open: Click the ref, wait, re-snapshot.
- "+" not responding: May have hit a maximum (e.g., 14 adults/room). Check current count.
---
Filters
Filters appear as buttons above results. They update results dynamically — no "Apply" button.
Star Rating
agent-browser --session hotels click @eN # "Star rating" button
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # e.g., "4+"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iSome interfaces show individual checkboxes (2-star, 3-star, etc.) instead of cumulative filters (3+).
Price Range
agent-browser --session hotels click @eN # "Price" filter
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
agent-browser --session hotels fill @eN "100" # Min
agent-browser --session hotels fill @eN "300" # Max
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iFree Cancellation
agent-browser --session hotels click @eN # "Free cancellation" toggle
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iAmenities
agent-browser --session hotels click @eN # "Amenities" or "More filters"
agent-browser --session hotels wait 500
agent-browser --session hotels snapshot -i
agent-browser --session hotels click @eN # Desired amenity (Pool, Spa, WiFi, etc.)
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iClearing Filters
Click the "X" on an active filter chip, or click the filter again to deselect.
---
Scrolling for More Results
Google Hotels initially shows ~10-20 results.
agent-browser --session hotels snapshot -i
# Look for "Show more hotels" or similar
agent-browser --session hotels click @eN # "Show more hotels"
agent-browser --session hotels wait 3000
agent-browser --session hotels snapshot -iIf no button exists, try scrolling:
agent-browser --session hotels scroll down 1000
agent-browser --session hotels wait 2000
agent-browser --session hotels snapshot -i---
Hotel Detail Drill-Down
Opening Details
agent-browser --session hotels click @eN # Hotel name/listing
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iWhat the Detail Page Shows
- Provider price comparison: Hotels.com, Booking.com, Expedia, hotel direct — each with their price
- Room types: Standard, Deluxe, Suite — each with prices
- Amenities: Full list
- Reviews: Rating breakdown and highlights
- Location: Map, nearby attractions, transit
Provider Comparison Format
## Sukhothai Bangkok — Provider Comparison
| Provider | Room Type | Price/Night | Total (5 nights) | Cancellation |
|----------|-----------|-------------|-------------------|--------------|
| Hotel direct | Deluxe | $175 | $875 | Free until Mar 10 |
| Hotels.com | Deluxe | $185 | $925 | Free until Mar 12 |
| Booking.com | Deluxe | $190 | $950 | Non-refundable |
| Expedia | Standard | $165 | $825 | Free until Mar 8 |Navigating Back
agent-browser --session hotels click @eN # Back arrow or "Back to results"
agent-browser --session hotels wait --load networkidle
agent-browser --session hotels snapshot -iAfter navigating back, results may have shifted — re-snapshot before interacting with other hotels.
---
Direct Booking & Promo Check
After the Google Hotels search is complete, visit the hotel's own website to find better deals. Use a separate session to keep the Google Hotels results intact.
Finding the Hotel's Website
Google Hotels often links to the hotel's direct site in the provider comparison. If not visible:
# Search for the hotel's website
agent-browser --session direct open "https://www.google.com/search?q=Haus+im+Tal+Munich+official+site"
agent-browser --session direct wait --load networkidle
agent-browser --session direct snapshot -i
# Click the hotel's own website (not OTA links)
agent-browser --session direct click @eN
agent-browser --session direct wait --load networkidle
agent-browser --session direct snapshot -iWhat to Look For on the Hotel Website
1. Booking widget — compare the direct price vs what Google Hotels showed 2. Banner promotions — look for "X% off", "use code", "special offer" text 3. "Offers" / "Deals" / "Packages" page — click any such link in the nav 4. Member signup discount — "Join for free" + instant discount 5. Seasonal specials — holiday rates, early bird, extended stay discounts
# Check the offers/deals page if available
agent-browser --session direct snapshot -i
# Look for links containing "offer", "deal", "promo", "special"
agent-browser --session direct click @eN # "Offers" or "Deals" link
agent-browser --session direct wait --load networkidle
agent-browser --session direct snapshot -i
agent-browser --session direct closeChain Hotel Loyalty Check
For chain hotels, check the loyalty program rate on their booking engine:
# Example: IHG hotel — check member rate
agent-browser --session direct open "https://www.ihg.com/hotels/us/en/find-hotels/hotel/rooms?qDest=Munich&qCiD=01&qCiMy=032026&qCoD=04&qCoMy=032026&qRms=1&qAdlt=2"
agent-browser --session direct wait --load networkidle
agent-browser --session direct snapshot -i
# Compare "Member Rate" vs "Best Flexible Rate"
agent-browser --session direct closeCommon chain booking URLs:
- IHG:
ihg.com/hotels/us/en/find-hotels/ - Marriott:
marriott.com/search/ - Hilton:
hilton.com/en/search/ - Accor:
all.accor.com/ - Hyatt:
hyatt.com/search/
Independent Hotel Promo Code Search
If the hotel's website doesn't show obvious promos, try a quick web search:
agent-browser --session direct open "https://www.google.com/search?q=%22Haus+im+Tal%22+Munich+promo+code+OR+discount+OR+coupon+2026"
agent-browser --session direct wait --load networkidle
agent-browser --session direct snapshot -i
agent-browser --session direct closeRelated skills
How it compares
Pick google-hotels when you need quick Google Hotels comparison inside an agent session rather than a dedicated lodging API contract.
FAQ
How does google-hotels load dated hotel results faster?
google-hotels builds a google.com/travel/search URL with the location in q= and check-in/check-out dates encoded in the base64 protobuf ts parameter. That URL fast path loads filtered Google Hotels results in about three browser commands instead of stepping through many interacti
What hotel data can google-hotels return to an agent?
google-hotels uses browser automation to read Google Hotels listings for nightly prices, star ratings, guest reviews, amenities, and availability signals. Results stay on Google Hotels during comparison, with optional navigation to a hotel's own site only when direct booking is e