Files
baikal-sync/README.md

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.
  • An existing Baïkal instance.
  • 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 minutes. 5

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/default/"
    BAIKAL_USER="Lago"
    BAIKAL_PASS="secret"
    SYNC_FREQUENCY=5
    
  3. Run with Docker Compose:

    docker compose up -d
    

    Note: This will verify the image usage. If you need to rebuild locally, run docker compose up -d --build.

  4. Check Logs:

    docker compose logs -f baikal-sync
    

Building & Publishing the Image

  1. Build:

    docker build -t lagortinez/baikal-sync:latest .
    
  2. Push (requires docker login):

    docker push lagortinez/baikal-sync:latest