← Built with VB
Voice for your appTravel techIdeaOutbound callingClient actions

dia.loc: a voice concierge that plans and calls for your whole trip, powered by Vocal Bridge

Published 14 August 2026

A voice-first travel app that searches live flights and hotels, drives a street-level map, and places real phone calls to businesses while you watch the transcript.

TL;DR Built by Jinhyun Kim, Munhyeon Wang, Yoonjin Oh, and Dongjoon Seo, dia.loc plans an entire trip from a single conversation. On Vocal Bridge's Voice for your app surface, it searches live flights and hotels through Sabre APIs, moves the traveler from a globe view down to street-level maps, and, when the answer isn't online, places real outbound calls to hotels and attractions. The traveler watches the live transcript throughout. dia.loc took first place.

The problem: the last mile of trip planning isn't searchable

Booking looks like a search problem until you hit the questions search can't answer. A listing gives you the nightly rate. It won't tell you whether this property will honor an early check-in for your arrival, whether there's a vegan option near your station, or what today's actual hours are at a shrine that closes early for a holiday.

Those answers live on the other end of a phone line. So the traveler ends up dialing, in a foreign country, in a language they may not speak, during business hours in another time zone. Planning stalls on the handful of details that matter most.

What they built

dia.loc collapses that workflow into one spoken conversation. The traveler talks, and the app plans out loud with them. It searches live flights and hotels, narrows by airline or neighborhood, and renders every result on a map that moves from a globe down to street level as the plan takes shape. And when a question can only be answered by a human, the agent places a real outbound call, asks in plain language, and folds the answer back into the itinerary.

The result is a single continuous session that carries a trip from "plan me something in Tokyo" to three bookings on hold and a "Pay and confirm" button, without leaving the conversation. Voice is the through-line tying search, map, and live calls into one flow instead of three tools.

Watch the demo

How they use Vocal Bridge

dia.loc runs on Vocal Bridge's Voice for your app surface, where the voice agent and the UI share a real-time data channel. Narrow results to one airline and the flight list filters. Ask for restaurants in Kabukicho and the map re-pins. Confirm early check-in on a call and a note lands on the itinerary card. Speech and screen stay in lockstep, both directions.

The split is clean. dia.loc owns the trip logic, the Sabre integration, the map, and outbound call orchestration. Vocal Bridge owns the real-time voice channel: transport, the voice-to-voice model, turn detection and barge-in, transcript streaming, and the conversational fillers that keep a traveler grounded while a slow tool call runs.

import { useAgentActions } from "@vocalbridgeai/react";

const { onAction } = useAgentActions();

// agent → app: search results drop pins on the live map
onAction("show_hotels", ({ hotels }) => {
  setPins(hotels.map((h) => ({ id: h.id, lat: h.lat, lng: h.lng, label: h.name })));
});

// agent → app: a live call answered a question, annotate the itinerary
onAction("call_result", ({ hotelId, note }) => {
  setItinerary((it) => it.map((h) => (h.id === hotelId ? { ...h, note } : h)));
});

Illustrative. The production handlers carry richer flight, hotel, and call state.

What's hard about voice here

Dead air while the agent is on hold. A live call takes seconds to connect and reach a human. Silence that long reads as a crash. dia.loc leans on Vocal Bridge's real-time voice-to-voice stream and conversational fillers to keep the traveler present while the call runs.

Turn-taking with a real human. Talking to hotel staff, the agent has to know when the person has finished and when to jump back in, on a channel where a beat of overlap sounds broken. That is Vocal Bridge's turn detection and barge-in under the live transcript.

Keeping the map honest. Every spoken constraint has to hit the map and itinerary the instant it lands, or the two views drift and the traveler trusts neither. The bidirectional channel keeps the spoken plan and the on-screen plan the same object.

dia.loc came remarkably far in a short build: one conversation spans live inventory, a map, and calls to businesses for answers the web does not have. The demo also made the next production levers clear. A recognition glitch needed a repeat, and one call dropped before gathering the full detail. Stronger recovery, seamless reconnects, and unmistakable call-state UX are the focused improvements that take this first-place demo from an ambitious build to a product travelers can trust with a reservation.

Why voice for trip planning

Planning is a chain of open-ended questions where you don't know the options until you hear them, which forms are bad at and conversation is good at. But the deeper fit is on the other side of the call. Early check-in, a vegan table near your hotel, whether the shrine is open today, none of it is indexed anywhere. Someone has to ask a person. Voice handles both halves, the conversation with the traveler and the conversation with the business. dia.loc reaches past the searchable web into the part of travel that has always required a phone call.

Start building with voice today

Create your free account, deploy a voice agent, and integrate it into your app

No credit card required.

Sign Up Free →Full Developer Guide

Read more Built with VB stories →