Migrating calendar is a pain


for days I am trying to migrate my calendar from one NC instance to another.

It seems there are a lot of problems with importing calendars.

  • Nextcloud does not import its own export format from the same major NC version (18). I had to edit the ics file to manually change version 2.1 of some events to 3.0 and I had to remove duplicate lines of type PRODID. Why does NC export version 2.1 if it removed support for that version for the import?
  • Importing lots of events is almost impossible. I literally let the computer running for days and it was not nearly finished importing all events. After importing several hundred events it becomes unbearably slow because it hits some rate limit. I even found one suggestion to limit the speed in the browser to GPRS speed, but then the rate limit would only kick in a little later.
  • I tried some Android apps but they also don’t like to import the ics files exported from NC
  • Thunderbird Lightning doesn’t want to sync with NC, so my attempts to import the ics files via Thunderbird also doesn’t work.

Does anybody have a tool suggestion how I could get my events back from the ics file that I exported from NC? I looked at it manually and all the events are contained.

Why does Thunderbird not work for you? There is even an entry int eh official docs:


First, thank you very much for pointing me to the documentation. I assumed that I just need Lightning, because it offers to sync webcal calendars.

I don’t know why but after installing TBSync and the according sync adapter, I could generally sync the calendar and was happy at first because some more events showed up on the server. However, there are still a lot of events which don’t end up at the server without any error messages.

The bad thing is that I am unable to identify which of the events are missing.
It seems that there is something bad with the ical representation of those events in the export file. Android doesn’t show them, the server doesn’t accept them, but for some reason Thunderbird Lightning is showing those events.

It seems the whole ical thing is one big mess and it seems that all those tools save it as ical or equivalent internally because even if I export and re-import the calendar from Lightning (where the events are shown) to a whole new calendar and freshly sync it to NC, those events do not end up at the server.

I do remember having similar troubles when attempting the same stunt, but for me there were errors displayed in the browser JS console (F12 on Firefox) which pointed me to erroneous vcal entries in the file which I then fixed manually. Is there anything shown when you try to import the calendar directly?

Yes, this is a good strategy. However, there are way too many events in the calendar and I waited days and it was still not finished.

Is there any way to filter the ical file and only keep the events that are in the future, including the reoccuring events? Then, the result file would be small enough for a direct import to NC and I could check the console if still anything would be missing.

Unfortunately, I don’t have any solution for those with similar problems. I ended up identifying the events that were not imported and created it again in the new calendar.

Whenever possible, backup your calendar on all devices that you use before migrating NC instances. This increases the change of a working backup that you can import again on an empty calendar on one of your devices such that it is completely synchronized to the NC server.