ical.js: Events with "problematic" time zone don't show, time zone info not exported.



ICAL.js Integration
2 years ago
2 years ago


(Reporter: Jorg K (GMT+2), Unassigned)


Lightning 4.2



(1 attachment)



2 years ago
Created attachment 8628917 [details]
libcal gererated file with three events.

Start TB Daily, I'm using 42.0a1 (2015-07-02), Lightning 4.4.
Same problem with TB 40, Lightning 4.2.

Set the preference calendar.icaljs to false, to disable ical.js.

Import the attached file which was exported with libcal active.
This contains three events in three time zones.
- HHH: 15 AUG 2011, Berlin.
- WEG: 15 AUG 2011, Warsaw
- Thunderbird meeting, LA.
These events seem to import OK.

Now set the preference calendar.icaljs to true, to enable ical.js

The events HHH and WEG disappear from the display. On export, they are also not exported.

Note also, that compared to the libcal generated file now only one time zone is exported. This may or may not be a problem.


2 years ago
Attachment #8628917 - Attachment mime type: text/calendar → text/plain

Comment 1

2 years ago
The test case uses a non-built-in timezone Sarajevo/Warsaw/Zagreb. Bug 1149470 tracks this issue for icaljs library.

I don't see the problem with display and with import/export. The unsupported Sarajevo/Warsaw/Zagreb timezone disappears but this is kind of expected. The VTIMEZONE for Europe/Berlin and America/Los_Angeles are in the exported file but at different location.

Comment 2

2 years ago
Thanks. Yes, I can see the other time zones now in the exported file.

I assume it's still a problem that the HHH and WEG events don't show up. Can you please confirm this.

Sorry, it's hard to report a good bug when all you know is that there's something fishy :-(

Comment 3

2 years ago
I imported the file into local storage calendar, restarted Thunderbird, and the events show up fine in Aug-2011 and Dec-2014.

Comment 4

2 years ago
Hmm. Are we doing the same thing? I'm doing this:
calendar.icaljs to false, import file. Two events show on 15th Aug 2011.
calendar.icaljs to true. Restart TB. Two events on 15th Aug 2011 *do not* show up.

I import using libical since the export was done with libical.
I want to simulate what happens ical.js is used on a calendar that comes from a version of TB which used libical.

That happened to me: I was using TB 38 and then moved to TB 40, the latter having ical.js enabled and those two events don't show (and don't export).

Comment 5

2 years ago
Confirming with the steps described in comment #4 for current Daily. I'm getting the following error messages sequence (3 times in a row):

Timestamp: 05.07.2015 11:47:53
Error: Unknown function icaltimezone(data) {
    this.wrappedJSObject = this;
  } passed at 1: [resource://calendar/modules/ical.js:36] unwrapSingle
2: [resource://calendar/modules/ical.js:26] unwrapSetter
3: [resource://calendar/modules/ical.js:22] unwrap/<
4: [resource://calendar/modules/calStorageHelpers.jsm:178] newDateTime
5: [file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js:1593] cSC_getEventFromRow
6: [file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js:831] cSC_getItems_
7: [file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js:662] cSC_getItems/<
8: [null:0] null

Source File: resource://calendar/modules/ical.js
Line: 36

Timestamp: 05.07.2015 11:47:53
Error: TypeError: zone is null
Source File: resource://calendar/modules/ical.js
Line: 3726

Timestamp: 05.07.2015 11:47:53
Error: [calStorageCalendar] Message: Error selecting non recurring events by range!

Connection Ready: true
Last DB Error Number: 100
Last DB Error Message: unknown error
Database File: F:\TB-Testprofile\commcentral\calendar-data\local.sqlite
Last DB Statement: [object StatementJSHelper]
Last Statement param [range_start]: 1312149600000000
Last Statement param [start_offset]: 7200000000
Last Statement param [range_end]: 1314568800000000
Last Statement param [end_offset]: 7200000000
Last Statement param [cal_id]: f0326b9a-d56a-4390-a898-6e594e5f3e8f
Last Statement param [offline_journal]: null
Last Statement param [QueryInterface]: function QueryInterface() {
    [native code]
Exception: [Exception... "[JavaScript Error: "zone is null" {file: "resource://calendar/modules/ical.js" line: 3726}]'[JavaScript Error: "zone is null" {file: "resource://calendar/modules/ical.js" line: 3726}]' when calling method: [calIDateTime::getInTimezone]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: resource://calendar/modules/calStorageHelpers.jsm :: newDateTime :: line 178"  data: yes]
1: [file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js:2416] cSC_logError
2: [file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js:834] cSC_getItems_
3: [file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js:662] cSC_getItems/<
4: [null:0] null

Source File: file:///F:/TB-Testprofile/commcentral/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calStorageCalendar.js
Line: 2416

Switching back to libical makes the events to reappear. The root cause is limited to the WEG event. If you remove that before switching to icaljs, the HHH event is displayed as expected.

Also interesting: if you open the sample as a new calendar (File->Open->Calendar file) instead of importing in an existing one, all events are displayed without any of the forementenioned errors (only the timezone error already explained in comment #1 shows up) after switching to icaljs. In that case, for the WEG event icaljs seems to ignore the unknonw TZ information and applies the local tz.
You need to log in before you can comment on or make changes to this bug.