We shipped a fix today that solves one of those bugs that makes you wonder how it slipped through in the first place. When Sabine ingests calendar events, it's supposed to store everything—title, location, timing metadata, the works. Except it wasn't storing arrival_time and bus_time. Those fields were just... disappearing into the void.
The Problem
Calendar event upserts in Sabine weren't persisting arrival_time or bus_time to Supabase. These fields capture important context—when you need to leave, when you need to be in transit—but they were only living in memory during the ingestion process. The moment that process completed, poof. Gone.
This meant Sabine couldn't reliably reason about your day. She might know you have a 2pm meeting, but she didn't know you needed to leave at 1:30pm to get there. That's the kind of gap that turns a smart assistant into a forgetful one.
The Fix
The solution was straightforward: add arrival_time and bus_time to the upsert payload in the calendar ingestion pipeline. Commit 5f123a4 updates the Supabase insert/update logic to explicitly include these fields alongside the rest of the event metadata.
It's a small change—maybe five lines of code—but it closes a meaningful gap in Sabine's contextual awareness. Now when she ingests your calendar, she's not just storing appointments. She's storing the shape of your day.
What's Next
This fix sets the stage for smarter scheduling intelligence. With reliable access to arrival and transit times, Sabine can start proactively suggesting when to wrap up work before a meeting, or flagging conflicts when back-to-back events don't leave enough travel time.
We're also looking at how this data integrates with Sabine's notification system. Knowing when you need to leave is useful. Being reminded 10 minutes before you need to leave? That's where the value really clicks.