calsync

MITFree, open source, runs on your machine

Every calendar.Always in sync.

A meeting on your work calendar shows up on your personal one, and the other way round. Google, Microsoft 365 and any .ics feed. Nothing hosted, nothing to pay.

Works withGoogle CalendarMicrosoft 365Outlook.comAny .ics feed

Why calsync

A meeting on one calendar is a double-booking on the other.

Without calsyncThursday

Personal
Dentist10:00
Work
Client call10:00

A colleague booked over the dentist. They couldn't see it.

With calsyncThursday

Personal
Dentist10:00
Client call11:00 · copy
Work
Busy10:00 · copy
Client call11:00

Work saw Busy at 10:00 and picked 11:00 instead.

Two-way sync

One schedule. However many calendars.

Each writable calendar gets one tagged copy of every real event from the others. Move the meeting once and every copy follows. A published .ics link can join in too, one way.

Safety

It only touches what it made. Nothing else.

Busy only, per calendar

Copies can say just Busy, with no title or location. Private events always do.

Stops before a big delete

Nothing large disappears until you've looked. A calendar that won't load is left alone.

Only its own copies

calsync edits and deletes only events it created. Yours are never touched.

No double invites

A meeting already there through a shared invite isn't copied again.

One-button undo

One button, or calsync purge, removes every copy it made.

How it works

Connect. Preview. Then it runs itself.

01

Connect

Add each calendar on one page. Google and Microsoft each need a free sign-in app of your own, about 10 minutes each.

02

Preview

See what would be added, updated and removed on each calendar. Nothing changes until you start it.

03

Sync

Press Sync now. After that it runs in the background, every 5 minutes unless you pick another interval.

Private

Your calendars. On your own machine.

0accounts to make
0databases to run
1process or container
$0MIT licensed
Your sign-ins
Files on the machine that runs calsync
Who can reach it
This machine, until you change that
Who it talks to
Your calendars, and nothing else
Before the internet
Put it behind your own HTTPS proxy

Compare

Same sync. No subscription.

ToolPer yearTwo-wayBusy onlyYour sign-ins
calsync$0YesPer calendarStay on your machine
OneCal$60YesYesOn their servers
Reclaim.ai$96YesHides detailsOn their servers
CalendarBridgeabout $48YesYesOn their servers

Cheapest paid plan for one person, at list prices seen on 3 November 2026.

Before you start

What to know first.

Google
Needs a free sign-in app of your own.
Microsoft
Needs one too. Some school and work tenants block outside apps. A published .ics link still works, one way.
Window
The next 120 days. Repeating events are copied as single occurrences.
Hosted version
There isn't one. The machine running calsync needs to be on.

Install

Pick one. Both take a minute.

With Docker

git clone https://github.com/jakescalesAI/calsync
cd calsync
docker compose up -d
docker compose logs calsync

Open http://localhost:8484. The first visit asks for the setup code from those logs. Then you choose a password.

With Python 3.10 or newer

pipx install git+https://github.com/jakescalesAI/calsync
calsync web

The same page opens at http://localhost:8484.

Your calendars,
finally on speaking terms.