I use DecSync and Syncthing to store it in multiple locations ¯\_(ツ)_/¯
Regarding contacts and calendars: the DAV spec is fine and it's really easy to self host and use.
Install and run [radicale](https://radicale.org/v3.html) and use the davx5 android app to sync with your phone. Your self hosted contacts and calendars will work phone-wise with any app. Preferably use foss ones like Simple Mobile Apps or Etar.
You don't need anything else. Is this worth a step-by-step guide? Cause it should be dead simple.
Discussion
Also works! That reminds me of the keepass + syncthinh as a vaultwarden/bitwarden alternative.