Closed Bug 1015655 Opened 10 years ago Closed 4 years ago

All Day Event Invitations Are Processed as 0:00 a.m. to 0:00 p.m Events

Categories

(Calendar :: General, defect)

Lightning 2.6.5
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: slengfe, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; rv:29.0) Gecko/20100101 Firefox/29.0 (Beta/Release)
Build ID: 20140506152807

Steps to reproduce:

I received an all day event invitation from an Outlook 2010 client and accepted it.


Actual results:

Event was processed and shown as 0:00 a.m. to 0:00 p.m event which means that it is not shown in the top of the day but over the complete day.

This is reproducible with iOS client -> Lightning but NOT with Lightning -> Lightning.

I synchronised this event with MyPhoneExplorer to Android and in the Android calendar it was shown correctly as an all day event. Therefore, the event information seem to be correct but are wrongly processed in Lightning.

(German discussion and screenshots can be found at http://www.thunderbird-mail.de/forum/viewtopic.php?f=41&t=66670)

I cannot believe nobody else had this problem before but I could not find it in bugzilla. Sorry, if I have overlooked it.


Expected results:

All day events which have been received by an invitation should be shown in the top of the day.
Actually, Outlook 2010 has got it wrong. Allday events are not supposed to have a time set.
This is fixed in Outlook 2013, which correctly sends dates only for allday events.

However, assigning blame does not solve the problem.

You can enhance Lightnings allday recognition by patching the file calendar-js/calIcsParser.js in the Lightning extension directory. It flags start and end timestamps with a time of 00:00:00 as dates only.

--- calendar-js/calIcsParser.js.orig	2014-07-08 16:09:16.000000000 +0200
+++ calendar-js/calIcsParser.js	2014-07-08 17:00:32.593442453 +0200
@@ -261,6 +261,15 @@
                         item.icalComponent = subComp;
                         state.checkTimezone(item, item.startDate);
                         state.checkTimezone(item, item.endDate);
+                        let sd = item.startDate;
+                        let ed = item.endDate;
+                        if (!sd.isDate && !ed.isDate) {
+                            if (sd.hour == 0 && sd.minute == 0 && sd.second == 0 &&
+                                ed.hour == 0 && ed.minute == 0 && ed.second == 0) {
+                                sd.isDate = true;
+                                ed.isDate = true;
+                            }
+                        }
                         break;
                     case "VTODO":
                         item = cal.createTodo();
Reading the linked discussion it is clear that the behavior of Lightning is correct. 

The given example 
> DTSTART;TZID=Europe/Berlin:20140526T000000
> DTEND;TZID=Europe/Berlin:20140528T000000
doesn't define an all day event.

Instead it defines an event that takes places from 00:00 to 24:00 in timezone Europe/Berlin. Depending on your local timezone this might happen to look like all day or not. For example if local timezone is Asia/Shanghai it must be display as 06:00 to 06:00 next day.
Although Lightning is correct, Outlook 2010 (and others) will continue to send all day events incorrectly.

For me, this causes a lot of support requests. I find it hard to explain to Users, that Outlook 2010 is "bad" and Lightning is "good" :) It is also considered rude to suggest to customers that they upgrade to Outlook 2013.

So, it would be very helpful to have a boolean flag (e.g. "calendar.allday.enhancedRecognition") with a default of False to support this standards violation.

Otherwise, each Lightning update requires me to apply the patch on 60+ Windows accounts.

Resolving as INVALID per comment #1.

Status: UNCONFIRMED → RESOLVED
Closed: 4 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: