c559bb59c62546b89e33d91571803bbe2a5a052d
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.
- 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
-
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/beterna/" BAIKAL_USER="Lago" BAIKAL_PASS="secret" -
Run with Docker Compose:
docker compose up -d --build -
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:
-
Build:
docker build -t yourusername/baikal-sync:latest . -
Push:
docker push yourusername/baikal-sync:latest
Description
Languages
Python
97.4%
Dockerfile
2.6%