Decsync, or decentralized sync, is a nice project that implements a contacts/calender/tasks provider (on Android) and a companion plugin or component in the radicale CalDAV/CardDav server that sync their data to a directory. The directory can be shared between all devices on which you’d like to have contacts and calenders synced. It works pretty well! The need for radicale on the desktop is a bit of a hassle, but the biggest drawback I’ve found is that having a filesync deamon running 24/7 on your phone is a good way to halve you battery life. This is the main reason I won’t keep using it and revert to an online *DAV server.