Smart scheduling requires context. For Sabine to help users coordinate with their AI partnerships, we needed visibility into their real calendars. This week we shipped the backend infrastructure that makes that possible.
The Problem: Calendar Context Without Calendar Data
Sabine aims to be an intelligent partnership platform that helps you work with AI agents more effectively. But intelligence without context is just guesswork. Users were telling us they wanted Sabine to understand their availability—when they're free for focus work, when they're in meetings, when they're offline. We needed to bring calendar data into the platform.
The Solution: Full CRUD for Calendar Feeds
We built three core API endpoints that handle the lifecycle of calendar connections: import (add a new calendar feed), list (show all connected calendars), and remove (disconnect a calendar). Each endpoint is backed by a Supabase database migration that defines the schema for storing calendar metadata—feed URLs, user associations, sync status, and timestamps.
The architecture is straightforward: Python backend endpoints handle validation and business logic, Supabase provides storage and real-time capabilities, and the API returns structured JSON that the frontend can consume. We're using standard iCal feed URLs, which means compatibility with Google Calendar, Outlook, Apple Calendar, and any other service that exports .ics feeds.
The Impact: Foundation for Context-Aware AI
This backend wiring unlocks calendar-aware features across Sabine. The platform can now understand when you're available, respect your focus time, and schedule agent interactions around your real commitments. It's infrastructure work that doesn't look flashy in a demo, but it's the foundation for intelligent scheduling behavior users will come to depend on.
What's Actually Shipped (and What's Not)
Let's be clear: this is v1 backend infrastructure. We can store and retrieve calendar feed URLs, but we're not yet parsing iCal data or syncing events in real-time. The frontend UI for connecting calendars isn't built. We haven't implemented webhook listeners for live updates. This is the database schema and CRUD endpoints—essential plumbing, not the finished product. But it's the right first step, and it unblocks frontend and sync work that's coming next.
What's Next
The immediate priorities are frontend UI (so users can actually connect calendars through Strug Central), iCal parsing (to extract events from feeds), and sync scheduling (to keep calendar data fresh). We also need comprehensive integration tests that verify the full flow from API call to database write to data retrieval. Once those pieces are in place, we can start building the intelligent scheduling features that make calendar integration valuable—conflict detection, focus time protection, and smart notification timing.