# Copy this file to .env and fill in your values # DO NOT commit .env to version control - it contains sensitive credentials # ============================================================================ # REQUIRED: CardDAV Server Configuration # ============================================================================ CARDAV_SERVER_URL=https://your-server.com/dav/addressbooks/ CARDAV_USERNAME=your-username CARDAV_PASSWORD=your-password # ============================================================================ # REQUIRED: CalDAV Server Configuration # ============================================================================ CALDAV_SERVER_URL=https://your-server.com/dav/calendars/your-username/ CALDAV_USERNAME=your-username CALDAV_PASSWORD=your-password # ============================================================================ # OPTIONAL: Birthday Event Configuration # ============================================================================ # Event title template - {name} will be replaced with contact name BIRTHDAY_EVENT_TITLE=🎂 {name}'s Birthday # Event description template BIRTHDAY_EVENT_DESCRIPTION=Birthday of {name} # Days before birthday to create reminders (comma-separated) BIRTHDAY_REMINDER_DAYS=1,7 # Reminder message template - {name} and {days} will be replaced BIRTHDAY_REMINDER_MESSAGE=Reminder: {name}'s birthday is in {days} days! # Event category for organization BIRTHDAY_EVENT_CATEGORY=Birthday # Whether to update existing events when templates change BIRTHDAY_UPDATE_EXISTING=true # ============================================================================ # OPTIONAL: Scheduling Configuration # ============================================================================ # Run mode: daemon (continuous), once (single run) RUN_MODE=daemon # Cron-style schedule for sync operations (daily at 6 AM) SYNC_SCHEDULE=0 6 * * * # Cron-style schedule for diagnostic checks (weekly on Sunday at 7 AM) DIAGNOSTIC_SCHEDULE=0 7 * * 0 # Alternative: sync every N hours instead of cron (0 = use cron) SYNC_INTERVAL_HOURS=0 # Seconds to wait before first sync on startup STARTUP_DELAY=30 # ============================================================================ # OPTIONAL: Service Configuration # ============================================================================ # Enable debug mode for verbose logging DEBUG=false # Container timezone TZ=UTC # Log level: DEBUG, INFO, WARNING, ERROR LOG_LEVEL=INFO # Write logs to file in addition to console LOG_TO_FILE=false # Enable connectivity testing during health checks (slower) HEALTH_CHECK_CONNECTIVITY=false # ============================================================================ # COMMON SERVER EXAMPLES # ============================================================================ # Uncomment and modify the appropriate section for your server # Nextcloud: # CARDAV_SERVER_URL=https://nextcloud.example.com/remote.php/dav/addressbooks/username/ # CALDAV_SERVER_URL=https://nextcloud.example.com/remote.php/dav/calendars/username/personal/ # Baikal: # CARDAV_SERVER_URL=https://baikal.example.com/dav.php/addressbooks/username/ # CALDAV_SERVER_URL=https://baikal.example.com/dav.php/calendars/username/default/ # Radicale: # CARDAV_SERVER_URL=https://radicale.example.com/username/ # CALDAV_SERVER_URL=https://radicale.example.com/username/ # SOGo: # CARDAV_SERVER_URL=https://sogo.example.com/SOGo/dav/username/Contacts/ # CALDAV_SERVER_URL=https://sogo.example.com/SOGo/dav/username/Calendar/ # ============================================================================ # SCHEDULE EXAMPLES # ============================================================================ # Every 12 hours: 0 */12 * * * # Every day at 2 AM: 0 2 * * * # Weekdays at 9 AM: 0 9 * * 1-5 # Monthly on 1st at 6 AM: 0 6 1 * * # Every 6 hours: SYNC_INTERVAL_HOURS=6 # ============================================================================ # TEMPLATE EXAMPLES # ============================================================================ # Simple title: BIRTHDAY_EVENT_TITLE={name} Birthday # With emoji: BIRTHDAY_EVENT_TITLE=🎉 {name} turns another year older! # Formal: BIRTHDAY_EVENT_TITLE=Birthday: {name} # # Reminder examples: # BIRTHDAY_REMINDER_MESSAGE=Don't forget {name}'s birthday in {days} days! # BIRTHDAY_REMINDER_MESSAGE={name} birthday reminder ({days} days to go)