Inspiration
Planning a day often means juggling places you want to visit, appointments you cannot miss, and the time required to travel between them. Most mapping tools can help you reach a destination, but organizing an entire day around that journey is still left to the user.
We built PathWayve for StormHacks to turn a simple description of someone’s day into a practical itinerary. It plans around existing commitments while still leaving room for meals, errands, activities, and spontaneous detours.
What it does
PathWayve is an AI-assisted day planner. Users describe their plans in everyday language through text or voice, and PathWayve transforms the request into an editable schedule with mapped routes.
A plan can include destinations, meals, activities, errands, and fixed appointments.
Plans around your real schedule
Users can connect Google Calendar or import an .ics file. PathWayve treats existing events as fixed commitments and schedules new activities around them. The finished itinerary can also be exported back to a calendar.
Finds relevant places along the route
When a user asks for “a coffee shop,” PathWayve searches within the actual route corridor instead of selecting an unrelated venue.
Location-specific requests are preserved as well. A request for “a movie theater downtown,” “three coffee shops in Burnaby,” or “a No Frills near UBC” is searched within the area the user specified.
Checks whether the plan makes sense
PathWayve compares expected arrival times with available opening-hours data. For work or study locations, it can evaluate requirements such as seating, quiet, and Wi-Fi using available Google Maps information.
If something cannot be verified, PathWayve says so instead of presenting it as fact.
Uses the user’s current location
When Follow my location is enabled, requests such as “start from here” use a fresh browser location as the trip’s starting point.
Adds weather context
PathWayve shows the hourly forecast for the trip and provides practical suggestions about what to bring, such as an umbrella, jacket, or sunscreen.
Supports different ways to travel
Users can plan for walking, driving, or public transit. PathWayve can also compare possible stop orders and choose a faster arrangement when requested.
Keeps the user in control
Users can manually create a route, reorder stops, change visit durations, mark places as required, remove stops, or continue editing through chat.
Activities that cannot fit remain visible with an explanation instead of being silently removed.
Anyone can plan as a guest. Google sign-in allows users to privately save schedules and reopen them later.
How we built it
Application
We built PathWayve with:
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- Vercel
The deployed application is available at pathwayve.tech.
AI planning
Gemini converts natural-language requests into structured schedule data. Gemini’s Google Maps grounding also helps produce source-backed explanations for selected places.
ElevenLabs provides transcription for voice requests.
Validation and reliability
Every AI-generated response is validated on the backend with Zod. If Gemini produces malformed structured output, PathWayve performs one bounded repair attempt using the validation errors as feedback.
The AI proposes the schedule, but application code remains responsible for resolving places, enforcing constraints, calculating routes, and determining whether the itinerary is feasible.
Maps, routes, and weather
PathWayve uses:
- Google Places API for place search, details, and opening hours
- Google Routes API for travel time and route geometry
- Google Weather API for destination forecasts
- Google Maps JavaScript API for the interactive map
Server-side provider requests keep server credentials private, while the browser map uses a separately restricted browser key.
Accounts and calendars
Better Auth handles Google sign-in and user sessions.
Google Calendar uses a separate optional authorization flow. Calendar tokens are encrypted before being stored and are never exposed to client-side JavaScript.
Data storage
PathWayve uses PostgreSQL on Tiger Cloud through Kysely. PGlite provides a zero-setup embedded PostgreSQL environment for local development.
The database separates the user’s scheduling intentions from the calculated itinerary results. Schedule saves use transactions and are associated with the authenticated user.
Challenges we ran into
Making AI-generated plans reliable
Gemini occasionally returned inconsistent fields, substituted explicitly requested venues, shortened location-sensitive requests such as “No Frills near UBC” to “No Frills,” or treated the starting point and destination as hour-long activities.
We addressed these problems through stricter schemas, geographic scope rules, server-side constraint enforcement, and a bounded self-repair attempt for invalid output.
Selecting places that match the user’s intent
Finding the closest place is not always enough. Some requests refer to a location near the route, while others refer to a specific geographic goal.
For example, “breakfast along the way” should search the route corridor, while “a movie theater downtown” and “No Frills near UBC” should remain anchored to those areas. We created separate location scopes so those requests are resolved differently.
Fitting activities around calendar events
Scheduling flexible visits between fixed events required more than sorting a list of times. We needed a conflict-resolution pass that considered busy periods, activity duration, travel time, opening hours, and the requested arrival deadline.
Combining parallel development
Weather, calendar integration, authentication, live location, AI planning, and the interface redesign were developed on separate branches by different teammates.
Several features touched the same planning pipeline and prompt. Merging them required combining their behavior carefully instead of simply choosing one version of each file.
Preparing the application for production
Deployment involved more than publishing the frontend. We needed to configure OAuth callback URLs, separate browser and server API keys, encrypt calendar tokens, run database migrations, and preserve unfinished schedules across the Google sign-in redirect.
We also handled provider overload, request timeouts, lost context during clarification questions, and connecting AI-generated schedules to a map originally designed for the manual planner.
Accomplishments that we’re proud of
- We built an end-to-end production pipeline where a typed or spoken request becomes a validated itinerary with real places, travel routes, weather context, and calendar constraints.
- Activities that cannot fit remain visible and include an explanation.
- AI-assisted and manual planning work side by side.
- Required user choices are protected from accidental AI replacement.
- Users can plan without an account and sign in only when they want to save.
- Saved schedules are private to their owners.
- Our automated test suite covers schedule constraints, route discovery, calendar conflicts, persistence, authentication, chat flows, and core planner interactions.
What we learned
Structured AI output is only the beginning of building a useful planning tool.
A dependable planner also needs validation, geographic data, opening-hours information, time constraints, routing, persistence, and clear explanations when a request cannot be completed exactly as written.
Separating what the user wants to do from when and how it should be scheduled helped us keep the system understandable as more features were added.
We also learned to treat calendar titles, place descriptions, reviews, and previous chat messages as untrusted data rather than instructions. That separation made it safer to connect AI planning with real accounts and external services.
Finally, we learned that deployment work—authentication, secrets, callback URLs, database migrations, and provider configuration—is a major product feature of its own.
What’s next for PathWayve
- Live replanning when the day changes because of delays, weather, or finishing an activity early
- Real-time transit disruptions using TransLink GTFS Realtime
- More complete navigation during an active trip
- Reusing a saved schedule on a new date with refreshed routes and opening hours
- Shared rate limiting and usage controls for wider public access
- A more polished mobile experience for use throughout the day
Built With
- .tech-domain
- betterauth
- elevenlabs
- geminiapi
- google-cloud
- google-maps
- google-places
- googleroutesapi
- googleweatherapi
- next.js
- pglite
- postgresql
- react
- tailwindcss
- tigerdata
- vercel
Log in or sign up for Devpost to join the conversation.