google-flights

Search Google Flights for flight prices and schedules using browser automation. Use when user asks to search flights, find airfare, compare prices, check flight availability, or look up routes. Triggers include "search flights", "find flights", "how much is a flight", "flights from X to Y", "cheapes

By skillhq · 2,690 installs

npx skills add skillhq/flight-search --skill google-flights

Source repository · Upstream listing

Google Flights Search Search Google Flights via agent browser to find flight prices, schedules, and availability. When to Use User asks to search/find/compare flights or airfare User wants to know flight prices between cities User asks about flight schedules or availability User wants to find the cheapest flight for specific dates When NOT to Use Completing purchases : This skill finds flights and extracts booking links, but do not attempt to complete a purchase on a booking site. Hotels/rental cars : Use other tools for non flight travel searches. Historical price data : Google Flights shows current prices, not historical. Session Convention Economy only (default for domestic): session flights Economy + Business comparison (international or user requests): session econ and session biz Interactive fallback : session flights Domestic vs International Detection Domestic flights default to economy only. Business class on US domestic routes is typically 3 5x the price and rarely worth showing unless asked. A flight is domestic if both origin and destination are US airports. Common US IATA codes: ATL, BOS, BWI, CLT, DEN, DFW, DTW, EWR, FLL, HNL, IAD, IAH, JFK, LAS, LAX, LGA, MCO, MDW, MIA, MSP, OAK, ORD, PHL, PHX, PDX, SAN, SEA, SFO, SJC, SLC, TPA. When to show business class: International flights (always show economy + business comparison) User explicitly asks for "business class" or "business" User asks to "compare cabins" or "show all classes" When to skip business class: Domestic US flights (economy only by default) User explicitly asks for "economy" or "cheapest" Fast Path: URL Based Search (Preferred) Construct a URL with a natural language ?q= parameter. Loads results directly — 3 commands total . URL Template Default: Economy Only (Domestic) For domestic flights, run a single session 2 tool calls total : Then present results in compact list format (see Output Format section below). Economy + Business Comparison (International) For international flights, run two parallel sessions to show the price delta: Matching logic : Match flights by airline name and departure time. Not all economy flights have a business equivalent (budget carriers like ZIPAIR, Air Japan don't offer business). Show " " when no business match exists. Tip : When an airline appears in business results but not economy (e.g., Philippine Airlines), it may operate business only pricing on that route. Include it with " " for economy. One Way Add +one+way to the URL. For international, run both economy and business in parallel: When User Asks for Business Only If the user specifically asks for business class (not a comparison), run just the business session: First Class / Multiple Passengers What Works via URL Feature URL syntax Status Round trip +returning+YYYY MM DD Works One way +one+way Works Business class +business+class Works First class +first+class Works N passengers (adults) +N+passengers Works Adults + children +2+adults+1+child Works IATA codes BKK , NRT , LAX Works City names Bangkok , Tokyo Works Dates as YYYY MM DD 2026 03 20 Works (best) Natural dates March+20 Works Premium economy +premium+economy Fails Multi city N/A Fails What Requires Interactive Fallback Premium economy cabin class Multi city trips (3+ legs) Infant passengers (seat vs lap distinction) URL didn't load results (consent banner, CAPTCHA, locale issue) Reading Results from Snapshot Each flight appears as a link element with a full description: Parse economy + business snapshots into the compact list format : Matching : Pair economy and business results by airline + departure time. Budget carriers without business class show "—". Include "Best"/"Cheapest" labels from Google when present. Booking Options Handoff After presenting the results table, always offer booking links : "Want booking links for any of these? Just say which one." When the user picks a flight, extract booking options by clicking the flight's link element in the snapshot. Google Flights shows a panel with booking providers (airlines, OTAs) each with a price and a "Continue" link to the booking site. Workflow The booking panel snapshot will show link elements like: Extract the provider name, price, and href URL from each link. Output Format Notes Session lifecycle : Keep the results session ( flights or econ ) alive for booking links. For international comparisons, close session biz immediately after extracting prices. Close the results session after the user gets booking links or declines. If booking panel fails to load : Re snapshot and wait longer before retrying. Interactive Workflow (Fallback) Use for multi city, premium economy, or when the URL path fails. Open and Snapshot If a consent banner appears, click "Accept all" or "Reject all" first. Set Trip Type (if not Round Trip) Set Cabin Class / Passengers (if non default) Cabin class: Passengers: Enter Airport (Origin or Destination) Set Dates Search "Done" only closes the calendar. You MUST click "Search" separately. Multi City Specifics After selecting "Multi city" trip type, the form shows one row per leg: Each leg has: origin combobox, destination combobox, departure date textbox Origins auto fill from the previous leg's destination Click "Add flight" to add more legs (default: 2 legs shown) Click "Remove flight from X to Y" buttons to remove legs Results show flights for the first leg , with prices reflecting the total multi city cost Fill each leg's destination + date in order, then click "Search". Output Format Always use compact list format — never markdown tables. Output is typically displayed in chatbot interfaces (Telegram, etc.) where tables render poorly. Economy + Business comparison (default) Economy only Format rules One flight per numbered block, blank line between flights Line 1: Airline — Stops · Duration Line 2: Departure → Arrival times Line 3: Prices (economy, business delta if applicable) No code blocks around the flight list — plain text reads best Keep the "Best value" recommendation as a plain text paragraph after the list Key Rules Rule Why Prefer URL fast path 2 tool calls (domestic) or 3 (international) vs 15+ interactive Chain open+wait with && Eliminates a round trip between tool calls Skip business for domestic US domestic business is 3 5x price, rarely useful unless asked Parallel snapshots with & + wait Both snapshots run concurrently for international wait load networkidle Smarter than fixed wait 5000 returns when network settles Use fill not type for airports Clears existing text first Wait 2s after typing airport codes Autocomplete needs API roundtrip Always CLICK suggestions, never Enter Enter is unreliable for autocomplete Re snapshot after every interaction DOM changes invalidate refs "Done" ≠ Search Calendar Done only closes picker After presenting results, offer booking links Users almost always want to book prompt them Keep results session alive; close biz after results Results session needed for booking clicks; biz only for delta Troubleshooting Consent popups : Click "Accept all" or "Reject all" in the snapshot. URL fast path didn't work : Fall back to interactive. Some regions/locales handle ?q= differently. No results : Verify airports (check combobox labels), dates in the future, or wait longer. Bot detection / CAPTCHA : Inform user. Do NOT solve CAPTCHAs. Retry after a short wait. Deep Dive Reference See [references/interaction patterns.md](references/interaction patterns.md) for: Full annotated walkthrough (every command + expected output) Airport autocomplete failure modes and recovery Date picker calendar navigation Multi city searches Scrolling for more results