

Can also check out Nextcloud. Yes, its more overkill than just calendar and contact sync but its not that hard to set up and self-host. It has an interface for you to fix your calendar and contacts graphically and works well with DAVx5, if on Android. Believe you can just add the CalDav and CardDav for iOS, but have not tried it personally.

OpenCloud is a simpler and lighter version of OwnCloud written mostly in Go. There is a docker compose version of it. Also there is a mobile application for it, as well, if wanted.
OxiCloud is a newer project written in Rust. It’s functional but it is still in development. Deployment is pretty simple and mostly docker. No clients yet outside of the web interface.