You may want to check Synchronize calendars and contacts Syncthing, and also https://forum.syncthing.net/search?q=decsync.
I have been using Radicale with its DecSync plugin on Windows, and DecSync CC on Android for several months to synchronise contacts and calendars, and it does the job for the most part. I manage everything with Thunderbird in Windows. There are still some bugs, but I would say that they are manageable.
The Radicale website (https://radicale.org) has extensive information on how to install it on multiple operating systems. What exactly is not working there?
Just for the record, this is how my minimal Radicale config file looks like.
[server]
hosts = 127.0.0.1:5232
[storage]
type = radicale_storage_decsync
filesystem_folder = <path_to_radicale_folder>
decsync_dir = <path_to_decsync_folder>