Create an aws account (new if already have) to use it’s 12 months free tier, setup OpenVPN Access Server (tbh easy process), go to admin panel and enable dmz. Connect to the server from your local machine with an openvpn client. It can be used to open as many ports as you want.
https://www.youtube.com/watch?v=teCeDl1DCjs
Just follow this tutorial and you will have Radicale setup via docker. Radicale is lightweight and really does help me to get away with all the caldav/cardav necessities.