Google Hotels Price Calendar - Hotel Prices for Every Date avatar

Google Hotels Price Calendar - Hotel Prices for Every Date

Pricing

$1.50 / 1,000 hotel price for one dates

Go to Apify Store
Google Hotels Price Calendar - Hotel Prices for Every Date

Google Hotels Price Calendar - Hotel Prices for Every Date

Track any hotel's price history across dates with OTA rates (Booking.com, Agoda, Expedia, official site). Find cheapest dates, monitor rate parity, build price alerts. Any currency. $1.50 per 1,000 date prices.

Pricing

$1.50 / 1,000 hotel price for one dates

Rating

0.0

(0)

Developer

An Tan Huynh

An Tan Huynh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Google Hotels Price Calendar: Hotel Prices for Every Date

Check what a hotel costs on every check-in date in a range, using Google Hotels. For each date you get the lowest price and the price on every booking site: Booking.com, Agoda, Expedia, Hotels.com, Trip.com, the hotel's own website and more. Prices come per night and for the whole stay, in any currency.

Give it a hotel name or a Google Hotels link, pick a start date and how many dates to check. You get one row per date, plus a summary with the cheapest and most expensive dates.

Use cases

  • Find the cheapest dates to stay at a specific hotel.
  • Revenue management and rate shopping: follow competitors' rates for the next 30, 90 or 365 days.
  • Rate parity monitoring: see whether the hotel's own website or an OTA is cheaper, date by date.
  • Price alerts and travel apps: schedule daily runs and send the data to Google Sheets, Slack, a webhook or your database.
  • AI agents: give an assistant real hotel availability and prices for flexible dates.

Input

{
"hotels": ["Hilton Paris Opera", "Pullman Danang Beach Resort"],
"startDate": "2026-12-01",
"numberOfDates": 30,
"nights": 1,
"adults": 2,
"rooms": 1,
"currency": "USD",
"includeProviderPrices": true
}
FieldNotes
hotelsHotel name, ideally with the city, or a Google Hotels URL (.../travel/hotels/entity/...)
startDateFirst check-in date. Default: tomorrow
numberOfDates / endDateHow many consecutive check-in dates to check (max 365)
nightsLength of each stay
adults, children, roomsParty size. Affects which room types and prices Google returns per date
childrenAgesOptional ages (e.g. [5, 10]) for per-age pricing; its length overrides children
currencyUSD, EUR, GBP, JPY...
includeProviderPricesInclude the full list of booking sites for each date. On by default, same price either way

Output

One row per hotel per check-in date. A real row from our test run:

{
"hotel": "Generator Paris",
"checkIn": "2026-11-20",
"checkOut": "2026-11-21",
"dayOfWeek": "Friday",
"nights": 1,
"currency": "USD",
"available": true,
"lowestPricePerNight": 60.57,
"lowestTotalPrice": 60.57,
"cheapestProvider": "Booking.com",
"providersCount": 15,
"providers": [
{
"provider": "Booking.com",
"pricePerNight": 60.57,
"pricePerNightText": "$61",
"totalPrice": 60.57,
"sponsored": false,
"bookingUrl": "https://..."
},
{
"provider": "Hostelworld",
"pricePerNight": 66.46,
"pricePerNightText": "$66",
"totalPrice": 66.46,
"sponsored": false,
"bookingUrl": "https://..."
},
{
"provider": "Vio.com",
"pricePerNight": 66.46,
"pricePerNightText": "$66",
"totalPrice": 66.46,
"sponsored": false,
"bookingUrl": "https://..."
}
],
"googleHotelsUrl": "https://www.google.com/travel/hotels/entity/..."
}

A summary per hotel is saved in the key-value store as SUMMARY and linked from the run's Output tab:

[{"hotel": "Generator Paris", "currency": "USD", "datesChecked": 7, "datesAvailable": 7,
"cheapestDate": "2026-11-22", "cheapestPricePerNight": 48.54,
"mostExpensiveDate": "2026-11-21", "mostExpensivePricePerNight": 74.44, "averagePricePerNight": 60.49}]

Pricing

$1.50 per 1,000 date prices ($0.0015 per hotel per date), with no monthly fee. A 30-day calendar for one hotel costs about $0.045. Dates with no availability are still returned so the calendar has no gaps, and they are charged the same.

Need prices for every hotel in a city instead of a few specific hotels? Use Google Hotels Scraper.

Room rates: for booking sites that list them (usually the hotel's own website and Booking.com), each provider also has a rooms list: room name, price per night and total. Use it to compare the same room type across sites.

Use it from Python, JavaScript or any HTTP client

from apify_client import ApifyClient # pip install "apify-client>=3"
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("zet46/google-hotels-price-calendar").call(run_input={"hotels": ["Hilton Paris Opera"], "numberOfDates": 60, "currency": "USD"})
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["checkIn"], item["lowestPricePerNight"], item["cheapestProvider"])

The same works with the JavaScript client (apify-client on npm) or a single HTTP call to https://api.apify.com/v2/acts/zet46~google-hotels-price-calendar/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> with the input as the JSON body. You can also schedule runs and send results to Google Sheets, Slack, Zapier, Make or n8n.

More ready-to-run examples (Python and Node.js): github.com/huynhtanan/google-hotels-api. Step-by-step tutorial: Google Hotels prices with Python on dev.to.

Use it from AI agents (MCP)

Add this to Claude Desktop, Cursor or any MCP client:

{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=zet46/google-hotels-price-calendar"}}}

Then just ask, for example: "When is the Hilton Paris Opera cheapest in the next two months, and on which site?"

FAQ

How fast is it? In our test, 2 hotels x 7 dates (14 prices, 13 to 27 booking sites each) finished in about 10 seconds, startup included.

Which hotel is used when I type a name? The first Google Hotels match for that text. Add the city to be safe, or paste the Google Hotels link.

Do I need proxies? No setup needed. The actor uses Apify Proxy (datacenter) by default, which gives more complete results than direct requests, and the cost is included in the price.

Is it legal? The actor reads publicly visible hotel prices only, with no personal data. You are responsible for using the data in line with the laws and terms that apply to you.

Found a problem? Open an issue on the Issues tab. Fixes usually ship within a day.