6.0.0-beta1
7/17/25

[#11976] invation emails are handled wrong
Summary invation emails are handled wrong
Queue Kronolith
Queue Version 4.0.3
Type Bug
State Resolved
Priority 1. Low
Owners mrubinsk (at) horde (dot) org
Requester jmozdzen (at) nde (dot) ag
Created 01/17/2013 (4564 days ago)
Due
Updated 11/01/2013 (4276 days ago)
Assigned 01/21/2013 (4560 days ago)
Resolved 08/27/2013 (4342 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
11/01/2013 10:55:56 AM jmozdzen (at) nde (dot) ag Comment #13 Reply to this comment
Does this fix?
Sorry, I must have missed the notification email for the bug update - 
yes, it works with latest code. Thanks for fixing!
08/27/2013 10:43:02 AM Jan Schneider Assigned to Michael Rubinsky
State ⇒ Resolved
 
07/24/2013 04:38:01 PM Michael Rubinsky Comment #12 Reply to this comment
Does this fix?
07/24/2013 04:37:50 PM Michael Rubinsky Comment #11 Reply to this comment
Changes have been made in Git (master):

commit f0bebd4284bd36635b1f63be35089d01622e1729
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Wed Jul 24 12:35:19 2013 -0400

      DTEND is non-inclusive, Kronolith_Event::End is inclusive.

      Bug: 12489

   kronolith/lib/Event.php |    4 ++++
   1 files changed, 4 insertions(+), 0 deletions(-)

http://git.horde.org/horde-git/-/commit/f0bebd4284bd36635b1f63be35089d01622e1729
02/16/2013 01:21:29 PM jmozdzen (at) nde (dot) ag Comment #10 Reply to this comment
After updating to the lastest PEAR code, things still don't work for 
me. (As expected - I just wanted to verify & report back)

- create single-day event, myself as invitee. Kolab/IMAP backend 
calendar entry has only start-date entry
- open email: gets displayed properly, due to below's cosmetic fix
- accept email: Kolab/IMAP backend calendar entry changes to 
start-date, end-date (end date set to start date +1)
- even after logoff/logon, kronolith still shows the calendar view 
entry as single-day. If I open the event, it does however show the 
changed end date.
- Logoff, erasing the cache, logon, shows the event as two-day event 
in kronolith's calendar view. Horde caching sucks.

Initation handling still seems broken, as accepting the invitation 
does not adjust the end date according to the differences between 
invitation and storage semantics for "end-date" and thus wrongly 
modifies calendar entries. To me, this is a severe error.
01/27/2013 12:40:20 PM jmozdzen (at) nde (dot) ag Comment #9 Reply to this comment
Hi Jan,
commit 41b7f1264814bcaa9207f0c1e4af1d456bbccc17
Author: Jan Schneider <jan at horde.org>
Date:   Sat Jan 26 13:44:25 2013 +0100

     DTEND is non-inclusive.
I applied the change to my server and it does indeed correct the event 
display in IMP.

Unfortunately, it does not address the invalid modification of the 
stored event details:

--- cut here: event data before the event is accepted ---
Content-Type: application/x-vnd.kolab.event; name=kolab.xml
Content-Disposition: inline; x-kolab-type=xml; filename=kolab.xml
Content-Transfer-Encoding: quoted-printable

<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<event version=3D"1.0">
   <uid>51051cde-17b0-45a1-ab3f-2805c0a86604</uid>
   <body>single-day all-day event Jan 28<!--a75c305b1c0a6022--></body>
   <categories></categories>
   <creation-date>2013-01-27T12:26:06Z</creation-date>
   <last-modification-date>2013-01-27T12:27:30Z</last-modification-date>
   <sensitivity>public</sensitivity>
   <product-id>Horde_Kolab_Format_Xml-2.0.2 (api version: 1)</product-id>
   <summary>test event</summary>
   <location>test location</location>
   <start-date>2013-01-28</start-date>
   <alarm>15</alarm>
   <horde-alarm-methods>a:0:{}</horde-alarm-methods>
   <show-time-as>busy</show-time-as>
   <end-date>2013-01-28</end-date>
   <attendee>
     <display-name></display-name>
     <smtp-address>jmozdzen@nde.ag</smtp-address>
     <status>none</status>
     <request-response>false</request-response>
     <role>required</role>
   </attendee>
</event>
--- cut here ---

--- cut here: stored event details after the event was accepted ---
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<event version=3D"1.0">
   <uid>51051cde-17b0-45a1-ab3f-2805c0a86604</uid>
   <body>single-day all-day event Jan 28<!--a75c305b1c0a6022--></body>
   <categories></categories>
   <creation-date>2013-01-27T12:26:06Z</creation-date>
   <last-modification-date>2013-01-27T12:29:37Z</last-modification-date>
   <sensitivity>public</sensitivity>
   <product-id>Horde_Kolab_Format_Xml-2.0.2 (api version: 1)</product-id>
   <summary>test event</summary>
   <location>test location</location>
   <start-date>2013-01-28</start-date>
   <alarm>15</alarm>
   <horde-alarm-methods>a:0:{}</horde-alarm-methods>
   <show-time-as>busy</show-time-as>
   <end-date>2013-01-29</end-date>
   <attendee>
     <display-name></display-name>
     <smtp-address>jmozdzen@nde.ag</smtp-address>
     <status>none</status>
     <request-response>false</request-response>
     <role>required</role>
   </attendee>
</event>
--- cut here ---

As you can see clearly, the <end-date> element was overwritten with 
the (false) exclusive end date from the invitation e-mail.

(Test case as originally reported - I created an event in my personal 
calendar and added me as the only invitee - the resulting event entry 
is listed above - then displayed the resulting invitation email in IMP 
(this time with correctly displayed end date) and clicked "accept and 
update in my calendar" - the resulting event entry contains the 
modified end date, as listed above).

Let me know if I can help out somehow, i.e. by tracing some code path 
in my installation.
01/26/2013 12:57:14 PM Jan Schneider Comment #8 Reply to this comment
commit 41b7f1264814bcaa9207f0c1e4af1d456bbccc17
Author: Jan Schneider <jan at horde.org>
Date:   Sat Jan 26 13:44:25 2013 +0100

     DTEND is non-inclusive.

  imp/docs/CHANGES             |    1 +
  imp/lib/Mime/Viewer/Itip.php |    4 ++--
  imp/package.xml              |    2 ++
  3 files changed, 5 insertions(+), 2 deletions(-)

http://git.horde.org/horde-git/-/commit/41b7f1264814bcaa9207f0c1e4af1d456bbccc17
01/21/2013 06:08:18 PM jmozdzen (at) nde (dot) ag Comment #7 Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
Oh, I forgot: code level is latest from PEAR:

# pear list-upgrades
Channel pear.horde.org: No upgrades available
01/21/2013 06:03:31 PM jmozdzen (at) nde (dot) ag Comment #6
New Attachment: event.tar Download
Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
My test case:
- create a new event, me as only participant. Single-day, Jan 21.
- I receive the invitation email in my inbox
- I accept the invation and have my event updated

I've attached a tar file with the Kolab event as stored in the IMAP 
backend, both before and after accepting the invitation, as well as 
the invitation e-mail.

When I display the invitation in IMP, I get the following display:
--- cut here ---
Beginn:         21.01.2013
Ende:         22.01.2013
Zusammenfassung:         test event single day Jan 21
Ort:         nowhere
Teilnehmer:
Name         Rolle         Status
Jens-Uwe Mozdzen         Erforderlicher Teilnehmer         Auf Antwort wartend
--- cut here ---

The displayed end date is quite misleading - everyone reading this 
thinks this is a two-day event. Because the event actually doesn't end 
on Jan 22, but Jan 21.

If you look at the HTML version contained in the email, it says the 
end is Jan 21 23:59:59 - which is correct.

If you compare the two event files, you'll see the changed end date.
01/21/2013 06:02:22 PM Jan Schneider Comment #5 Reply to this comment
I tried with both SQL and Kolab backends.
01/21/2013 05:33:16 PM jmozdzen (at) nde (dot) ag Comment #4 Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
Are you using a Kolab back-end?
01/21/2013 05:28:46 PM Jan Schneider Comment #3
State ⇒ Feedback
Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
01/18/2013 05:59:47 PM jmozdzen (at) nde (dot) ag Comment #2 Reply to this comment
I just wanted to let you know that I cannot follow your priority 
change: This bug causes the display of wrong dates upon receiving 
invitations and changes originally correct data in the back-end to 
wrong values.

With other words: That piece of functionality is not only useless, but 
messing up data that was previously correct. Which makes it a "high" 
priority in my eyes, and I might have understood a "medium" since it 
doesn't break all of Horde/Kronolith... but "low"?
01/18/2013 03:38:23 PM Michael Rubinsky Priority ⇒ 1. Low
 
01/17/2013 11:31:53 AM jmozdzen (at) nde (dot) ag Comment #1
Priority ⇒ 3. High
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ invation emails are handled wrong
Type ⇒ Bug
Queue ⇒ Kronolith
Reply to this comment
Invitation e-mails typically contain DTSTART and DTEND fields. DTEND, 
according to RFC 2445, 4.6.1, specifies the non-inclusive end of the 
event.

Kronolith stores the inclusive event end.

When sending an invitation, kronolith properly adjusts the included 
text/calendar DTEND field.
When receiving an invitation, DTEND is falsely taken as the inclusive 
end; when accepting an invitation, the event is therefore stored 
wrongly.

This is especially bad for all-day events, as i.e. a single-day event 
is stored as/changed to a two-day event.

This already affects displaying the invitation in IMP: Since the 
displayed info there is based on the text/calendar part of the email, 
rather than the human-readable part, the end date is displayed wrong.

Saved Queries