Peer to peer CalDav setup?

I have three machines that I want to keep synchronized as much as I can. All are Debian GNU/Linux boxes w/ KDE. Since I don’t consider any one of them to be consistently up enough to use as a server, I want to be strictly peer-to-peer in a mesh, and NOT use a ‘client-server’ approach. I also emphatically do not want to rely on “Other-people’s-computers” sometimes mistakenly called the non-existent “Cloud”…

Most of this is handled very nicely by SyncThing, (ST) but I am having problems with KOrganizer, for some reason when I put the calendar .ics file in a synced directory, it syncs that directory about once a minute. It appears that this is because KOrganizer is updating the M-time on the file every minute, which causes ST to resync. It does not do this if I stop the sync.

I haven’t gotten a real good solution to this from the nice folks on the ST forum, as they think it’s something odd in KOrganizer… I’m thinking that perhaps having some other program handle the calendar sync might be an approach. Looking at the KOrganizer docs, I see that it is supposed to use the CalDav standard for data sharing, but looking that up suggests that CalDav is a client-server protocol… Is there a peer-to-peer way to setup CalDav?