Most calendar applications treat event creation as a form-filling exercise. You click on a time slot, type a title, pick a start time, pick an end time, choose a calendar, set a reminder, and save. It takes a dozen interactions to express something your brain conceived in a single thought: "lunch with Sarah tomorrow at noon." Cadence is a web-first calendar inspired by Fantastical that takes natural language input as its primary interface. You type what you mean, and it creates the event. Everything else, the multi-provider sync, the scheduling links, the calendar sets, builds on that core idea of reducing friction between intention and action.

Overview

Cadence is a calendar and scheduling application built on FastAPI and React 19 as part of the Renkara tools fleet. It syncs with Google Calendar, Microsoft 365, iCloud, Fastmail, and any generic CalDAV provider. Events and tasks coexist as first-class citizens. Calendar sets provide instant context switching between work and personal views. A built-in scheduling system handles availability booking, meeting proposals, and RSVP management. Weather overlays, travel time estimation, and multi-timezone support round out the feature set. A native iOS client is planned for Phase 2 after the web client ships.

Key Features

Natural Language Event Parsing

This is the flagship feature. You type "team standup every weekday at 9am for 15 minutes /work" and Cadence parses it into a structured event with the correct recurrence rule, duration, and calendar assignment in real time. As you type, a live preview card shows what the parser has understood so far. The parser handles dates ("tomorrow", "next Tuesday", "March 15th", "in 2 hours"), durations ("for 30 minutes", "from 2-4pm"), recurrence patterns ("every Monday", "every other Friday", "first Tuesday of the month"), locations ("at Starbucks on Main St"), people ("with Sarah and John", "invite team@company.com"), calendar selection ("/work", "/personal"), alerts ("remind me 1 hour before"), time zones ("3pm EST"), and conference links ("zoom meeting").

The parser works in two layers. A local rule-based parser handles common patterns with zero network latency. For ambiguous or complex input, an LLM fallback using Mercury 2 resolves the intent. The local parser handles the vast majority of inputs, so event creation feels instant. The LLM fallback catches edge cases that would otherwise require manual form editing.

Seven Calendar Views

Cadence provides day, week, month, quarter, year, agenda, and DayTicker views. The DayTicker is a Fantastical-style compact horizontal date strip with a scrollable event list below. Transitions between views are animated. Keyboard navigation works throughout: arrow keys move dates, Enter selects, Escape goes back. In day and week views, you can drag to select a time range for quick event creation. A current time indicator (red line) tracks the present moment. Multi-day events span across columns and rows. Overlapping events use intelligent column packing to stay readable.

Calendar Sets

Calendar sets are named groups of calendars and task lists. Switch to your "Work" set and only work calendars appear. Switch to "Personal" and your work clutter disappears. One click in the toolbar or a keyboard shortcut makes the switch. The powerful part is scheduled activation: you can set time-based rules so that the "Work" set activates automatically Monday through Friday from 9am to 5pm, and the "Personal" set takes over outside those hours. Calendar sets sync across devices, so the context follows you.

Multi-Provider Sync

Cadence syncs with Google Calendar via the Calendar API v3, Microsoft 365 via the Graph API, iCloud and Fastmail via CalDAV, and any generic CalDAV server. Each provider uses its native push mechanism where available (Google webhooks, Microsoft delta queries, JMAP push for Fastmail) with polling fallback every 5 minutes. Initial sync pulls 6 months of history and 12 months of future events. Conflict resolution uses last-write-wins with the provider as source of truth. An offline queue stores changes made while disconnected and replays them on reconnect.

Scheduling and Availability

Cadence includes a full scheduling system. Define your availability windows ("I'm free Mon/Wed/Fri 10am to 12pm"), generate a shareable booking link, and let others pick a slot. Booked slots automatically block your calendar. Configurable buffer time between bookings prevents back-to-back meetings. Meeting proposals let you offer multiple time options to participants who vote on their preferred times. RSVP management tracks accepted, declined, tentative, and no-response statuses with support for attendee limits, waitlists, and registration deadlines.

Task Management

Tasks are not an afterthought in Cadence. They display on their due date in every calendar view. Overdue tasks roll forward and appear on today with a visual indicator. Tasks without due dates live in a separate "Anytime" section in agenda view. Task lists are color-coded and participate in calendar sets, so switching context hides irrelevant tasks along with irrelevant calendars. Cadence syncs tasks with Google Tasks, Todoist, and Apple Reminders. Natural language works for tasks too: type "remind me to call dentist tomorrow at 9am" and Cadence creates a task.

Integration Points

Fleet Integrations

Cadence pulls events from other Renkara tools. Beacon campaign launches, content publication dates, and marketing milestones appear as read-only calendar entries in a dedicated "Marketing" calendar. Slate tasks with due dates show up on the calendar as well. These integrations use direct backend-to-backend HTTP calls with service-to-service tokens, syncing every 5 minutes. The marketing calendar and Slate task list participate in calendar sets, so you can show or hide them with the rest of your context.

MCP Server

Cadence exposes 19 MCP tools for AI agent access. Agents can list calendars, create events (in natural language or structured format), manage tasks, query free/busy times, create scheduling openings, search across all events, switch calendar sets, and check weather. This means you can tell Claude Code "schedule a 30-minute meeting with the design team next Thursday afternoon and send them a proposal" and it will find availability, create the proposal, and handle the logistics.

Advantages Over SaaS

Fantastical charges $57 per year for a personal plan, $96 for a family plan. Google Calendar is free but requires surrendering your scheduling data to Google's advertising machine. Outlook costs $100 per year bundled with the Microsoft 365 suite. Calendly charges $10 to $16 per month just for the scheduling link features that Cadence includes as part of the core product.

Cadence runs on your infrastructure. Your calendar data, your meeting notes, your scheduling history, your contact information stay in your PostgreSQL instance. No third party mines your schedule for advertising signals. No vendor decides to deprecate the features you depend on. The natural language parser runs locally for common patterns, so event creation works even when the network is unreliable. And the MCP integration means your AI agents can manage your calendar alongside every other Renkara tool, creating workflows that span time tracking, project management, marketing, and scheduling in a single conversation.

Specifications

ComponentDetail
BackendFastAPI, SQLAlchemy 2.0 async, PostgreSQL
FrontendReact 19, Vite, TypeScript
Ports3423 (frontend), 3424 (backend)
DatabasePostgreSQL (shared RDS), `cadence` database
CacheRedis/Valkey (7-day event window, NLP results, availability)
AuthBearer token via auth-service (RS256 JWT)
Calendar ProvidersGoogle, Microsoft 365, iCloud, Fastmail, CalDAV
Task SyncGoogle Tasks, Todoist, Apple Reminders
MCP Tools19 tools via integrated FastAPI server
ViewsDay, Week, Month, Quarter, Year, Agenda, DayTicker
NLP ParserLocal rule-based + Mercury 2 LLM fallback
ThemesLight and dark mode via CSS custom properties