holiday calendars don't work in new 91+ versions
Categories
(Calendar :: Provider: ICS/WebDAV, defect)
Tracking
(Not tracked)
People
(Reporter: david, Unassigned)
Details
Attachments
(3 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Steps to reproduce:
- add new calendar
- location: url of ics file (as specified in docs https://support.mozilla.org/en-US/kb/adding-a-holiday-calendar)
- check "this location doesn't require credentials"
- click "find calendars"
also "file->open->calendar file" doesn't seem to work any more either. If I download the ICS file and open it, the calendar is blank. (One of the same ICS calendars I routinely used with version 78)
Actual results:
It displays "Please select the calendars you would like to subscribe to." It shows a calendar with the exact name of the ics file, but it is completely greyed out, and can't be checked, and the properties button can't be clicked.
Clicking the subscribe button does not add calendar.
Expected results:
Calendar should have been added based on the contents of the ICS file.
![]() |
||
Comment 2•4 years ago
|
||
Subscribing to these calendars works:
- https://the-solitaries.com/ics/cal-z12.ics
- https://www.thunderbird.net/media/caldata/GermanHolidays.ics
Please follow these steps to provide more information:
- Press the Alt key.
- Open menu Tools > Developer Tools > Error Console.
- Clear it.
- Try to subscribe to a calendar.
- Mention the calendar url and the error messages which got added to the console (if any) here.
Thank you.
Ah yes, you're right, and thank you for mentioning Developer Tools: that was very helpful!
I can confirm that the GermanHolidays.ics is working properly. The originally reported error was the result of a console error from an existing calendar in the profile, that was causing the add new calendar to not work properly.
The cal-z12.ics
will cause the console error. Here are details on how to duplicate in a clean profile:
Starting with a clean profile, when I add https://the-solitaries.com/ics/cal-z12.ics, I get the following console error:
NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [calIIcalProperty.valueAsDatetime] 2 CalRecurrenceDate.jsm:112
set icalProperty resource:///modules/CalRecurrenceDate.jsm:112
setItemBaseFromICS resource:///components/calItemBase.js:935
set icalComponent resource:///modules/CalEvent.jsm:164
run resource:///modules/CalIcsParser.jsm:272
In order to debug this, I had to:
- edit the newly added calendar
- set its update to "manual."
- completely close and reopen thunderbird
- open devtools
- set breakpoints
- finally hit "synchronize."
Before I hit "synchronize," the error does not show up in the console. However when it stops on the breakpoint, it already shows the error in the console, seeming to indicate that this line has already executed without having stopped on the breakpoint. The error has a (2)
, which I think means the same error occurred twice.
But it does stop on the breakpoint. After it has stopped on the breakpoint I'm able to inspect values and such, but if I try to step in or forward, things start to act strangely.
And once the CalRecurrenceDate.jsm:112
has occurred, much of the calendar panel controls cease to work until thunderbird is completely restarted. If I try to add a new calendar, I get the originally reported problem of a grayed out calendar. Also "synchronize" will no longer work.
This appears to be happening on the RDATE
property, for the first item in the calendar:
BEGIN:VEVENT
DTSTART;VALUE=DATE:20101128
DTEND;VALUE=DATE:20101129
RDATE;VALUE=DATE:20111127,20121202,20131201,20141130,20151129,20161127
,20171203,20181202,20191201,20201129,20211128,20221127,20231203,2024120
1,20251130,20261129,20271128,20281203,20291202,20301201,20311130,203211
28,20331127,20341203,20351202,20361130,20371129,20381128,20391127
SUMMARY:1: First Sunday in Advent
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:TRANSPARENT
END:VEVENT
When I inspect on the breakpoint at CalRecurrenceDate.jsm:112
:
this.mDate = prop.valueAsDatetime;
I see that the value of prop.valueAsDatetime
is:
icalString: "RDATE;VALUE=DATE:20111127\r\n"
parent: XPCWrappedNative_NoHelper
propertyName: "RDATE"
value: "20111127"
valueAsDatetime: XPCWrappedNative_NoHelper
valueAsIcalString: "20111127"
<prototype>: XPC_WN_Proto_JSClass
I can't see any more information than that, but based on that output and the name prop.valueAsDatetime
, I surmise that this code might be missing support for a comma-separated list of dates in RDATE (see examples in the RFC-5545, section 3.8.5.2), and when this occurs it's throwing an uncaught exception that breaks the calendar panel.
Here is a screen shot of the error with call stack. This isn't identical to the text copy/paste in the previous comment; the two were captured at different times, after several restarts and the calendar being removed and readded.
Description
•