Create webcal capability in my mailcow server

Create webcal capability in my mailcow server

Create webcal capability in my mailcow server

Upwork

Upwork

Remoto

19 hours ago

No application

About

We need a developer or DevOps engineer to set up an automated system that pulls two calendar sources, one from our Mailcow SOGo server via CalDAV and one from Office 365 Exchange using Microsoft Graph API (preferred) or ICS publish if easier. The system should merge both calendars into a single .ics file, preserving all event details including title, description, location, attendees, recurrence, and time zones, and deduplicating overlapping events. The merged .ics file should be exported to a storage or web server, stored in a directory such as /srv/www/cal/, and served securely over HTTPS. Access to the file must be protected using NGINX with secure_link or a similar method to generate rotating signed URLs with token and expiry for read-only access. A script must be included to generate signed URLs for subscribers. The merge job should run automatically on a schedule, for example every 10 to 15 minutes via cron or a systemd timer, and must handle errors gracefully with proper logging. Technical requirements include pulling the Mailcow SOGo calendar via CalDAV (not ICS, as ICS export is buggy) and pulling the O365 Exchange calendar via Microsoft Graph API using a service principal with Calendars.Read permission. The implementation should be written in Python using appropriate libraries such as caldav, icalendar, and requests. The system will run on a Linux server (Debian or Ubuntu) and the output will be served via NGINX over HTTPS. Deliverables will include the Python scripts to fetch, merge, and write the .ics file, NGINX configuration for secure signed link access, instructions for generating and rotating signed URLs, setup of the scheduled job, and documentation in the form of a simple README for maintenance and troubleshooting.