First, create a calendar on the CalDav server, and configure which Org files to sync it with (see Basic setup).
Then, do:
M-x org-caldav-sync
to sync between Org and CalDav.
You will be prompted to manually enter the username/password on each sync; see Storing authentication information on how to save the password and avoid manual entry.
If you have many calendar items, the first sync can easily take
several minutes, especially if using a slow CalDav implementation like
Google’s. If you have to abort the initial sync for some reason, just
start org-caldav-sync
again in the same Emacs session and you should
get asked if you’d like to resume. Likewise for any errors –
especially when using Google Calendar, it is not unusual to get stuff
like ’409’ errors during the initial sync. Just run org-caldav-sync
again until all events are uploaded.