The Google Sheets Holiday Travel Itinerary Planner You’ll Reuse Every Single Trip (Free Template Inside)

Three days before a 10-day trip through Portugal, my partner and I were arguing in a Lisbon Airbnb about whether we’d already paid for the Sintra train tickets. We had four browser tabs, two email confirmations, a WhatsApp thread, and a Notes app entry that contradicted all of them. That trip is the reason I now build every single vacation in one place: a Google Sheets holiday travel itinerary planner that I duplicate, tweak, and reuse for every trip.
Not Excel. Google Sheets — specifically. And the difference matters more than people think. This post walks you through the exact structure I use, the formulas that do the boring math for you, the color-coding that makes a 14-day trip readable at a glance, and the shareable-link setup that keeps four travelers from booking the same museum twice.
By the end you’ll have a planner you genuinely reuse, not a one-off you abandon by day two.
👉 Grab the free template here (view-only): Trip Planner — MASTER Template (Google Sheets)
The link above is set to view-only on purpose — so the master never gets edited by accident. To use it, make your own copy (instructions in the “How to duplicate and reuse” section below). The copy is yours to edit freely.
Why Google Sheets beats Excel (and apps) for trip planning
I love a good travel app. But for planning, Sheets wins on the things that actually break trips.
| Feature | Google Sheets | Excel | Travel apps (TripIt, Wanderlog) |
|---|---|---|---|
| Real-time group editing | Yes, native | Clunky via OneDrive | Often paywalled |
| Works offline on phone | Yes (with setup) | Yes | Usually yes |
| Free | Yes | Paid | Freemium |
| Custom formulas for budgets | Yes | Yes | No / limited |
| One shareable link for everyone | Yes | Painful | Sometimes |
| You own the data forever | Yes | Yes | No — locked in their app |
The killer feature is the single shareable link. When my sister and her husband joined us in Porto, I sent one URL. They added their flight times, marked which dinners they wanted in, and I could see it instantly. No “can you export that?” No app account. No version called Itinerary_FINAL_v3_REAL.xlsx.
The honest trade-off: apps like Wanderlog auto-import confirmation emails and plot things on a map. Sheets won’t do that for you. If map visualization is your top priority, use an app alongside the sheet. But the sheet is your source of truth.
The structure: five tabs that handle everything
Open a blank Google Sheet and create these five tabs along the bottom. This separation is the whole secret — don’t cram it all onto one page.
- Overview — trip dates, travelers, key links, total budget
- Daily Itinerary — the hour-by-hour plan, color-coded by day
- Bookings — flights, hotels, trains, tours with confirmation numbers
- Budget — every expense, auto-summed by category
- Packing & Notes — checklists, visa info, emergency contacts
Let me show you what goes inside each, with the formulas.
Tab 1: Overview
Keep this short. It’s the dashboard you glance at. Here’s the exact layout, so you can build it cell-for-cell without guessing:
A B
1 TRIP OVERVIEW
2
3 Field Value
4 Trip Portugal, Sept 2025
5 Start date 9/12/2025
6 End date 9/21/2025
7 Travelers 4 (Me, Sam, Lena, Tom)
8 Nights =DATEDIF(B5,B6,"d")
9 Total budget (est.) ='Budget'!C20
10 Actual paid so far ='Budget'!D20
11 Map link [paste Google My Maps URL]
- B5 / B6 are real dates (formatted as dates), which is what lets
DATEDIFwork. - B8 counts nights automatically so you never miscount.
- B9 / B10 pull straight from the Budget tab’s total row (here, row 20). That cross-tab reference (
='Budget'!C20) is the move most people miss — it turns five separate pages into one connected document that updates itself.
Tab 2: Daily Itinerary (the heart of it)
This is where the color-coding earns its keep. Columns:
Day | Date | Time | Activity | Location | Duration | Cost | Notes
Mapped to columns: A=Day, B=Date, C=Time, D=Activity, E=Location, F=Duration, G=Cost, H=Notes. Row 1 is your header; data starts on row 2. The structure I use puts one row per activity, grouped by day. Here’s a real, copyable slice of my Portugal plan:
| Day | Date | Time | Activity | Location | Cost (€) | Notes |
|---|---|---|---|---|---|---|
| 1 | Sep 12 | 14:30 | Land at LIS | Lisbon airport | 0 | Metro to Baixa, ~€1.80 |
| 1 | Sep 12 | 16:00 | Check in | Hotel, Baixa | 0 | Conf #LX4471 |
| 1 | Sep 12 | 19:30 | Dinner | Time Out Market | 60 | No reservation needed |
| 2 | Sep 13 | 09:00 | Tram 28 | Start at Martim Moniz | 7.20 | Go early, queues by 10 |
| 2 | Sep 13 | 11:00 | Castelo de São Jorge | Alfama | 40 | Buy online to skip line |
| 2 | Sep 13 | 13:30 | Lunch | Alfama | 50 | — |
| 3 | Sep 14 | 08:40 | Train to Sintra | Rossio station | 9.20 | 40 min ride |
| 3 | Sep 14 | 10:00 | Pena Palace | Sintra | 56 | Book a timed slot |
| 3 | Sep 14 | 14:00 | Quinta da Regaleira | Sintra | 44 | The well is the highlight |
Color-coding by day (the part people get wrong)
Don’t manually highlight cells — you’ll never keep it consistent across 14 days. Use conditional formatting tied to the Day column so colors apply automatically.
The naive approach is one rule per day: =$A2=1 → blue, =$A2=2 → green, and so on. That’s fine for short trips, but Google Sheets caps conditional formatting at 100 rules per sheet, and one-rule-per-day setups get unwieldy fast — plus a 20-day trip eats 20 rules before you’ve added anything else.
The scalable workaround: one rule that rotates colors using MOD. Instead of a rule per day, you create five rules that cycle through five colors no matter how long the trip is.
Set up these five rules on your range (e.g. A2:H500), each with “Custom formula is”:
| Rule | Formula | Color |
|---|---|---|
| 1 | =MOD($A2,5)=1 |
pale blue |
| 2 | =MOD($A2,5)=2 |
sage green |
| 3 | =MOD($A2,5)=3 |
sand |
| 4 | =MOD($A2,5)=4 |
lavender |
| 5 | =MOD($A2,5)=0 |
pale orange |
MOD($A2,5) returns the remainder when the day number is divided by 5 — so Day 1 → blue, Day 2 → green … Day 5 → orange, Day 6 → blue again, and the cycle repeats indefinitely. Five rules total, any trip length, and you never hit the 100-rule wall.
The $A2 (dollar sign on the column, not the row) means “look at column A on this row.” Now every row colors itself automatically, even when you insert new activities mid-day. If you add a Day 3 stop, it picks up the right color on its own.
Use muted tones. Bright red and neon yellow look chaotic on a 10-day trip — the five rotating pastels above are deliberately soft so a long itinerary stays scannable.
A duration/cost trick
If you want a running daily spend, add a helper. In a cost column, the per-day subtotal is easy with SUMIF:
=SUMIF($A:$A, 2, $G:$G)
This sums all costs (column G) where the Day (column A) equals 2. Drop one of these in a little summary box and you instantly see “Day 2 costs €64.40.” That’s how you catch the day where you’ve accidentally stacked three €50 activities.
Tab 3: Bookings
This tab saved my Sintra-ticket argument from ever happening again. Columns:
Type | Provider | Confirmation # | Date | Time | Cost | Paid? | Link
The “Paid?” column uses a checkbox (Insert → Checkbox). At a glance you see what’s still outstanding. Add a counter at the top:
=COUNTIF(G2:G50, TRUE) & " of " & COUNTA(A2:A50) & " booked"
That spits out “7 of 12 booked” — a tiny line that tells you exactly how much pre-trip admin is left.
Insider move: link your confirmation PDFs from Google Drive in the Link column. But mind one trap — see the offline note below about keeping PDFs as separate Drive files rather than trying to cram everything into one giant sheet.
Tab 4: Budget
Columns: Category | Item | Estimated | Actual | Paid by → A=Category, B=Item, C=Estimated, D=Actual, E=Paid by.
Use categories like Flights, Lodging, Transport, Food, Activities, Misc. Then build a small summary table (placed at the top or on the right):
| Category | Estimated | Actual |
|---|---|---|
| Flights | =SUMIF(A:A,"Flights",C:C) |
=SUMIF(A:A,"Flights",D:D) |
| Lodging | =SUMIF(A:A,"Lodging",C:C) |
=SUMIF(A:A,"Lodging",D:D) |
| Total | =SUM(...) |
=SUM(...) |
For group trips, the “Paid by” column plus a SUMIF per person tells you who’s owed what at the end — no more “wait, did I cover the rental car?” Add:
=SUMIF(E:E, "Sam", D:D)
to total everything Sam paid. Compare against the per-person fair share and you have a settle-up number in seconds.
Why this beats Splitwise for one specific case: multi-currency trips
Splitwise is great until you’re on a trip that crosses currencies and you lose connectivity. Picture this: you’re settling up after a Portugal-then-Morocco leg, half your expenses are in EUR and half in MAD, and you’re in a riad with dead Wi-Fi and no data. Splitwise needs a live connection to fetch its exchange rates — when it can’t, your conversions stall or go stale.
Your sheet doesn’t care. Add a single FX rate cell (say, 1 MAD = 0.092 EUR) that you update by hand whenever you see a rate, and convert everything with one formula:
=SUMIF(F:F, "MAD", D:D) * $H$1
where $H$1 holds your manual FX rate and column F flags the currency. It works offline, it shows its math, and a co-traveler can sanity-check the rate you used. For a single trip with mixed currencies and patchy signal, that transparency and resilience win.
Tab 5: Packing & Notes
Underrated. A simple checklist with checkboxes, plus a notes block for:
- Passport expiry dates (some countries require 6 months’ validity)
- Embassy / emergency numbers for the destination
- Driving rules if you’re renting (Portugal requires you carry your license + IDP for some nationalities)
- Plug type (Portugal uses Type C/F, 230V)
- Pharmacy translations for any medication you carry
Setting up the shareable link properly
Click Share (top right) → change “Restricted” to “Anyone with the link.” Then choose the access level deliberately:
- Editor — for fellow travelers who’ll add their own flights and vote on plans. This is what I use for group trips.
- Commenter — for the friend who wants to suggest a restaurant without nuking your formulas.
- Viewer — for parents who just want to know where you’ll be on the 14th.
Critical group-trip tip: before you hand out Editor access, protect your formula cells. Right-click the range → “Protect range” → set it to warn or restrict edits. I learned this when a co-traveler dragged a cell and broke every SUMIF on the budget tab two days before departure. Protect the summary tables; leave the activity rows open for everyone to edit.
How to duplicate and reuse (the 30-second mechanic)
This is the whole promise of the headline — so here’s exactly how it works once you’ve got the template (or built your own master).
- Open the template link.
- File → Make a copy. This drops an editable copy into your Drive. The original stays untouched and view-only.
- Rename it with destination + year — e.g.
Trip — Tokyo 2026. Consistent naming means your Drive search actually finds last year’s trips later.
Then, in the fresh copy:
Clear (start blank for the new trip):
– All rows in Daily Itinerary below the header
– All expense rows in Budget (keep the summary table and its formulas)
– All rows in Bookings
– Checkbox states in Packing (uncheck everything)
– The dates, travelers, and trip name in Overview
Keep (the reusable scaffolding — never delete these):
– All five tabs and their headers
– Every formula: DATEDIF, the SUMIF summaries, the booking counter, cross-tab references
– The five MOD-based conditional formatting rules (they auto-color the new trip’s days the moment you type day numbers)
– The packing checklist items (just unchecked) — most of your packing list repeats every trip
That’s it. You built the machinery once; each new trip is a five-minute clear-and-fill, not a rebuild.
Make it work offline on your phone
A planner you can’t open in an Alfama backstreet with no signal is useless. To use Sheets offline:
- Install the Google Sheets app on your phone.
- Open the sheet once while online.
- In the file list, tap the three dots → “Available offline.”
Now it loads even in airplane mode. Do this the night before you fly. I also screenshot the next day’s itinerary every morning as a fallback — phones die, screenshots stay in your camera roll.
One quiet gotcha — file size and linked PDFs. Offline sync works best when the sheet itself stays lean. Don’t try to stuff boarding-pass images or scanned PDFs into the spreadsheet to make them “travel with it” — large embedded files can push the cached copy past what syncs cleanly, and the failure is silent: the sheet looks fine until you tap the attachment offline and get nothing. Instead, keep PDFs as separate files in the same Drive folder and mark each PDF “Available offline” individually. Link to them from the Bookings tab so you know they exist, but let them sync as their own files. A skinny sheet plus separately-cached PDFs is far more reliable in a dead-signal train station than one bloated everything-file.
A fully worked 4-day example you can copy
Here’s a compact version of a real long-weekend structure — Barcelona, 4 days, 2 people — with rough costs so you can see the shape of a complete plan.
Day 1 (Fri): Land BCN 13:00 → Aerobús to Plaça Catalunya (€7.25 pp) → check in El Born → tapas crawl on Carrer de Blai (~€35 pp). Day total: ~€85 for two.
Day 2 (Sat): Sagrada FamÃlia, 09:00 timed entry (€26 pp, book weeks ahead) → lunch in Grà cia (~€40) → Park Güell, 15:30 slot (€10 pp) → sunset at Bunkers del Carmel (free). Day total: ~€112.
Day 3 (Sun): Day trip to Montserrat — train + cable car combo (~€25 pp) → hike, monastery → back by evening → dinner in Gothic Quarter (~€60). Day total: ~€110.
Day 4 (Mon): Mercat de la Boqueria breakfast (~€15 for two) → Picasso Museum (€12 pp = €24) → beach time at Barceloneta (free) → flight out. Day total: ~€39 for two.
Rough 4-day total for two (excl. flights/hotel): ~€346. Plug those into your Budget tab and the SUMIF totals build themselves.
Notice the rhythm: one big anchor activity per day, never two ticket-timed events back to back, buffer before travel days. That pacing is what separates a trip you enjoy from a forced march.
Common mistakes (the non-obvious ones)
Over-scheduling. The classic. Three timed-entry attractions in a day means you spend the day watching the clock instead of the city. Cap it at one or two anchored slots and let the rest breathe.
Ignoring transit time between rows. People list “11:00 Park Güell, 11:30 Sagrada FamÃlia” — those are 30 minutes apart by metro on a good day, and Park Güell is uphill. Add a transit row or note the travel minutes. Your itinerary lies if it doesn’t account for moving between places.
Using hard-coded numbers instead of formulas. If you type your budget total manually, it’s wrong the moment you add an expense. Let SUMIF and SUM do it. The point of Sheets over a Notes app is the math.
Not protecting formulas before group sharing. Covered above, but it’s the single most common way a shared planner gets wrecked.
Forgetting time zones on flights. A flight landing “20:00” — local time or departure time? Always log arrival in destination local time, and note red-eyes that cross midnight. I add the timezone in the Notes column for any international leg.
Building it too detailed to maintain. If every coffee break is a row, you’ll abandon it. Plan at the anchor-activity level. Detail equals fragility.
Honest trade-offs
No tool is perfect for every trip. Here’s where this planner shines and where it doesn’t:
- Solo, simple trip? You might skip the Budget tab entirely and just use Overview + Daily Itinerary. Don’t build five tabs for a weekend in one city.
- Big group, splitting costs? The Budget tab with per-person
SUMIFis worth every minute. This is where Sheets crushes apps — especially across currencies and dead-signal zones, as shown above. - You want a map view? This is the real limitation. Sheets won’t plot pins on a map, full stop — there’s no native geocoding, no “show me my day on a map.” The fix is to pair it with Google My Maps (also free, also shareable): drop your activity locations as pins, color them by day to match your sheet, and link the map URL from the Overview tab (the
Map linkcell in the layout above). You keep one source of truth in the sheet, and one glanceable map. Apps like Wanderlog bundle both, but they lock your data in; the Sheets + My Maps combo keeps you owning everything for the cost of one extra link. - Heavy flight/hotel emails? Use TripIt to auto-collect confirmations, then copy the key numbers into your Bookings tab. Best of both — automation for capture, Sheets for control.
The honest summary: Sheets asks for ten minutes of setup that an app does for you, and it won’t draw you a map on its own. In exchange, you get formulas an app can’t run, offline reliability an app can’t match when its servers are unreachable, data you own forever — and one file you genuinely reuse.
Your takeaway: build it once, reuse it forever
That’s the promise in the headline, and it’s the whole point. You don’t rebuild a planner every trip — you build the machinery once and copy it.
So do it now. Open the free template and File → Make a copy, or build your own five-tab master from this guide: set up the five MOD conditional-formatting rules for the rotating day colors, wire in the SUMIF budget summaries and the DATEDIF night count, and save it as “Trip — MASTER Template.”
From there, every future trip is Make a copy → rename with destination + year → clear the rows → fill in the dates → go. Lisbon, Barcelona, Tokyo, and every long weekend in between, all built on the one sheet you set up today. You’ll never again stand in an Airbnb arguing about whether you already paid for the Sintra tickets — because it’s right there, in the file you reuse every single trip.