Inspiration

Travel plans rarely fail all at once. A gate changes, a flight slips, the weather turns, or the route from the airport no longer works—and suddenly a perfectly organized itinerary becomes a stressful chain of decisions. Existing itinerary apps are good at storing bookings, but they often stop where the traveler needs help most: deciding what to do next.

Voya is designed as a calm, agentic layer around the services travelers already use. It does not sell flights or hotels. It turns confirmations into a living itinerary, monitors the real-world context around each trip, and explains the next best action.

What it does

Voya is a local-first iPhone travel companion.

  • Import a flight, hotel, train, event, transfer, or reservation from a screenshot, photo, PDF, file, or pasted text.
  • Convert the confirmation into normalized itinerary data with confidence scores.
  • Require explicit review when extracted data is uncertain.
  • Build a coherent, time-zone-aware trip timeline.
  • Enrich the itinerary with live flight status, gates, baggage, aircraft details, weather, air quality, pollen, nearby events, and route options.
  • Compare transit, driving, walking, and cycling with practical buffers and a clear leave-by time.
  • Detect trip-wide risks through Trip Guardian instead of treating every booking as an isolated card.
  • Use specialist agents for bounded tasks such as flight disruption analysis, mobility, booking completeness, recovery, discovery, and concierge support.
  • Keep durable missions so the app can continue working toward an outcome instead of reducing every interaction to a one-shot chat.

The signature experience is simple: import a confirmation, let Voya verify it, and receive a specific, grounded action when the trip changes.

How we built it

The iOS client is built with Swift and SwiftUI. Confirmed itinerary data remains on the device, while the client sends only the minimum context required for a task to a TypeScript backend deployed as Vercel Functions.

GPT-5.6 powers travel briefs, risk assessment, assistant reasoning, agent synthesis, and recommendation explanations. Model output is grounded with provider data and separated from deterministic facts. FlightAware supplies flight operations data; Google Routes and Places supply mobility and location context; Google Air Quality and Pollen APIs add environmental context; OpenWeather supports weather monitoring; Ticketmaster supplies event candidates; Pexels and Wikipedia provide attributed destination imagery; and Upstash Redis stores short-lived watches, missions, caches, and deduplication records.

Voya uses a coordinator-and-specialists architecture. The coordinator selects a bounded specialist, the specialist returns a finding or proposal, and the user remains in control of itinerary changes. Trip Guardian evaluates the journey as a whole and suppresses low-value warnings so the experience stays calm.

Built during OpenAI Build Week

Voya existed before the submission period as a local-first itinerary application. During Build Week, we meaningfully extended it with Codex and GPT-5.6 into an agentic travel companion.

The new work includes:

  • Trip Guardian and trip-wide risk reasoning.
  • A coordinator with bounded specialist agents.
  • Durable missions and background agent workflows.
  • GPT-5.6 travel briefs and second-pass risk assessment.
  • A redesigned assistant that combines deterministic itinerary facts with provider-grounded AI guidance.
  • Full FlightAware snapshots, disruption context, deep-linked push handling, and safer live refresh behavior.
  • Google Routes persistence, local-time handling, practical buffers, emissions, comfort, cost context, and provider attribution.
  • Google Places verification plus air-quality and pollen context.
  • Stronger extraction review, visible confidence, and safeguards that prevent low-confidence AI output from overwriting verified facts.
  • Extensive fixes for time zones, cross-year sorting, transfer timing, itinerary merging, and disrupted travel flows.

The dated Git history and Codex session provide a clear record of work completed during the submission period.

How we used Codex

Codex was our primary engineering collaborator throughout Build Week. We used it to inspect the existing architecture, design the agent boundaries, implement Swift and TypeScript changes across the client and backend, trace time-zone and data-merging bugs, validate third-party API usage against official documentation, run builds, review diffs, and iterate on the product experience.

Codex accelerated cross-stack changes that would normally require repeatedly switching between iOS state management, backend handlers, model prompts, provider schemas, and operational documentation. Product decisions—such as keeping confirmed data local, requiring review for uncertainty, bounding specialist authority, and preferring fewer actionable warnings—remained deliberate human decisions.

Challenges

The hardest problem was not generating advice. It was deciding which facts the model may interpret and which facts it must never invent. Flight times, gates, routes, weather alerts, and source URLs require deterministic provenance, while GPT-5.6 is most valuable for explaining trade-offs, identifying cascading effects, and turning verified context into a calm next action.

Time zones were another major challenge. Travel data mixes absolute timestamps, airport-local wall-clock times, provider schedules, and device-local display. We separated calculation from presentation and preserved verified booking times during live refreshes.

Accomplishments that we're proud of

We built a coherent native product rather than a collection of AI demos. Voya can move from an unstructured confirmation to a verified itinerary, enrich it with real provider context, reason about the trip as a system, and present an actionable recommendation without taking control away from the traveler.

We are also proud of its graceful degradation: missing providers produce transparent warnings and useful handoff links instead of fabricated data or a broken interface.

What we learned

Agentic products become more trustworthy when agents have narrow responsibilities, explicit evidence, and limited authority. GPT-5.6 is most effective here as a reasoning and communication layer over verified tools—not as a replacement for them.

We also learned that a travel companion should optimize for confidence and calm, not message volume. The best alert is not the most sophisticated one; it is the one that arrives when the traveler can still act.

What's next

Next we plan to add collaborative trips, richer disruption recovery, alternative-flight proposals, calendar and wallet handoff, broader offline support, and more transparent agent activity. The long-term goal is for Voya to become the trusted operational layer around every trip: before departure, in motion, and whenever plans change.

Built With

  • apple
  • flightaware-aeroapi
  • google-maps-platform
  • gpt-5.6
  • ios
  • node.js
  • notification
  • openai-api
  • openai-codex
  • openweather-api
  • push
  • swift
  • swiftdata
  • swiftui
  • ticketmaster-api
  • typescript
  • upstash-qstash
  • upstash-redis
  • vercel
Share this project:

Updates