4ba6450c43cf200d87f2e8bb805ec71fd5fb4bfc
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
Dockerfileanddocker-compose.ymlfor 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
-
Clone or download this repository.
-
Create a
.envfile (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 -
Run with Docker Compose:
docker compose up -dNote: This will verify the image usage. If you need to rebuild locally, run
docker compose up -d --build. -
Check Logs:
docker compose logs -f baikal-sync
Building & Publishing the Image
-
Build:
docker build -t lagortinez/baikal-sync:latest . -
Push (requires
docker login):docker push lagortinez/baikal-sync:latest
Description
Languages
Python
97.4%
Dockerfile
2.6%