I'm using InfCloud, it has support for events, tasks and contacts so it pairs perfectly with Radicale (which is also what I use). It doesn't look amazing I'll be honest and it lacks some features but it works fine.
Run it without mapping config.js first and copy it from the container, edit it on the host, then map the volume and reprovision the container. You have to find the section globalNetworkCheckSettings and add a href: entry that points to your radicale host, for example href: "http://192.168.1.1:5232".
Another essential setting is to edit the Radicale config file and add the following section:
The -Allow-Origin host and port must match the URL where you access InfCloud in the browser.
If you use a reverse proxy and you put Radicale / InfCloud behind domain names you can use the domain names in config.js and config. As long as InfCloud knows where to find Radicale, and Radicale knows where InfCloud comes.
Hmm, I'm in a very similar situation... I think a few people use the calendar in Thunderbird for example, but I don't use an email client.
What I've found that works well enough for me is the calendar in Vivaldi - I can see multiple calendars (ie other family members) Work, etc... so far it's done me well.