Google Flights Calendar API

Our Google Flights Calendar API allows you to scrape prices results from Google Flights Calendar.


The API endpoint is https://serpapi.com/search?engine=google_flights_calendar

Head to the playground for a live and interactive demo.

API parameters

Search query

departure_id

Required

Parameter defines the departure airport code or location kgmid.
An airport code is an uppercase 3-letter code. You can search for it on Google Flights or IATA.
For example, CDG is Paris Charles de Gaulle Airport and AUS is Austin-Bergstrom International Airport.
A location kgmid is a string that starts with /m/. You can search for a location on Wikidata and use its "Freebase ID" as the location kgmid. For example, /m/0vzm is the location kgmid for Austin, TX.

arrival_id

Required

Parameter defines the arrival airport code or location kgmid.
An airport code is an uppercase 3-letter code. You can search for it on Google Flights or IATA.
For example, CDG is Paris Charles de Gaulle Airport and AUS is Austin-Bergstrom International Airport.
A location kgmid is a string that starts with /m/. You can search for a location on Wikidata and use its "Freebase ID" as the location kgmid. For example, /m/0vzm is the location kgmid for Austin, TX.

Localization

gl

Optional

Parameter defines the country to use for the Google Flights search. It's a two-letter country code. (e.g., us for the United States, uk for United Kingdom, or fr for France) Head to the Google countries page for a full list of supported Google countries.

hl

Optional

Parameter defines the language to use for the Google Flights search. It's a two-letter language code. (e.g., en for English, es for Spanish, or fr for French). Head to the Google languages page for a full list of supported Google languages.

currency

Optional

Parameter defines the currency of the returned prices. Default to USD. Head to the Google Travel Currencies page for a full list of supported currency codes.

Advanced Parameters

type

Optional

Parameter defines the type of the flights.
Available options:

1 - Round trip (default)
2 - One way

date_range_start

Optional

Parameter defines the start date of the date range. The format is YYYY-MM-DD. e.g. 2026-11-03

Default to today's date.

When fixed_outbound_date is set to true, this date is also used as the outbound date.

date_range_end

Optional

Parameter defines the end date of the date range. The format is YYYY-MM-DD. e.g. 2026-12-31

Default to end of next month.

round_trip_days

Optional

Parameter defines the number of days for the round trip. Default to 7. It can only be used in combination with type parameter set to 1 (Round trip).

Parameter cannot be used with fixed_outbound_date parameter.

fixed_outbound_date

Optional

Parameter defines whether the outbound date is fixed. It can be set to true to depart on date_range_start and get a price for each return date in the date range, or false (default) to get a price for each outbound date in the date range with a trip length of round_trip_days.

It can only be used in combination with type parameter set to 1 (Round trip).

Parameter cannot be used with round_trip_days parameter.

travel_class

Optional

Parameter defines the travel class.
Available options:

1 - Economy (default)
2 - Premium economy
3 - Business
4 - First

Number of Passengers

adults

Optional

Parameter defines the number of adults. Default to 1.

children

Optional

Parameter defines the number of children. Default to 0.

infants_in_seat

Optional

Parameter defines the number of infants in seat. Default to 0.

infants_on_lap

Optional

Parameter defines the number of infants on lap. Default to 0.

SerpApi parameters

engine

Required

Set parameter to google_flights_calendar to use the Google Flights Calendar API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Google Flights Calendar results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.

async

Optional

Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.

zero_trace

Optional

Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.

api_key

Required

Parameter defines the SerpApi private key to use.

output

Optional

Parameter defines the format of the result. It can be set to json (default) to get a structured JSON of the results, html to get the raw HTML retrieved, or md to get a Markdown-formatted version optimized for LLMs and AI agents.

json_restrictor

Optional

Parameter defines the fields you want to include in the output, reducing payload size for faster response. See the JSON Restrictor documentation for more details.

API results

JSON results

JSON output includes structured data for prices.

A search status is accessible through search_metadata.status. It flows this way: Processing -> Success || Error. If a search has failed, error will contain an error message. search_metadata.id is the search ID inside SerpApi.

HTML results

This API does not have a full HTML response, only text. search_metadata.prettify_html_file contains a link to the prettified version of the result. It is displayed in the playground.

Markdown results

Markdown output is optimized for LLMs and AI agents. It provides a curated view of the JSON results in a token-efficient format using tables, markdown links, and YAML frontmatter.

To access, use the output=md parameter, the /search.md endpoint, or request header Accept: text/markdown.

API examples

Example with round trip of 7 days from CDG to AUS

Example with round trip of 7 days from CDG to AUS

JSON Example

{
  "search_metadata": {
    "id": "6968ee37fc8a2ba83a6be0c7",
    "status": "Success",
    "json_endpoint": "https://serpapi.com/searches/0201ee72bcce0915/6968ee37fc8a2ba83a6be0c7.json",
    "created_at": "2026-01-15 13:40:07 UTC",
    "processed_at": "2026-01-15 13:40:07 UTC",
    "google_flights_calendar_url": "https://www.google.com/travel/flights?hl=en&gl=us",
    "prettify_html_file": "https://serpapi.com/searches/153bb30465ad60f0/6968ee37fc8a2ba83a6be0c7.prettify",
    "total_time_taken": 1.12
  },
  "search_parameters": {
    "engine": "google_flights_calendar",
    "type": "1",
    "departure_id": "CDG",
    "arrival_id": "AUS"
  },
  "prices": [
    {
      "outbound_date": "2026-01-15",
      "return_date": "2026-01-22",
      "price": 1893
    },
    {
      "outbound_date": "2026-01-16",
      "return_date": "2026-01-23",
      "price": 1288
    },
    {
      "outbound_date": "2026-01-17",
      "return_date": "2026-01-24",
      "price": 1312
    },
    {
      "outbound_date": "2026-01-18",
      "return_date": "2026-01-25",
      "price": 1351
    },
    {
      "outbound_date": "2026-01-19",
      "return_date": "2026-01-26",
      "price": 1214
    },
    {
      "outbound_date": "2026-01-20",
      "return_date": "2026-01-27",
      "price": 1214
    },
    {
      "outbound_date": "2026-01-21",
      "return_date": "2026-01-28",
      "price": 1214
    },
    {
      "outbound_date": "2026-01-22",
      "return_date": "2026-01-29",
      "price": 1214,
      "low_price": true
    },
    ...
  ]
}

Example with one way trip from KHI to ISB with  currency: PKR

Example with one way trip from KHI to ISB with  currency: PKR

JSON Example

{
  "search_metadata": {
    "id": "6968feddfc8a2ba837a46a50",
    "status": "Success",
    "json_endpoint": "https://serpapi.com/searches/61724de409820b56/6968feddfc8a2ba837a46a50.json",
    "created_at": "2026-01-15 14:51:09 UTC",
    "processed_at": "2026-01-15 14:51:09 UTC",
    "google_flights_calendar_url": "https://www.google.com/travel/flights?hl=en&gl=us",
    "prettify_html_file": "https://serpapi.com/searches/9200fe198f894f11/6968feddfc8a2ba837a46a50.prettify",
    "total_time_taken": 1.55
  },
  "search_parameters": {
    "engine": "google_flights_calendar",
    "type": "2",
    "departure_id": "KHI",
    "arrival_id": "ISB",
    "currency": "PKR"
  },
  "prices": [
    {
      "outbound_date": "2026-01-15",
      "price": 59163
    },
    {
      "outbound_date": "2026-01-16",
      "price": 27009
    },
    {
      "outbound_date": "2026-01-17",
      "price": 25061
    },
    {
      "outbound_date": "2026-01-18",
      "price": 27009
    },
    {
      "outbound_date": "2026-01-19",
      "price": 24950
    },
    ...
  ]
}

JSON structure overview

{
  ...
  "prices": [
    {
      "outbound_date": "String - Outbound date",
      "return_date": "String - Return date if the flight type is 'Round trip'",
      "price": "Integer - Price in the selected currency, the default currency is USD",
      "low_price": "Boolean - Indicates if the price is within 5% of the minimum price in the requested date range"
    }
  ],
  ...
}