calsync docs

Install with Docker

Docker Compose runs calsync and its setup page. This is the easiest route.

Start it

You need Docker with the Compose plugin.

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

Open http://localhost:8484 in a browser on the same machine. Compose publishes the port on that machine only.

First visit

  1. The page asks for a setup code. Get it from the logs:
    docker compose logs calsync
  2. Choose a password for the page. It guards your sign-ins, so make it a good one.

Add your calendars

  1. Make a sign-in app for your provider: Google or Microsoft. Paste its details into the page.
  2. Add a calendar: Google, Outlook or Microsoft 365, or a published .ics link. Sign in when asked.
  3. Choose the calendars to keep in sync. Give each a short name.
  4. Set the options on each calendar. See below.
  5. Press Preview changes. It shows how many events would be added, updated and removed. Nothing has changed yet.
  6. Press Apply and keep syncing.

Options on each calendar

Copies here only say Busy
Copies on this calendar have no title or location.
Never write to this calendar
Read only. calsync uses it as a source and never writes to it.
Don't copy X here
One switch for every other calendar, named X. Events from X are not copied here.

How often it runs

In the settings, choose every 2, 5, 10, 15, 30 or 60 minutes. The default is 5.

The way out

On each calendar, "Delete the copies calsync made here" removes every copy calsync made on it. It touches nothing else. From the command line, calsync purge does the same.

Everyday commands

docker compose ps           # is it running?
docker compose logs calsync  # what has it done?
docker compose down          # stop it
git pull && docker compose up -d --build   # update

Your sign-ins and calendar data live in the Docker volume calsync-data, on your machine. To change the port, time zone or allowed host names, see Settings and environment.

Put calsync behind your own HTTPS proxy before you expose it to the internet.