Design a Mobile Travel Itinerary App

Travel itinerary apps (TripIt, Hopper, Google Trips legacy) auto-organize a trip from confirmation emails into a unified itinerary. The interview tests whether you understand email parsing, time-zone-aware data modeling, real-time flight tracking, and the operational realities of a stressed traveler at an airport.

Functional requirements

  • Forward email confirmations; app extracts trip details
  • Unified timeline of flights, hotels, rentals, restaurants
  • Time-zone aware: shows arrival in destination time
  • Real-time flight status (delays, gate changes)
  • Offline maps and notes for destinations
  • Sharing with travel companions

Email parsing

Source of trip data: confirmation emails forwarded by the user.

Parsing strategies:

  • Pattern matching for known senders (United, Delta, Hilton)
  • Generic ML model for unknown formats
  • Schema.org structured data when available

Modern apps increasingly use LLMs for robust parsing across diverse email formats.

Time-zone modeling

The most-broken aspect of travel apps. Each event has:

  • Local start/end time
  • Time zone (IANA identifier)
  • Logical “trip day” for organizing

Critical: a 1pm Tokyo arrival is at midnight in NYC. The display must show local-to-the-event time, not user’s home time.

Real-time flight tracking

Sources:

  • FlightAware, FlightStats, OAG (commercial APIs)
  • Airline-specific APIs (limited public access)

Push notifications for:

  • Schedule change
  • Gate change
  • Boarding
  • Departure / arrival

Critical that these are reliable — travelers count on the app.

Offline maps and notes

For destinations without reliable cellular:

  • Pre-download maps (OpenStreetMap or Google offline maps)
  • Cache key destinations: hotel address, restaurant reservations
  • Cache trip docs (boarding pass PDFs, hotel confirmations)

Wallet integration

Boarding passes go in the user’s mobile wallet:

  • Apple Wallet: PKPass format
  • Google Wallet: Wallet API

App can generate or import these from email attachments.

Sharing

Travel companions need access:

  • Read-only sharing via link or in-app invite
  • Full collaboration: anyone can edit
  • Per-event sharing (only the joint dinner, not the whole trip)

Calendar integration

Sync trip events to user’s calendar:

  • iOS: EventKit
  • Android: Calendar Provider
  • Cross-platform: ICS export

Battery and data

Light. Travel apps are reference apps, not always-on. The exception: real-time flight tracking pushes are infrequent but high-value.

Frequently Asked Questions

What if the user forwards an email in a non-supported language?

Modern LLM-based parsers handle most languages. Older pattern-matching parsers fail; surface the email to manual review.

How does the app handle a multi-leg flight?

Each leg as separate event. Display as a connected itinerary. Track delays per leg.

What about loyalty programs?

Connect to airline/hotel accounts; track points and tier progress. OAuth is the norm.

Scroll to Top