Files
baikal-sync/README.md
2026-01-15 21:40:10 +01:00

1.8 KiB

Baïkal Calendar Sync

A Dockerized Python service that periodically synchronizes an external Outlook ICS calendar to a local Baïkal CalDAV server.

Features

  • Automatic Sync: Runs periodically (default: every 5 minutes).
  • Environment Configurable: All credentials and URLs are set via environment variables.
  • Docker Ready: Includes Dockerfile and docker-compose.yml for easy deployment.

Prerequisites

  • Docker & Docker Compose installed.
  • A running Baïkal instance (included in the example docker-compose.yml).
  • An Outlook ICS link.

Configuration (Environment Variables)

Variable Description Default
ICS_URL The public ICS URL of your Outlook calendar. Required
BAIKAL_URL The URL to your Baïkal calendar (e.g., http://baikal/dav.php/calendars/user/id/). Required
BAIKAL_USER Your Baïkal username. Required
BAIKAL_PASS Your Baïkal password. Required
SYNC_FREQUENCY How often to sync in seconds. 300 (5 mins)

Quick Start with Docker Compose

  1. Clone or download this repository.

  2. Create a .env file (optional but recommended) or export variables:

    ICS_URL="https://outlook.office365.com/..."
    BAIKAL_URL="http://localhost:8080/dav.php/calendars/Lago/beterna/"
    BAIKAL_USER="Lago"
    BAIKAL_PASS="secret"
    
  3. Run with Docker Compose:

    docker compose up -d --build
    
  4. Check Logs:

    docker compose logs -f baikal-sync
    

Building & Publishing the Image manually

If you want to build and push the image to Docker Hub yourself:

  1. Build:

    docker build -t yourusername/baikal-sync:latest .
    
  2. Push:

    docker push yourusername/baikal-sync:latest