Travel Itinerary Template
Plan any trip day by day in your browser. Add activities, track costs in multiple currencies, build a packing list, and export to PDF, Markdown, ICS calendar, or a shareable read-only link. Free, no signup, no upload.
What it does
Day-by-day builder
Pick your dates and the day cards generate automatically. Add unlimited activities per day, group them by morning / afternoon / evening, or pin exact start and end times. Reorder days and activities with arrow buttons (keyboard-friendly).
Six starter templates
Weekend Getaway, 7-Day Europe Trip, Business Trip, Honeymoon, Family Vacation, and Backpacking — each pre-loaded with realistic activities, time blocks, and rough costs. Clone, then customize.
Multi-currency cost tracking
Every activity carries its own currency. Per-day and trip totals roll up into your chosen display currency. A snapshot rate table for 30 common currencies ships built in — override any pair if you need today's number.
Five export formats
PDF (print-ready), Markdown (.md), plain text (.txt), ICS calendar (.ics, RFC 5545), and shareable read-only link. PDF generation is lazy-loaded so it doesn't slow down the initial page.
Packing checklist with smart defaults
Default checklist seeded based on trip type (business, leisure, family, solo, group). Check off items as you pack, see a live completion bar, add or remove anything.
Document vault — client-side only
Passport number, visa info, insurance details, emergency contacts, blood type, allergies. Stored only in this browser's localStorage. Never sent to any server. Excluded from share links by default.
Edit mode + presentation mode
Two-pane layout on desktop with live preview on the right. Switch to presentation mode for a clean, print-ready single-column view perfect for sharing or printing.
Undo / redo, autosave, keyboard shortcuts
Last 20 actions reversible with Ctrl/Cmd+Z and Shift for redo. Autosaves to localStorage every 600ms. Ctrl/Cmd+P prints. No data ever leaves your browser.
How to use Travel Itinerary Template
- 1Set up the trip
Enter a trip name, destinations, start and end dates, number of travelers, and trip type. Pick your display currency — every cost will roll up into it.
- 2Or pick a template
Click "Templates" in the toolbar to browse six starter trips. "Use this template" clones it into the builder so you can customize from a working example instead of a blank page.
- 3Build the day-by-day
Day cards auto-generate from your date range. Click "Add activity" on any day, give it a title and category, optionally add a location, time, cost, currency, booking reference, link, and notes.
- 4Track packing and documents
Scroll down for the packing checklist (pre-seeded by trip type) and the document vault (passport, insurance, emergency contacts — stored only in your browser).
- 5Export or share
Click "Export" for PDF, Markdown, plain text, or ICS calendar. Click "Share" for a read-only link that encodes your trip in the URL fragment (no server upload). Switch to presentation mode for a clean print view.
When to use this
Family vacation with multiple stops
Parents planning a 7-day Disney + beach trip use the Family Vacation template, add park reservation times, pack the checklist with kid essentials, and email the PDF to grandparents with the emergency-contact section visible.
Business trip the calendar app understands
A consultant builds a 3-day client trip with flights at custom times, exports the .ics file, and imports it into Google Calendar — every flight, meeting, and dinner shows up with the right time and location.
Backpacking route across multiple cities
A solo traveler clones the 14-day Backpacking template, drops in real hostel names and transit costs in EUR, USD, and CZK, and shares the read-only link with friends planning to meet at stop #4.
Honeymoon planning the long way
A couple uses the Honeymoon template, customizes spa days and dinners, tracks total spend across USD and the destination currency, prints a clean PDF for the resort concierge.
Group trip with shared logistics
A group of friends builds a single itinerary together, includes a shared restaurant reservation list in the packing section, and shares the read-only link in their group chat — no signup, no per-person account.
Common errors & fixes
- Share link too large to copy
- The share link encodes the entire trip in the URL. Itineraries with very long notes or 50+ activities can exceed the 32 KB browser-safe limit. Export as Markdown or PDF instead, or trim notes.
- Shared link won't open — "invalid or corrupted"
- The link payload failed validation. This usually means the URL was truncated when pasted (chat apps sometimes wrap long URLs). Re-share with a service that preserves the full URL, or send the .md file instead.
- .ics file imports with the wrong time
- The exported ICS uses floating local time (no timezone). Most calendar apps treat that as "the device's current timezone." Set the activity's custom start time, then open the .ics on the device you'll use during the trip.
- Costs in foreign currency look off
- Built-in FX rates are a snapshot from 2026-05-17, not live. For accurate totals, open "Set custom FX rates" under the cost summary and enter today's rate for each pair.
- My trip vanished after clearing cookies
- Trips are stored in browser localStorage. Clearing site data deletes them. Export to Markdown or share-link before clearing if you want to restore later.
- Document vault data showed up in my shared link
- You enabled "Include this vault in share-link exports" under the vault section. Turn it off and re-copy the share link to exclude vault fields.
Technical details
| Storage | Browser localStorage (`dz.trip.*` keys). No server, no cookies for trip data. |
| Share link | URL fragment (`#a=...`) with lz-string compression. Fragment never sent to server. |
| Max trip size | 60 days · 25 activities per day · 100 packing items · 20 destinations |
| PDF engine | pdf-lib (dynamically imported only when "Export PDF" is clicked) |
| Calendar format | ICS / RFC 5545 with CRLF line endings, 75-octet line folding, standard VEVENT |
| Currency snapshot | 30 currencies, USD-pivoted, dated 2026-05-17 |
| Undo depth | 20 actions (ring buffer) |
| Autosave | 600ms debounced to localStorage on every change |
| Privacy | 100% client-side — verifiable in DevTools → Network during use |
| Bundle | Tool-specific JS well under 80 KB gzipped (PDF generator lazy-loaded) |
Why a fragment-based share link instead of a server-stored share URL
Most "share my trip" tools persist the itinerary on a server and give you a short URL. That requires an account or at least a database, and the data sits on someone else's machine indefinitely. We chose the URL-fragment approach because the trip data, compressed with lz-string, fits comfortably inside a URL for almost every realistic itinerary — and the browser never sends the part after the # to the server. The trade-off is a longer URL and a hard size limit. For trips under ~30 KB of compressed JSON (which is almost all trips), this is a feature, not a bug: you own the data, the link is the data, and nothing requires our infrastructure to keep working.
If the link exceeds the limit, the tool tells you and points you at the Markdown export, which has no size constraint.
Multi-currency without lying about rates
A travel planner that hides the exchange rate behind a friendly total is making a guarantee it can't keep. Rates move. The honest design is: every activity stores its own cost and currency, and the per-day and trip totals are computed at display time using a clearly-labeled snapshot rate. If today's rate matters to you, override the pair — the override lives in the trip, syncs through autosave, and travels with the share link.
The snapshot was sourced from widely-cited cross rates on 2026-05-17 and uses USD as the pivot. That keeps the table to 30 entries instead of 30 × 29 = 870.
ICS exports are floating local time on purpose
A meeting at 14:00 in Tokyo and the same meeting at 14:00 in Lisbon mean very different absolute moments. If we wrote the .ics with explicit UTC offsets based on the user's current timezone, importing the calendar on a phone set to a different timezone would shift the event. Floating local time — DTSTART without a TZID — tells every calendar app "this is 14:00 wherever you are."
That's the right behavior for a printed itinerary: if your phone is set to Tokyo time when you arrive, the meeting still says 14:00. The cost is that you can't see "what time is my Tokyo meeting in my home timezone before I leave." Treat the .ics as a destination calendar, not a planning calendar.
The document vault is a privacy-first surface
Passport numbers, insurance policies, and emergency contacts are sensitive data, and there's no good "share my passport on the internet" UX. The vault lives in localStorage on your device only, with an explicit callout above the section. It is excluded from the share-link payload by default — if you want to include it, you have to tick a checkbox that warns you anyone with the link will see those fields.
This is the same threat model as keeping the data in Notes or a spreadsheet on your phone: another app on the same browser profile could read it if compromised, but no remote attacker can. For higher-sensitivity scenarios (long-term storage, multiple devices), use a dedicated password manager and link it from the booking-reference field.
Frequently Asked Questions
Is anything saved on a server?
- No. Everything stays in your browser. The trip data, the document vault, the packing list — all stored in localStorage. The share link encodes the entire trip in the URL fragment (after the #), which browsers never send to servers. You can verify in DevTools → Network: no XHR or fetch calls leave the page during normal use.
How do I share my trip with someone?
- Click "Share" in the toolbar. The tool builds a URL that contains your entire itinerary, compressed and encoded into the URL fragment, and copies it to your clipboard. Anyone who opens that URL sees your trip — read-only, until they click "Edit". They can save their own copy independently.
What's in the .ics calendar export?
- One VEVENT per activity, with title, location, category, cost, booking reference, link, and notes folded into the description. Activities with a custom start time get a timed event; activities without get all-day events for their day. Times are written as "floating local" — they show up as whatever wall-clock time you set, in whatever timezone the device opens the file. Import into Google Calendar, Apple Calendar, Outlook, Fantastical, or any RFC 5545-compliant app.
Does this work offline?
- Yes, after the first page load. The tool, the templates, the export logic, and the share-link decoder all run client-side. PDF generation pulls in pdf-lib on the first click via dynamic import — that one transfer is the only thing that needs a connection during the session.
Can I plan a trip with multiple stops in different currencies?
- Yes. Every activity carries its own currency code. Per-day totals and the trip total roll up into your chosen display currency using a built-in snapshot rate table dated 2026-05-17. If today's rate matters, open "Set custom FX rates" under the cost summary and enter your own number for each pair.
How big a trip does this handle?
- Up to 60 days, 25 activities per day, 20 destinations, and 100 packing items. The share-link limit is around 32 KB compressed JSON — most realistic trips fit easily. If yours is too big to share via link, use the Markdown or PDF export instead.
Why a hash-fragment share link instead of a /share/[id] URL?
- A /share/[id] URL needs a backend to store the data. The PRD called for one, but it also said "client-side only, no backend." The fragment-based link satisfies both: you own the data, nothing is stored on our servers, and the URL works forever (until the link itself is lost). The trade-off is a longer URL.
What about my passport number — is the document vault safe?
- The vault writes to localStorage only — same place your browser stores cookies for the sites you log into. No remote attacker can read it. The risk surface is local: anyone with physical access to your unlocked browser profile can open DevTools → Application → localStorage and see the values. We exclude the vault from share-link exports by default; you have to opt in per trip.
Do you store any of this for me across devices?
- No. We deliberately do not. There's no account, no sync, no cloud copy. If you want to move a trip to another device, copy the share link (or export to Markdown), open it on the second device, and the trip hydrates there.
How do I edit a trip someone shared with me?
- When you open a share link, the trip hydrates into the editor and the URL fragment clears. From there it's yours — edit anything, autosave kicks in, and you can re-share or export from your own copy. The original sender's link is unchanged.
Can I use my own templates?
- Not in v1 — only the six built-in templates. The Markdown export is a fine starting point if you want to keep your own template files in a notes app and paste them back in. Custom user-saved templates are on the v2 list.
What about live exchange rates?
- Live rates would require a backend or a third-party API, which would compromise the "everything in your browser" guarantee. The built-in rate table is dated 2026-05-17 and ships with the app. For accurate per-pair conversion, use the per-pair rate override under the cost summary.
Related Tools
Attendance Tracker
Generate a ready-to-use Excel attendance sheet with formulas, dropdowns, and a summary — enter your roster and date range, download in seconds.
Invoice Generator
Create professional invoices with logo, tax calculations, and PDF download — free, no signup.
Compound Interest Calculator
Calculate how your savings grow with daily, monthly, or annual compounding. Includes growth chart, year-by-year schedule, and simple vs compound interest comparison.
Calendar Heatmap Generator
Turn any dated data into a GitHub-style contribution heatmap. Paste CSV, customize colors, and export as PNG or SVG — free, no signup.
Lesson Plan Template Generator
Download 20 free lesson plan templates as Word or PDF — daily, weekly, 5E, preschool, and more. Or fill in your plan and generate a formatted document in seconds.