Travel Budget Planner
Pricing
from $0.10 / actor start
Travel Budget Planner
Plan any trip: aggregates whole-market Airbnb & Booking.com nightly-price stats (median & average over the full market, via a price-histogram Actor) plus flights, buses and trains, in your chosen currency, and writes a formatted itinerary into your Notion via an MCP Connector.
Pricing
from $0.10 / actor start
Rating
0.0
(0)
Developer
inovaflow
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
3
Monthly active users
19 hours ago
Last modified
Categories
Share
Plan any trip in one call — real, bookable stays, flights, buses and trains, with a clear trip-cost summary.
What it does
Give Travel Planner an origin, a destination, and your dates, and it returns what the trip actually costs:
- Real places to stay — actual Airbnb / Booking.com listings (budget → premium) with clickable booking links, room type, and a highlighted best-value pick.
- The cheapest flights from a 1000+ airline aggregator, plus optional buses & trains (bookable FlixBus / FlixTrain fares, or rough Rome2Rio route coverage).
- A trip-cost summary up top — a Cheapest total (cheapest stay + cheapest transport) and a Typical total (median stay + median transport), so you see the budget at a glance.
- A shareable interactive page — every run also builds its own fun, mobile-friendly web page (animated route map with clickable markers, stay & transport cards, light/dark mode) at a public URL you can open or send to anyone.
Everything in the currency you choose. Optionally, the plan is emailed to you and/or saved to your Notion workspace as a tidy itinerary page. It runs on the Apify platform, so you also get API access, scheduling, monitoring, and proxy rotation out of the box.
To try it: open the Input tab, enter a city, a destination and two dates, click Start, and read the results in the Output tab seconds later.
Who it's for
- Travelers comparing destinations — "Is a week in Lisbon or Porto cheaper in July?" — who want real places and a realistic budget before booking.
- Digital nomads pricing month-long stays (up to 90 nights) across several cities.
- Bloggers & creators who need current "cost of a trip to X" figures with real flight/bus/train prices to cite.
- AI assistants & automations that plan trips conversationally — "plan Berlin → Lisbon, Jul 10–13" — and drop the result into Notion or an inbox.
Quick start
You can get a first result with zero setup — no account or keys needed to run it from the Apify Console.
- Open the Actor and click
Try for free(or Start). - Fill in the trip under 🧭 Your trip: Origin, Destination, Check-in, Check-out. Origin and destination each take a city name or an airport/IATA code (
"Lisbon"or"LIS"); adding the country ("Lisbon, Portugal") helps a common name resolve, but isn't required. - (Optional) Tailor each part of the trip — the input is grouped into 🏠 Stay, ✈️ Flights, and 🚌 Buses & trains, each with its own sources, budget, and filters. The defaults search Airbnb + Booking.com stays and flights; clear Booking for a cheaper, faster Airbnb-only run.
- Click
Startand read the Output tab — or have it emailed to you.
Optional: email or Notion
- Email — put your address in Your email address under 📤 Get your results. You get a formatted summary in the email body with the full Markdown itinerary attached (
itinerary.md), sent fromtravel-planner@apify.inovaflow.app(no-reply). Best-effort: a delivery hiccup never fails the run. - Notion — needs a Notion MCP connector (a saved, authorized link from Apify to your Notion). In Apify, go to Settings → Integrations → MCP Connectors and add one for the server URL
https://mcp.notion.com/mcp, authorize Notion and allow it to create (ideally also update) pages. Then in Notion, share your target page with that integration (••• → Connections), and pick the connector in the Actor's Notion field. Re-running the same trip updates or reuses the same page instead of duplicating it.
If you skip both, the Actor still returns the full structured result plus the Markdown itinerary file.
Input
Only the four 🧭 Your trip fields are required; everything else has a sensible default and inline help. The form is organised into sections so each part of the trip is configured in one place:
- 🧭 Your trip — Origin and Destination (each a city name or an airport/IATA code), Check-in / Check-out (
YYYY-MM-DD, today or later, ≤ 90 nights), Currency (19 currencies — EUR, USD, GBP, CHF, PLN, CZK, …), Trip type (round-trip or one-way), and Smart transport (skip modes that don't fit the distance). - 🏠 Stay — which platforms to search (Airbnb and/or Booking.com, both on by default, or clear them to skip accommodation), Guests, a nightly min / max budget, minimum star rating, required amenities, free-cancellation only, and an opt-in price comparison (whole-market median & average nightly prices).
- ✈️ Flights — on/off, Passengers, cabin class, direct-only or max stops, flexible dates (± up to 7), preferred airlines (searchable list), and a per-person fare band.
- 🚌 Buses & trains — which ground sources to add (Buses + FlixTrain and/or Rome2Rio), max transfers, and a per-person fare band.
- 📤 Get your results — your email address and/or a Notion connector + parent page.
- Advanced — optionally run the paid source scrapers under a different Apify account (an MCP connector or an API token), e.g. an agency billing a client.
Good to know: Guests (Stay) and passengers (Flights) are separate — both are 1–16 and default to 1. Dates: check-in today or later, check-out after check-in, at most 90 nights. No currency conversion is done — every source is queried in your chosen currency; the one exception is Rome2Rio, whose indicative prices may come back in their own currency (often USD), so each transport row carries its own currency.
What the sources mean
| Source | What you get | Good to know |
|---|---|---|
| Airbnb (default) | Real listings with booking links (budget → premium), each with nightly price and room type, plus a best-value pick. | The cheapest, fastest stay source. |
| Booking.com (default) | Real Booking.com properties with links. | Slower & costlier — runs a real browser (adds a few cents). Turn off for an Airbnb-only run. |
| Flights (default) | The cheapest flights, from a 1000+ airline aggregator. | Accepts city names or IATA codes. |
| Buses + FlixTrain | Bookable FlixBus / FlixTrain fares across Europe, with departure times and links. | Real fares you can book. |
| Rome2Rio | Rough route coverage + a ballpark price. | Indicative only — no times, often USD. A "does this route exist + roughly what does it cost" signal, not bookable fares. |
Each extra source adds a few cents. Start with the defaults (Airbnb + flights) and add only what you need.
What you get
The same normalized trip object is written to OUTPUT (key-value record) and one dataset row on every run, so you can pipe it into any integration — read OUTPUT from Make, Zapier, Airtable, or a webhook, or export the dataset to CSV / JSON / Excel / HTML. Email and Notion are optional delivery channels on top of that object.
Every run also writes a ready-to-read Markdown itinerary (itinerary.md, mirrored as the markdown field) — byte-for-byte the same content as the Notion page and the email body. The plan opens with an At a glance summary (the two trip-cost totals + the cheapest stay/flight/transport), then Places to stay, then Transport.
And every run generates its own shareable interactive page — an animated hero, a live route map with clickable markers (cheapest stay / cheapest fare), best-value stay cards and a flight/bus/train picker, in light or dark mode. It's saved to the run's key-value store and served at a public URL (the page_url field below); open it in a browser or paste the link anywhere — it unfurls with a route + price preview in Slack / WhatsApp / iMessage.
{"ok": true, // true if at least one source returned usable data"origin": "Berlin", "destination": "Lisbon, Portugal","check_in": "2026-07-10", "check_out": "2026-07-13", "nights": 3,"guests": 2, "passengers": 1, "currency": "EUR","accommodation": [{ "platform": "airbnb", "median_nightly": 155.20, "avg_nightly": 178.67,"min_nightly": 34.50, "max_nightly": 648.64, "price_basis": "samples","sample": [ // the real, bookable listings shown in the plan{ "title": "Lightful Bedroom in Amoreiras", "nightly_price": 41.54,"currency": "EUR", "room_type": "Private room", "url": "https://www.airbnb.com/rooms/..." }] }],"transport": [{ "mode": "flight", "provider": "Ryanair", "price": 309.00, "currency": "EUR", "stops": 1, "url": "..." }],"providers_succeeded": ["airbnb", "flights"], "providers_failed": [],"notion": { "attempted": true, "ok": true, "url": "https://www.notion.so/<page-id>", "action": "created" },"email": { "attempted": true, "sent": true, "provider": "resend" },"page_url": "https://api.apify.com/v2/key-value-stores/<store-id>/records/REPORT?disableRedirect=true"}
accommodation[].sample— the real, bookable listings shown in the plan (title, nightly price, room type, clickableurl), spread across the price range.- Price stats (
min/median/avg/max_nightly) — over the listings found, in your currency;min/medianpower the trip-cost summary. With Add a price comparison on, the median & average shown become whole-market figures from our price-index Actor (price_basis: "price_index"); otherwise they come from the sampled listings ("samples"). transport[]— cheapest-first, each withmode/provider/price/currency/stops/depart_at/duration_minutes/url.providers_succeeded/providers_failed— which sources worked on this run (the run only fails outright if every source is blocked).notion/email— delivery status. Re-running the same trip updates or reuses the same Notion page (action: updated/reused) instead of duplicating it. Email is best-effort — a delivery problem never fails the run.page_url— a public link to this run's interactive trip page (animated route map, clickable cards, light/dark mode); open it or share it, and it unfurls with a preview.
Download the dataset as JSON, CSV, Excel, or HTML from the Output tab or the API.
What it costs
Travel Planner has no per-event pricing of its own — it bills standard Apify platform usage (compute units) plus the small fees of the Store Actors it calls. A typical default run (Airbnb + flights) is roughly $0.05–0.15; the Booking.com read is the priciest single step because it runs a real browser to clear anti-bot protection (~4 GB for ~70 s), adding a few more cents. Clear Booking for a cheaper, faster Airbnb-only run. Each source is independently budget-capped, so a slow or blocked one degrades gracefully instead of running away with the bill.
Use it from an AI assistant (MCP)
Travel Planner is exposed as a tool through Apify's MCP server, so any MCP-capable assistant (Claude, Cursor, …) can run it conversationally — "plan Berlin → Lisbon, Jul 10–13" — and get the result back, plus a Notion page if a connector is set. This needs an Apify API token (Console → Settings → Integrations → API tokens):
claude mcp add --transport http apify-travel \"https://mcp.apify.com?tools=dati/travel-planner" \--header "Authorization: Bearer <YOUR_APIFY_TOKEN>"
Pinning the Actor with ?tools=dati/travel-planner exposes it directly — the assistant sees the full input schema and calls it without a discovery step (OAuth also works: drop the header and sign into Apify on first use). Separately, it can use your Notion MCP connector to write the itinerary, connecting through the Apify MCP proxy with its own platform token — it never sees your Notion credentials.
FAQ
- Do I need an account or key? No to run it from the Console. You need an Apify API token only to call it from an AI agent / API, and a Notion MCP connector only to write to Notion.
- Can I budget each part of the trip? Yes — a nightly budget under Stay, and per-person fare bands under Flights and Buses & trains. Anything outside the band is dropped.
- Do I get real places to stay, with links? Yes — real Airbnb / Booking listings with booking links, room type, and a best-value pick. For whole-market median/average prices instead, turn on Add a price comparison.
- Can it book full European trains (Trainline/Omio-style)? It returns bookable FlixTrain fares and rough Rome2Rio route coverage. Full pan-European rail (SNCF, Trenitalia, Renfe, …) isn't available from any maintained public scraper — a known gap, not an omission.
- A source came back empty / prices look off. Each source is independent and budget-capped; a blocked one is listed under
providers_failedand the rest of the plan still returns. Retry, switch sources, or add the country to the destination to improve geocoding. - Legality / Terms of Service. Travel Planner reads publicly visible search/price data via maintained Apify Store Actors. Respect each site's Terms of Service and applicable law, and don't use it for prohibited purposes.
- Bugs, requests, custom needs. Use the Issues tab.
For maintainers
Engineering status, decisions, validated runs, and known gaps live in MAINTAINERS.md (kept out of the public Store page).
