The Engine of Time
Defend your deep work.
Horolog is a premier, self-hosted AI calendar engine. It treats tasks, habits, and focus time as fluid primitives — weaving them beautifully around your hard commitments.
AGPL-3.0 licensed · self-hosted · zero telemetry

Intelligence without compromise.
Experience the ease of AI scheduling without sacrificing the exactness of mathematical constraints.
1. Natural Intent
Type your raw intent exactly as you think it: 'I need to review the Q3 roadmap for 2 hours sometime before Friday'.
2. Edge Parsing
Your local LLM safely translates the sentence into a rigid JSON constraint schema without ever seeing your calendar.
3. Precision Placement
The deterministic Python engine calculates the optimal slot within milliseconds, safely buffering around existing locks.
Not a mockup.
Real captures, from npm run seed:demo's sample week.
Month, week, day or list. Priority by accent weight, kind by glyph, movability by rule style. Live over SSE.
Every intent and where it actually landed. Anything that did not fit is called out, not hidden.
Routines and weekly focus goals in the units people speak: ‘3× a week, an hour each, between 10 and 4’.
A Smart Meeting only lands where every attendee's busy time allows, without ever blocking your own solo work.
Stat tiles plus a per-day load chart. Palette validated for colour-vision deficiency, not eyeballed.
Connect Google or Outlook, an ICS feed, or a CalDAV server; export your plan as a subscribable feed.
A live ‘today’ view: what's happening right now, what's next, and a moving now-line on the day's timeline.
Eight agents. One engine underneath.
Every one of these is the same scheduling primitive wearing a different hat — a task, a habit and a meeting are all just demands for time with different rules. Nothing here is a separate subsystem that can drift out of sync with the rest.
Smart Task Scheduler
Deadline-aware tasks, split across sittings and placed around real meetings. Priority P1-P4 decides who wins a contested slot.
Habit & Routine Manager
‘Gym three times a week between 10 and 4.’ Recurrence, time-of-day windows, per-day caps, automatic relocation.
Dynamic Calendar Sync
ICS feeds, CalDAV servers, and real OAuth connections to Google Calendar and Outlook — recurring events expanded, free time ignored.
Smart Meetings
Multi-attendee scheduling that intersects everyone's availability — without letting a colleague's calendar block your own solo work.
Productivity Analytics
Deep-work hours, meeting load, fragmentation, longest free run per day, after-hours load, unmet demand — all measured, not guessed.
Decompression Buffers
Recovery time held after every substantial meeting, from any source. A run of back-to-back meetings gets one buffer, at the end.
Booking Links
A public /book/name page offering true free time — hours holding flexible work stay bookable, because taking the slot moves it.
Tracker Integrations
Linear, Todoist and GitHub issues pulled in as fluid tasks — via OAuth or a pasted personal key, scheduled around everything else.
Engineered for absolute control.
Horolog is not a black box. It separates natural language processing from the actual calendar mathematics, ensuring deterministic constraint solving without LLM hallucinations.
Schema-Constrained LLM Layer
When you input an intent, it is routed through an LLM layer (OpenAI, Anthropic, or your local Ollama) using strict structured outputs. The model never touches your calendar; it only emits a JSON schema defining the priority, boundaries, and duration of the task.
HOROLOG_LLM_PROVIDER=ollama
HOROLOG_LLM_MODEL=llama3:8b
HOROLOG_LLM_BASE_URL=http://localhost:11434Deterministic Constraint Solver
The structured intent is passed to a high-performance, deterministic Python constraint solver running on FastAPI. It calculates the exact free slots across connected integrations, respecting pre-existing locks, meeting buffers, and user-defined constraints.
- Millisecond resolution time
- Complete avoidance of LLM hallucination
- Mathematical guarantee of non-overlapping bounds
One primitive. Infinite possibilities.
Traditional calendars isolate your tasks, habits, and meetings into rigid silos. Everything on your schedule competes for time honestly, orchestrated by an intelligent solver.
Cognitive Scheduling
Tell the engine 'deep work for 4 hours this week'. It carves the optimal slots around your existing commitments and adapts dynamically.
Local-First
Execution
Point it at Claude, OpenAI, or a local Llama instance. Complete privacy, absolute control. Zero cloud egress.
Smart Booking Links
Public booking links (`/book/[username]`) that dynamically protect your deep focus time.
Real Calendar Write-Back
Push scheduled blocks onto a dedicated calendar on Google or Outlook as real events — colleagues see them, and can't double-book over them.
Third-Party Task Sync
Sync Linear, Todoist & GitHub issues directly into Horolog. They automatically schedule as fluid tasks around your real-life calendar.
Frequently asked questions.
Do I need an OpenAI API key?
No. While Horolog supports OpenAI and Anthropic, it is built to run flawlessly with local LLMs like Llama 3 via Ollama. You can run the entire stack fully air-gapped on your own hardware.
Does the LLM have access to my calendar data?
Never. The LLM acts purely as a linguistic parser to generate a JSON schema of your intent (e.g. 'Gym for 1 hour'). The deterministic Python engine handles the actual schedule constraints and calendar data entirely separately.
How do I sync it with my work calendar?
Horolog supports CalDAV and direct ICS feeds. You can connect your Google Workspace, Microsoft Exchange, or Apple Calendar locally without exposing credentials to a third-party cloud.
Is this production ready for teams?
Horolog is designed as a single-player engine by default to guarantee absolute privacy. However, you can deploy it behind an SSO proxy (like Authelia or Tailscale) to share the instance securely across your organization.
Reclaim your sovereignty.
Download the engine. Run it on your hardware. Stop renting your calendar.