I just switched from DAViCal to Nextcloud. Nextcloud had trouble parsing the ICS files that I got from DAViCal, so I created some tools and instructions for making the migration easier.
You can get my tools and instructions from github. I offer them to you with the promise of no support.
There were two problems:
- Some of the VEVENTs contained incorrectly formatted strings in the SCHEDULE-STATUS field
- Each VEVENT was contained in its own VCALENDAR.
I solved the first problem with an editor. I searched the ICS files for the string “;=nvalid Calendar User”. I replaced each occurrence with a single double-quotation mark ("). For example,
SCHEDULE-STATUS=“3.7;Invalid Calendar User”;=nvalid Calendar User";
SCHEDULE-STATUS=“3.7;Invalid Calendar User”;
I solved the second problem with an AWK script that removed all of the BEGIN:VCALENDAR-END:VCALENDAR pairs and everything they contained except for VEVENTs, VTODOs, and VJOURNALs. The script output all of those inside of one VCALENDAR.
This worked well enough. Nextcloud rejected all of the VJOURNALs because it apparently doesn’t know what to do with them. Nextcloud accepted everything else.