Get the lowest flight price for every departure date of a route in one request. The grid comes from ONE lookup, so a 60-day price calendar costs 1 credit, not one paid call per date.
What You Get
- One price per departure date for a window of up to 120 days
- One way or round trip with a fixed trip length (send
trip_lengthorreturn_date) - Low price flag on every date within 5 % of the cheapest date of the window
- Cabin, passengers and currency through
travel_class,adultsandcurrency
Good to Know
priceis the total for all passengers, not per person.- Dates without a fare are left out of
calendar. originanddestinationtake an IATA code or a place kgmid. Use the city kgmid for multi-airport cities.- Prices are live and can change between two calls. Children and infants are not supported.
- Cost: 1 credit per successful request. Failed requests are not billed.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
4 required parameters needed before sending a request.
7 optional filters available.
string
Required
Departure airport IATA code or place kgmid.
Examples: JFK, /m/0156q
example
string
Required
Arrival airport IATA code or place kgmid. Must differ from the origin.
Examples: LHR, /m/04jpl
example
string
Required
First departure date of the window, YYYY-MM-DD. Today or later.
example
string
Required
Last departure date of the window, YYYY-MM-DD. At most 120 days after the start.
example
string
Optional
Makes the search a round trip. The trip length is the number of days between outbound_date_start and this date. Cannot be combined with trip_length.
2026-06-15
string
Optional
Makes the search a round trip with this many days between departure and return (1-30). Leave out both fields for one way.
example
string
Optional
1 = economy (default), 2 = premium economy, 3 = business, 4 = first.
example
string
Optional
Number of adults (1-9, default 1). The price is the total for all adults.
example
string
Optional
3-letter currency code. Default: USD
USD
string
Optional
2-letter country code the prices are pinned to. Default: us
us
string
Optional
Language code. Default: en
en
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
calendar
lowest_price
search_metadata
search_parameters
Common calendar fields
price
low_price
return_date
outbound_date
{
"calendar": [
{
"price": 665,
"low_price": true,
"return_date": "2026-12-10",
"outbound_date": "2026-12-03"
},
{
"price": 691,
"low_price": false,
"return_date": "2026-12-11",
"outbound_date": "2026-12-04"
},
{
"price": 691,
"low_price": false,
"return_date": "2026-12-12",
"outbound_date": "2026-12-05"
}
],
"lowest_price": {
"price": 665,
"outbound_date": "2026-12-03"
},
"search_metadata": {
"engine": "google_flights_calendar",
"status": "Success",
"total_dates": 3
},
"search_parameters": {
"gl": "us",
"hl": "en",
"adults": 1,
"origin": "JFK",
"currency": "USD",
"trip_type": "round_trip",
"destination": "LHR",
"trip_length": 7,
"travel_class": 1,
"outbound_date_end": "2026-12-05",
"outbound_date_start": "2026-12-03"
}
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
origin, destination, outbound_date_start and outbound_date_end are required. The window must be at most 120 days. Send return_date or trip_length, not both.
{
"errors": {
"outbound_date_end": [
"The outbound date end field is required."
]
},
"message": "The outbound date end field is required."
}Google Flights Price Calendar Temporarily Unavailable
The upstream lookup failed on every try. The request is not billed.
{
"error": "Google Travel data is temporarily unavailable. Please retry shortly.",
"error_code": "google_flights_calendar_temporarily_unavailable",
"status_code": 503
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.