Self-hosting my calendar and contacts using Baïkal

I recently moved my emails to Purelymail. And since I also used the contacts and calendar synchronization feature of my previous email provider, I also transferred the contacts and calendar entries to Purelymail via WebDAV using WinSCP.

While Purelymail officially only supports CardDAV for synchronizing contacts, CalDAV works as well, at least unofficially, if you don’t need special features but just want to keep a private calendar.

The whole thing worked fine.

But anyway, today I got the idea to host my contacts and calendars myself on my home server instead. I can easily access it from outside the home network using Tailscale, so I didn’t even need to install a CalDAV and CardDAV server on my VPS.

I decided to go with Baïkal. It’s developed in PHP, and installing it using Docker was a bit bumpy (I had to adjust file system permissions - UID and GID to 101, and use the PHP 8.0 image), but overall it seems to work quite well.

From Purelymail to Baïkal, I transferred my contacts again via WinSCP, and then set up DAVx5 on my Android smartphone. And also in Thunderbird on the PC it was easy to enter the connection data and it works right away.

To store the data in Baikal, I chose SQLite. MySQL is also possible, but SQLite works right away and the number of my contacts and appointments is also rather manageable.

Until recently, I didn’t keep a private calendar at all because I hardly had any appointments, but with the upcoming move to my new apartment, there are a few more appointments to keep track of.

Interactions & Comments