<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>DTEND incremented on ical export for no real reason</title> 
  <pubDate>Fri, 10 Apr 2026 14:49:31 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/12489</link> 
  <atom:link rel="self" type="application/rss+xml" title="DTEND incremented on ical export for no real reason" href="https://bugs.horde.org/ticket/12489/rss" /> 
  <description>DTEND incremented on ical export for no real reason</description> 
 
   
   
  <item> 
   <title>Line 640 in kronolith/lib/Event.php (exporting icals):
$end</title> 
   <description>Line 640 in kronolith/lib/Event.php (exporting icals):
$end-&gt;sec++;

Here $end-&gt;sec is incremented with the intention, that DTEND MUST be later than DTSTART. But it is incremented whether it&#039;s neccessary or not. If DTEND already IS later than DTSTART, a second will be added on every ical export.

This leads to duplicates when syncing with the Synthesis SyncML client.  Since Horde doesn&#039;t do a correct SlowSync (no duplicate elimination), the Synthesis guys built a duplicate elimination into their client. But since the events differ by one second (incrementing on each new SlowSync!!), this duplicate elimination fails.

Even without syncing this bogus incrementation by one second could lead to wrong times. Export the event and import it into horde again and repeat this 60 times, the end time of the event is moves by a whole minute!

I would check, if the end time differs from the start time and ONLY in that case do the incrementation on the end second.
</description> 
   <pubDate>Wed, 24 Jul 2013 02:19:21 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12489#t79516</link> 
  </item> 
   
  <item> 
   <title>Possibly a duplicate or at least related to Bug: 11976</title> 
   <description>Possibly a duplicate or at least related to Bug: 11976</description> 
   <pubDate>Wed, 24 Jul 2013 02:30:47 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12489#t79517</link> 
  </item> 
   
  <item> 
   <title>I don&#039;t know, if it&#039;s a duplicate of this bug. It&#039;s simply w</title> 
   <description>I don&#039;t know, if it&#039;s a duplicate of this bug. It&#039;s simply wrong to ALWAYS increment the DTEND seconds.

I will hopefully provide a patch later after some further testing.</description> 
   <pubDate>Wed, 24 Jul 2013 13:15:56 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12489#t79524</link> 
  </item> 
   
  <item> 
   <title>&gt; Here $end-&gt;sec is incremented with the intention, that DTE</title> 
   <description>&gt; Here $end-&gt;sec is incremented with the intention, that DTEND MUST be 
&gt; later than DTSTART. But it is incremented whether it&#039;s neccessary or 
&gt; not. If DTEND already IS later than DTSTART, a second will be added 
&gt; on every ical export.

No, this is not the reason it is incremented. According to RFC 2445 the DTEND field is a non-inclusive. In other words, the actual event ends one second BEFORE the value of DTEND. Kronolith, on the other hand stores the event end time as an inclusive value, i.e., the event ends exactly on the second specified. We therefore have to increment the DTEND value by one second so that the value presented in the iCal file is non-inclusive.</description> 
   <pubDate>Wed, 24 Jul 2013 16:14:47 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12489#t79530</link> 
  </item> 
   
  <item> 
   <title>OK, then this bug can be closed I think. Sorry for my confus</title> 
   <description>OK, then this bug can be closed I think. Sorry for my confusion.</description> 
   <pubDate>Wed, 24 Jul 2013 16:17:52 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12489#t79531</link> 
  </item> 
   
  <item> 
   <title>Changes have been made in Git (master):

commit f0bebd4284bd</title> 
   <description>Changes have been made in Git (master):

commit f0bebd4284bd36635b1f63be35089d01622e1729
Author: Michael J Rubinsky &lt;mrubinsk@horde.org&gt;
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</description> 
   <pubDate>Wed, 24 Jul 2013 16:36:21 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12489#t79536</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
