In Québec we have a fine portal for scheduling appointments for routine medical work. I use it for scheduling blood tests that I need to get quarterly, but you can also use it to schedule all kinds of things. In any case, once you find an available slot, you fill out the information and it helpfully sends you a text message reminder as well as an .ics calendar invite.
Every time I try to import the .ics file into my Thunderbird calendar, I get an error. I’m generally too lazy to bother looking into it any further, but today I had some extra time, so I opened the error console and took a look at what was happening. The errors were pretty opaque to me:
NS_ERROR_NOT_INITIALIZED: CalAttendee.sys.mjs:111
get icalProperty resource:///modules/CalAttendee.sys.mjs:111
fillIcalComponentFromBase resource:///modules/CalItemBase.sys.mjs:1041
get icalComponent resource:///modules/CalEvent.sys.mjs:105
getIcalComponent resource:///modules/CalIcsSerializer.sys.mjs:71
serializeToString resource:///modules/CalIcsSerializer.sys.mjs:33
getSerializedItem resource:///modules/CalDavCalendar.sys.mjs:2412
doAdoptItem resource:///modules/CalDavCalendar.sys.mjs:596
adoptItem resource:///modules/CalDavCalendar.sys.mjs:549
adoptItem resource:///modules/CalDavCalendar.sys.mjs:548
doAdoptItem resource:///modules/CalCachedCalendar.sys.mjs:742
adoptItem resource:///modules/CalCachedCalendar.sys.mjs:644
adoptItem resource:///modules/CalCachedCalendar.sys.mjs:643
addItem resource:///modules/CalCachedCalendar.sys.mjs:639
startImport resource:///modules/CalendarFileImporter.sys.mjs:118
startImport chrome://messenger/content/aboutImport.js:1366
onclick about:import#calendar:1
NS_ERROR_NOT_INITIALIZED: CalAttendee.sys.mjs:111
get icalProperty resource:///modules/CalAttendee.sys.mjs:111
fillIcalComponentFromBase resource:///modules/CalItemBase.sys.mjs:1041
get icalComponent resource:///modules/CalEvent.sys.mjs:105
getIcalComponent resource:///modules/CalIcsSerializer.sys.mjs:71
serializeToString resource:///modules/CalIcsSerializer.sys.mjs:33
getSerializedItem resource:///modules/CalDavCalendar.sys.mjs:2412
doAdoptItem resource:///modules/CalDavCalendar.sys.mjs:596
adoptItem resource:///modules/CalDavCalendar.sys.mjs:549
adoptItem resource:///modules/CalDavCalendar.sys.mjs:548
doAdoptItem resource:///modules/CalCachedCalendar.sys.mjs:742
adoptItem resource:///modules/CalCachedCalendar.sys.mjs:644
adoptItem resource:///modules/CalCachedCalendar.sys.mjs:643
addItem resource:///modules/CalCachedCalendar.sys.mjs:639
startImport resource:///modules/CalendarFileImporter.sys.mjs:118
startImport chrome://messenger/content/aboutImport.js:1366
onclick about:import#calendar:1
mail.import: NS_ERROR_NOT_INITIALIZED: [Exception... "Component not initialized" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: resource:///modules/CalAttendee.sys.mjs :: get icalProperty :: line 111" data: no]
adoptItem resource:///modules/CalCachedCalendar.sys.mjs:646
adoptItemCallback resource:///modules/CalCachedCalendar.sys.mjs:732
doAdoptItem resource:///modules/CalCachedCalendar.sys.mjs:743
CalendarFileImporter.sys.mjs:120:22
startImport resource:///modules/CalendarFileImporter.sys.mjs:120
and
mail.import: NS_ERROR_NOT_INITIALIZED: [Exception... "Component not initialized" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: resource:///modules/CalAttendee.sys.mjs :: get icalProperty :: line 111" data: no]
adoptItem resource:///modules/CalCachedCalendar.sys.mjs:646
adoptItemCallback resource:///modules/CalCachedCalendar.sys.mjs:732
doAdoptItem resource:///modules/CalCachedCalendar.sys.mjs:743
CalendarFileImporter.sys.mjs:120:22
startImport resource:///modules/CalendarFileImporter.sys.mjs:120
I could see that it was complaining about “Component not initialized” but I couldn’t really tell much else based on what I was seeing in the error messages.
Before deciding that it just wasn’t worth the effort, I copy pasted the errors
into ChatGPT and it immediately told me that it looked like some of the
required .ics information was probably improperly formatted. I copied the
contents of the .ics file as well and it said that it seemed to be that the
ORGANIZER;CN=1: and ATTENDEE;CN=1: fields should have had valid
mailto:user@example.com
addresses in them, but they were empty.
Here are the contents of the .ics file:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.3.3//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:sabre-vobject-f13a8917-33bc-4320-800a-378403cf7951
DTSTAMP:20250915T130936Z
SUMMARY:Rendez-vous - ClicSanté
DTSTART:20250924T163500Z
DTEND:20250924T164000Z
LOCATION:397\, rue de la Rivière Cowansville J2K1N4 Canada
ORGANIZER;CN=1:
ATTENDEE;CN=1:
END:VEVENT
END:VCALENDAR
I added my own email and a dummy email to the two needed fields, and then I was able to properly import the .ics file into Thunderbird Calendar!
Here is the ChatGPT transcript. I also asked ChatGPT to write an email with the details of the issue so I could open a bug report with Clic Santé. I don’t have much faith that they will do anything, but at least I feel like I’m doing a small bit to make the world a better place.
Reply by Email