I too had problems with the built-in nextcloud calendar sync on my Pro 5. As I already had nextcloud contact sync working (through bash scripts), I deleted my nextcloud account on the device and added the account through syncevolution from the terminal (similar to my contact sync).
I am now running a bash script manually for two-way sync of contacts and calendar.
However, probably after an OTA update (I am on devel), my calendar sync started giving errors. After deleting the syncevolution database and config for the nextcloud calendar and recreating them, sync works fine again.
The one thing I haven't been able to figure out is how to run a syncevolution cron job. It seems that the X server requirement is preventing running these commands in the background. But syncing manually doesn't take that long, so that's what I will use for now.