We run our own cloud-style services using the increasingly impressive Nextcloud system.  Among other services, this allows us to run calendaring services, which can be accessed via a browser, using plugins with the Thunderbird email client or Evolution email, and also synced on tablets and phones.  But recently I noticed that the system was using 100% of one of the four cores on our little server.  It seemed to be related to the calendar service, as I could get the problem to re-appear after accessing my calendar, but it was only my calendar that gave the problem.  The system logs were not much help.  A web search for the issue resulted in a number of similar issues, but not quite the same.  Eventually, I concluded that there must be something in my calendar that caused some kind of loop.  One search result suggested a possible problem with recurring events.

One of the beauties of using free and open source software is that systems often adhere to known standards.  This is because there is little value in Free Software trying to lock a user in using proprietary mechanisms. But in cases like mine, it also means you can shift data around, if necessary.  So, to preserve all my calendar entries, I went to the Lightning calendar plugin for Thunderbird, and exported my calendar in icalendar format.

I then deleted the calendar from Nextcloud, a big step, when I was not sure whether the problem came across with the exported entries.  Immediately I could see that the problem pegging the CPU disappeared, so at least I knew there would be that much progress.  I re-created the calendar, and again, no problem with the CPU.  Then came the step to re-import all the entries.  At that point, a small exclamation mark appeared against the calendar into which I was importing.  There was the proof that there was something wrong with the calendar.  But the import file was 250kb in size.  Although the file can be read, some aspect of it was wrong, and I did not relish having to go through it all line by line to try to spot a problem.  So I wondered whether the problem could be weeded out in some other way.

I run the XFCE4 desktop, which comes with a stand-alone calendar called Orage.  I don't use it, because I need a shared calendar.  But I knew Orage could import ics (icalendar) files.  A few clicks and a bit of a wait later, and Orage was populated with my old calendar.  It mentioned an issue with a  recurring event, but I was beyond caring about the details at that point.  I was then able to export the file yet again, still as an icalendar file, and that was imported back into Nextcloud flawlessly.  I made sure I named the calendar the same as the original offending one, so that I did not have to change the sync locations on my tablet and so on.

Job done.