Back to blog
EngineeringDate unavailable· min read

Keeping Calendar Feeds Fresh: Why We Built Automatic Polling

We shipped automatic polling for calendar feeds so subscriptions stay live without user intervention. Here's why it matters and what comes next.

We just shipped automatic polling for calendar feed subscriptions in sabine-super-agent. On the surface, it's a simple feature: the system now checks calendar feeds on a schedule and pulls in new events. But this change addresses something that's been bothering us since we first built calendar integrations.

Calendar data goes stale fast. Someone books a meeting, reschedules it, cancels it—and if we're not actively watching those feeds, our users are looking at outdated information. That's not just annoying; it breaks trust. You can't build an AI partnership platform on stale data.

The solution is straightforward: scheduled polling. We wire up a background job that hits subscribed calendar feeds at regular intervals, pulls the latest events, and updates our database. No user action required. No manual refresh buttons. It just works.

Technically, this involved setting up a polling service in the Python backend, handling rate limits gracefully, and ensuring we don't hammer external calendar providers. We're using exponential backoff for retries and respecting cache headers when providers send them. The polling frequency is configurable, but we default to checking every 15 minutes—frequent enough to feel real-time, infrequent enough to be respectful.

The impact is immediate. Users who've subscribed to calendar feeds now see changes reflected automatically. A meeting gets moved? They'll know within minutes. A new event appears? It's already in their feed. This removes friction and makes the calendar integration feel native rather than bolted-on.

What's Next

Polling is a solid foundation, but it's not the end goal. We're already looking at webhook support for calendar providers that offer it—Google Calendar and Microsoft 365 both have push notification APIs. Webhooks eliminate the polling delay entirely and reduce server load.

We're also exploring smarter polling strategies. Instead of checking every feed on the same schedule, we could use historical data to predict when feeds are likely to change and poll more aggressively during high-activity periods. Think: weekday mornings versus weekend nights.

For now, though, automatic polling gets the job done. Calendar feeds stay fresh, users stay informed, and we've eliminated a major friction point in the product. Onward.