Google Flights
Browser-automated Google Flights search via agent-browser. All airlines including Southwest. Cash prices, schedules, economy/business comparison, market selection.
MCP get_skill({ skillId: "google-flights-fa3eb3e4" })Use this skill with your agent
Create a free account and connect via MCP
# Google Flights Search
Search Google Flights via agent-browser to find flight prices, schedules, and availability.
## Prerequisites
Requires `agent-browser` CLI:
```bash
npm install -g agent-browser && agent-browser install
```
## 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
- **Southwest flights**: Google Flights is one of the only sources for SW cash prices. No GDS or API returns Southwest.
## 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 + Business comparison** (default): `--session econ` and `--session biz`
- **Single cabin search**: `--session flights`
- **Interactive fallback**: `--session flights`
## Fast Path: URL-Based Search (Preferred)
Construct a URL with a natural language `?q=` parameter. Loads results directly. 3 commands total.
### URL Template
```
https://www.google.com/travel/flights?q=Flights+from+{ORIGIN}+to+{DEST}+on+{DATE}[+returning+{DATE}][+one+way][+business+class][+N+passengers][&gl=XX]
```
### Default: Economy + Business Comparison
Run two parallel sessions (economy and business) to show the price delta:
```bash
# Launch both in parallel
agent-browser --session econ open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27" &
agent-browser --session biz open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27+business+class" &
wait
# Wait for both to load
agent-browser --session econ wait --load networkidle &
agent-browser --session biz wait --load networkidle &
wait
# Snapshot both
agent-browser --session econ snapshot -i
agent-browser --session biz snapshot -i
# Close biz (only needed for delta column); keep econ alive for booking links
agent-browser --session biz close
```
### One Way
Add `+one+way` to the URL:
```bash
agent-browser --session flights open "https://www.google.com/travel/flights?q=Flights+from+LAX+to+LHR+on+2026-04-15+one+way"
agent-browser --session flights wait --load networkidle
agent-browser --session flights snapshot -i
```
### 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 | `+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) |
| Market/locale | `&gl=TH` (country code) | Works |
| **Premium economy** | `+premium+economy` | **Fails** |
| **Multi-city** | N/A | **Fails** |
### Reading Results from Snapshot
Each flight appears as a `link` element with a full description:
```
link "From 20508 Thai baht round trip total. Nonstop flight with Air Japan.
Leaves Suvarnabhumi Airport at 12:10 AM on Friday, March 20 and arrives
at Narita International Airport at 8:15 AM on Friday, March 20.
Total duration 6 hr 5 min. Select flight"
```
Parse into a markdown table (see Output Format below).
## Market Selection Strategy
Different country markets return different prices for the same route. Always try:
1. **Departure country market first** (`&gl=US` for flights from the US)
2. **Destination country market** (`&gl=JP` for flights to Japan)
3. **Ask the user** before trying additional markets
The `&gl=XX` parameter sets the market. Use ISO 3166-1 alpha-2 country codes.
## Booking Options Handoff
After presenting results, offer booking links. When the user picks a flight:
```bash
agent-browser --session econ click @eN # Click the flight's link
agent-browser --session econ wait 3000
agent-browser --session econ snapshot -i # Shows booking providers with prices and URLs
```
## Output Format
**Always use markdown tables** for flight results.
### Economy + Business comparison (default)
| # | Airline | Stops | Duration | Depart | Arrive | Economy | Business | Delta |
|---|---------|-------|----------|--------|--------|---------|----------|-------|
| 1 | JAL | Nonstop | 5h 55m | 8:05 AM | 4:00 PM | $523 | $1,490 | +185% |
| 2 | THAI | Nonstop | 5h 50m | 10:30 PM | 6:20 AM+1 | $628 | $1,675 | +166% |
### Economy only
| # | Airline | Stops | Duration | Depart | Arrive | Price |
|---|---------|-------|----------|--------|--------|-------|
| 1 | JAL | Nonstop | 5h 55m | 8:05 AM | 4:00 PM | $523 |
### Format rules
- One row per flight
- For connections, show stop cities (e.g., "1 stop via ICN")
- No code blocks around the table
- After the table, highlight cheapest, fastest, and best value
## Interactive Workflow (Fallback)
Use for multi-city, premium economy, or when the URL path fails. See the google-flights skill in ajimix/travel-hacking-toolkit for the full interactive reference with step-by-step commands for form filling, date pickers, and multi-city searches.
## Key Rules
| Rule | Why |
|------|-----|
| Prefer URL fast path | 3 commands vs 15+ interactive |
| `wait --load networkidle` | Smarter than fixed `wait 5000` |
| 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 |
| Keep results session alive for booking links | Close biz session after capturing delta |
## Troubleshooting
- **Consent popups**: Click "Accept all" or "Reject all" in the snapshot.
- **URL fast path didn't work**: Fall back to interactive.
- **Bot detection / CAPTCHA**: Inform user. Do NOT solve CAPTCHAs.Related Skills
More skills in Web & Browser Automation
Accessibility Expert
Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing
Accessibility Runtime Tester
Runtime accessibility specialist for keyboard flows, focus management, dialog behavior, form errors, and evidence-backed WCAG validation in the browser.
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
Agent Browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
agent-browser core
Core agent-browser usage guide. Read this before running any agent-browser commands. Covers the snapshot-and-ref workflow, navigating pages, interacting with elements (click, fill, type, select), extracting text and data, taking screenshots, managing tabs, handling forms and auth, waiting for content, running multiple browser sessions in parallel, and troubleshooting common failures. Use when the user asks to interact with a website, fill a form, click something, extract data, take a screenshot, log into a site, test a web app, or automate any browser task.
Agentcore
Run agent-browser on AWS Bedrock AgentCore cloud browsers. Use when the user wants to use AgentCore, run browser automation on AWS, use a cloud browser with AWS credentials, or needs a managed browser session backed by AWS infrastructure. Triggers include "use agentcore", "run on AWS", "cloud browser with AWS", "bedrock browser", "agentcore session", or any task requiring AWS-hosted browser automation.
Explore Other Categories
Skills from other categories with shared topics
Alliances
Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty programs book which airlines, including bilateral partnerships outside alliances.
Amex Travel
Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright. Use when comparing pay-with-points portal pricing to award alternatives.
Atlas Obscura
Search Atlas Obscura for weird, wonderful, and hidden gem places near any destination. Find the interesting stuff, not boring plaques. Search by coordinates, get full details with descriptions and images.