If your sync state somehow gets broken, you can make a clean slate by doing
C-u M-x org-caldav-delete-everything
The function has to be called with a prefix so that you don’t call it
by accident. This will delete everything in the calendar along with
the current sync state. You can then call org-caldav-sync
afterwards
and it will completely put all Org events into the now empty
calendar. Needless to say, don’t do that if you have new events in
your calendar which are not synced yet…
Deleting many events can be slow, though; in that case, just delete the calendar and re-create it, delete the sync state file in ~/.emacs.d and restart Emacs.