Horolog – a self-hosted, open-source alternative to Reclaim.ai Horolog, a self-hosted, open-source AI calendar alternative to Reclaim.ai, was released on GitHub by developer Ujjwal Reddy, offering automatic scheduling of focus time, habits, and tasks with re-plan latency of 0.6–97 ms compared to Reclaim's ~15 seconds. The tool runs entirely on the user's machine, supports multiple language models including Ollama and OpenAI, and guarantees minimal disruption by moving only affected blocks when meetings change, as verified by tests. An open-source, self-hosted AI calendar that defends your time. Horolog places focus time, habits and tasks around the meetings you actually have - then keeps them there. It runs entirely on your own machine, against your own calendar, with whichever language model you already trust. It is a working alternative to Reclaim.ai https://reclaim.ai acquired by Dropbox in 2024 . At the time of writing no open-source equivalent existed: Cal.com covers booking links, but the auto-scheduling half - focus time, habits, priority preemption, automatic rescheduling - had not been built in the open. git clone https://github.com/ujjwalredd/horolog.git && cd horolog cp .env.example .env docker compose -f infra/docker-compose.yml up → http://localhost:3000 No account. No telemetry. Nothing leaves the machine. Most "AI calendar" tools re-plan your entire week whenever anything changes, so you stop trusting what you see. Horolog optimises for the opposite: Re-plan latency | 0.6–97 ms Reclaim documents ~15 s | Blocks moved when a meeting lands | only the ones it hit - verified by test, not asserted | Re-plan with nothing changed | a provable no-op, to the slot | Where your calendar lives | your machine | Model | Ollama, vLLM, SGLang, llama.cpp, Anthropic, OpenAI - your choice | The stability guarantee is the point. Measured on 20 blocks with an eight-hour meeting dropped into the middle of the week: 4 blocks collided, 4 blocks moved, 16 untouched. An earlier single-pass placer moved 16 of 20 - the regression test that pins this is test a busy week does not cascade /ujjwalredd/horolog/blob/main/services/api/tests/test solver.py . Each is the same scheduling primitive wearing a different hat - one engine, not five subsystems. See ARCHITECTURE.md /ujjwalredd/horolog/blob/main/docs/ARCHITECTURE.md for why that matters. | Agent | What it does | |---|---| 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 and CalDAV servers in, an ICS feed of your plan back out. Recurring events expanded; free/transparent events 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. | Three more, built on the same engine: | Feature | What it does | |---|---| Decompression buffers | Off by default HOROLOG AUTO BUFFER ENABLED . Holds recovery time after every meeting between 30 minutes and 4 hours, from any source — ICS, CalDAV or typed in. A run of back-to-back meetings gets one buffer, at the end. It spends real capacity, which is why it is opt-in. | Booking links | /book/