Mac OS can be picky when it comes to caldav/carddav synchronization. But actually with service discovery it works really reliably and is very easy to add accounts:
Read this and make sure service discovery is working on your nextcloud instance:
https://docs.nextcloud.com/server/13/admin_manual/issues/general_troubleshooting.html#troubleshooting-contacts-calendar
With working service discovery you can use “automatic” as account type. Mac OS then configures the correct links automatically. Add new caldav account in system settings, choose “automatic” as account type and use as login USERNAME@EXAMPLE.COM where USERNAME is your username for nextcloud and EXAMPLE.COM is the domain where your nextcloud is running.