<?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>Work around inconsistent handling of birthday and anniversary  fields in ActiveSync</title> 
  <pubDate>Fri, 10 Apr 2026 07:55:23 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/12581</link> 
  <atom:link rel="self" type="application/rss+xml" title="Work around inconsistent handling of birthday and anniversary  fields in ActiveSync" href="https://bugs.horde.org/ticket/12581/rss" /> 
  <description>Work around inconsistent handling of birthday and anniversary  fields in ActiveSync</description> 
 
   
   
  <item> 
   <title>Hi,

I know this is a known issue with most ActiveSync cli</title> 
   <description>Hi,

I know this is a known issue with most ActiveSync clients, but the birtday offset issue is very annoying...

It would be useful to have an option to block the update from the clients.

The communication would be only from Server =&gt; Client and not from Client =&gt; Server for this (a list?) field.

I&#039;m aware it is a ... bad fix, but I try to please all my users.

If not, is there another workaround to do this ?

Ryu</description> 
   <pubDate>Mon, 19 Aug 2013 10:08:05 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t80087</link> 
  </item> 
   
  <item> 
   <title>This issue remains the single biggest bugbear for my users..</title> 
   <description>This issue remains the single biggest bugbear for my users... sad I know. :)

You should try it when you have multiple AS devices on the same account, I have had instances of birthdays shifting up to 5 or 6 days out :-O

A workaround or fix of some description for this would make my year.  Although blocking it sounds like a last resort! :)</description> 
   <pubDate>Tue, 27 Aug 2013 07:13:55 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t80379</link> 
  </item> 
   
  <item> 
   <title>We&#039;re not going down the path of selectively ignoring client</title> 
   <description>We&#039;re not going down the path of selectively ignoring client sent fields that should be supported by the protocol.</description> 
   <pubDate>Sat, 23 Nov 2013 18:27:07 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81670</link> 
  </item> 
   
  <item> 
   <title>&gt; We&#039;re not going down the path of selectively ignoring clie</title> 
   <description>&gt; We&#039;re not going down the path of selectively ignoring client sent 
&gt; fields that should be supported by the protocol.

I find your answer a bit hard. I understand that this is not the right solution. But sometimes you have to be flexible to make users happy ...
AS is a bad protocol for dates, but if you can work around, that&#039;s fine. No?</description> 
   <pubDate>Thu, 28 Nov 2013 14:41:43 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81710</link> 
  </item> 
   
  <item> 
   <title>Michael Rubinsky: FYI, I have added code to Horde_ActiveSync</title> 
   <description>Michael Rubinsky: FYI, I have added code to Horde_ActiveSync to attempt to work around this bug. It relies on sniffing out the client in use and adjusting the birthday accordingly. So, if it is still not working for anyone, please provide the device information (from the activesync properties screen) and the log showing the contact being synched.</description> 
   <pubDate>Tue, 17 Dec 2013 08:27:03 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81796</link> 
  </item> 
   
  <item> 
   <title>&gt; Michael Rubinsky: FYI, I have added code to Horde_ActiveSy</title> 
   <description>&gt; Michael Rubinsky: FYI, I have added code to Horde_ActiveSync to 
&gt; attempt to work around this bug. It relies on sniffing out the client 
&gt; in use and adjusting the birthday accordingly. So, if it is still not 
&gt; working for anyone, please provide the device information (from the 
&gt; activesync properties screen) and the log showing the contact being 
&gt; synched.

Ok, good news ! I check this improvement asap and I tell you. Thx</description> 
   <pubDate>Wed, 18 Dec 2013 16:56:22 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81904</link> 
  </item> 
   
  <item> 
   <title>&gt; Michael Rubinsky: FYI, I have added code to Horde_ActiveSy</title> 
   <description>&gt; Michael Rubinsky: FYI, I have added code to Horde_ActiveSync to 
&gt; attempt to work around this bug. It relies on sniffing out the client 
&gt; in use and adjusting the birthday accordingly. So, if it is still not 
&gt; working for anyone, please provide the device information (from the 
&gt; activesync properties screen) and the log showing the contact being 
&gt; synched.

Sorry... Bad news. it does not work with my old iPhone on ios 4.2.1

Device Information
Id: Appl888298T71R4
Clef d&#039;accès: 0
User Agent: Apple-iPhone1C2/803.148
EAS Version: 14.0

And the sync log in attachment

The birthday is 06/05/1981 (6th of may 1981). I leave in France if this is important for the time zone.

I did not check with a newer device with ios 7...

Ryu
</description> 
   <pubDate>Tue, 24 Dec 2013 14:04:12 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81928</link> 
  </item> 
   
  <item> 
   <title>&gt; Sorry... Bad news. it does not work with my old iPhone on </title> 
   <description>&gt; Sorry... Bad news. it does not work with my old iPhone on ios 4.2.1

It is impossible to fix this correctly in iOS &lt; 5. The fix will only be accurate in later versions. Earlier versions do not use any consistency in the time the birthday is represented as. When the birthday is entered/changed on the device it uses the current time of day. No idea what time it expects it as when the birthday is transmitted to the device. My guess is it ignores the time entirely and does not perform any UTC -&gt; timezone translation.</description> 
   <pubDate>Tue, 24 Dec 2013 16:30:06 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81929</link> 
  </item> 
   
  <item> 
   <title>Though now that I think about it some more, it might make mo</title> 
   <description>Though now that I think about it some more, it might make more sense to treat the incoming birthday field the same anyway... it&#039;s far more likely that we are not actually entering/changing the birthday on the device, but rather it is being sent as part of another edit (even though it shouldn&#039;t be, but that&#039;s a completely different story).

I&#039;ll look at this some more when I&#039;m back in my office.</description> 
   <pubDate>Tue, 24 Dec 2013 16:34:17 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81931</link> 
  </item> 
   
  <item> 
   <title>iPad | Apple-iPad2C2/1102.511Fri, 27 Dec 2013 15:15:21 +1000</title> 
   <description>iPad | Apple-iPad2C2/1102.511Fri, 27 Dec 2013 15:15:21 +1000    5336108190    Provisioned    APPLDLXFT5X3DFJ2

Birthdate entered on the iPad as 24th April, synced to server as 23rd.


2013-12-27T05:15:20+00:00 INFO: [24248] Loading state for synckey {52bd0b3c-e9b4-4551-b98e-5deec0a801e6}17
2013-12-27T05:15:20+00:00 DEBUG: [24248] I      &lt;Modify&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I       &lt;ServerEntryId&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I         [60 bytes of content]
2013-12-27T05:15:20+00:00 DEBUG: [24248] I       &lt;/ServerEntryId&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I       &lt;Data&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;AirSyncBase:Body&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I         &lt;AirSyncBase:Type&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I           1
2013-12-27T05:15:20+00:00 DEBUG: [24248] I         &lt;/AirSyncBase:Type&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I         &lt;AirSyncBase:Data /&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/AirSyncBase:Body&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:Birthday&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I          2002-04-23T14:00:00.000Z
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:Birthday&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:Email1Address&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I          **********************
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:Email1Address&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:Email2Address&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I          **********************
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:Email2Address&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:FileAs&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I          **********************
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:FileAs&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:FirstName&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I          ********
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:FirstName&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:LastName&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I          Wilson
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:LastName&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:Picture /&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:Categories&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I         &lt;POOMCONTACTS:Category&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I           Family
2013-12-27T05:15:20+00:00 DEBUG: [24248] I         &lt;/POOMCONTACTS:Category&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:Categories&gt;
2013-12-27T05:15:20+00:00 DEBUG: [24248] I       &lt;/Data&gt;
2013-12-27T05:15:20+00:00 INFO: [24248] Horde_Core_ActiveSync_Driver::_smartStatMessage(@Contacts@, 20130503091539.Xx-bLJ7JaWUR7JoAyciBRA4@mail.simonandkate.net)
2013-12-27T05:15:20+00:00 INFO: [24248] Horde_Core_ActiveSync_Driver::changeMessage(@Contacts@, 20130503091539.Xx-bLJ7JaWUR7JoAyciBRA4@mail.simonandkate.net ...)
2013-12-27T05:15:20+00:00 INFO: [24248] Horde_Core_ActiveSync_Driver::_smartStatMessage(@Contacts@, 20130503091539.Xx-bLJ7JaWUR7JoAyciBRA4@mail.simonandkate.net)
2013-12-27T05:15:20+00:00 INFO: [24248] Updating state during change</description> 
   <pubDate>Fri, 27 Dec 2013 05:19:38 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81940</link> 
  </item> 
   
  <item> 
   <title>Just realised that string does not show the iOS version, whi</title> 
   <description>Just realised that string does not show the iOS version, which is 7.0.3.</description> 
   <pubDate>Fri, 27 Dec 2013 05:21:12 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81941</link> 
  </item> 
   
  <item> 
   <title>That is then sync&#039;ed to my Android tablet as follows:

201</title> 
   <description>That is then sync&#039;ed to my Android tablet as follows:

2013-12-27T05:15:26+00:00 DEBUG: [24043] O        &lt;POOMCONTACTS:Birthday&gt;
2013-12-27T05:15:26+00:00 DEBUG: [24043] O         2002-04-23T00:00:00.000Z
2013-12-27T05:15:26+00:00 DEBUG: [24043] O        &lt;/POOMCONTACTS:Birthday&gt;</description> 
   <pubDate>Fri, 27 Dec 2013 05:25:03 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81942</link> 
  </item> 
   
  <item> 
   <title>Setting the birthday to correct 24/04 on the Android syncs t</title> 
   <description>Setting the birthday to correct 24/04 on the Android syncs to server as:

2013-12-27T05:26:09+00:00 DEBUG: [24046] I        &lt;POOMCONTACTS:Birthday&gt;
2013-12-27T05:26:09+00:00 DEBUG: [24046] I          2002-04-24T08:00:00.000Z
2013-12-27T05:26:09+00:00 DEBUG: [24046] I        &lt;/POOMCONTACTS:Birthday&gt;

So it syncs at the date + 8 hours (the iPad synced at the date -10 hours).

The server then syncs back to the iPad with:

2013-12-27T05:26:41+00:00 DEBUG: [24043] O        &lt;POOMCONTACTS:Birthday&gt;
2013-12-27T05:26:41+00:00 DEBUG: [24043] O         2002-04-24T00:00:00.000Z
2013-12-27T05:26:41+00:00 DEBUG: [24043] O        &lt;/POOMCONTACTS:Birthday&gt;

End result is correct on all devices.

So if I set the date on the Android or the server I get a correct result on all devices. 

If I edit the contact on the iPad it drops back a day on the server to the 23rd, which then syncs to the Android as the 23rd, incorrect. </description> 
   <pubDate>Fri, 27 Dec 2013 05:34:09 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81943</link> 
  </item> 
   
  <item> 
   <title>What is the default timezone for php, and what timezone are </title> 
   <description>What is the default timezone for php, and what timezone are the devices set to?</description> 
   <pubDate>Fri, 27 Dec 2013 14:21:13 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81945</link> 
  </item> 
   
  <item> 
   <title>I should point out that the only way this is ever going to w</title> 
   <description>I should point out that the only way this is ever going to work is if the timezones are the same on the device and the server. This is because date values in the EAS protocol are always sent as UTC and converted to local timezone on device and server.

iOS  *always* seems to assume the birthday is at midnight, on the entered date in the device&#039;s local timezone. So, when the record is sent to the server, it is adjusted to UTC. The server then re-adjusts it back to the server&#039;s local timezone. The only way this will 100% result in an accurate date is if the timezones are the same.</description> 
   <pubDate>Fri, 27 Dec 2013 14:27:05 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81946</link> 
  </item> 
   
  <item> 
   <title>&gt; 2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCON</title> 
   <description>&gt; 2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;POOMCONTACTS:Birthday&gt;
&gt; 2013-12-27T05:15:20+00:00 DEBUG: [24248] I          2002-04-23T14:00:00.000Z
&gt; 2013-12-27T05:15:20+00:00 DEBUG: [24248] I        &lt;/POOMCONTACTS:Birthday&gt;

From this I would assume that your iPad is set to UTC+10?</description> 
   <pubDate>Fri, 27 Dec 2013 14:29:10 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81947</link> 
  </item> 
   
  <item> 
   <title>&gt; That is then sync&#039;ed to my Android tablet as follows:
&gt;
</title> 
   <description>&gt; That is then sync&#039;ed to my Android tablet as follows:
&gt;
&gt; 2013-12-27T05:15:26+00:00 DEBUG: [24043] O        &lt;POOMCONTACTS:Birthday&gt;
&gt; 2013-12-27T05:15:26+00:00 DEBUG: [24043] O         2002-04-23T00:00:00.000Z
&gt; 2013-12-27T05:15:26+00:00 DEBUG: [24043] O        &lt;/POOMCONTACTS:Birthday&gt;

This isn&#039;t expected based on what I was assuming. It should be sent as 2002-04-24T08:00:00.000Z.

Can you provide me with some device details? Agent string, android version etc... ? Could be the code isn&#039;t sniffing out the android version properly...or it&#039;s an old android version without proper support for the field (Android versions &lt; 4).</description> 
   <pubDate>Fri, 27 Dec 2013 14:35:34 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81948</link> 
  </item> 
   
  <item> 
   <title>&gt; I should point out that the only way this is ever going to</title> 
   <description>&gt; I should point out that the only way this is ever going to work is if 
&gt; the timezones are the same on the device and the server. This is 
&gt; because date values in the EAS protocol are always sent as UTC and 
&gt; converted to local timezone on device and server.
&gt;
&gt; iOS  *always* seems to assume the birthday is at midnight, on the 
&gt; entered date in the device&#039;s local timezone. So, when the record is 
&gt; sent to the server, it is adjusted to UTC. The server then re-adjusts 
&gt; it back to the server&#039;s local timezone. The only way this will 100% 
&gt; result in an accurate date is if the timezones are the same.

Yes ! Exactly.
I just set the timezone of the server to Europe/Paris (I&#039;m from France) and the synchronisation is OK in both direction.
It is a pretty workaround for users using Horde in the same timezone.

It works with my ios 4.2.1 perfectly !

Thanks</description> 
   <pubDate>Fri, 27 Dec 2013 15:06:01 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81949</link> 
  </item> 
   
  <item> 
   <title>OK, my PHP was using UTC, so I set the timezone explicitly i</title> 
   <description>OK, my PHP was using UTC, so I set the timezone explicitly in php.ini. 

Yes. I am in GMT+10 (Australia).

Now setting a birthday as 27/1/89 on the 7.0.3 iPad syncs as follows:

2013-12-28T13:55:01+10:00 DEBUG: [11326] I        &lt;POOMCONTACTS:Birthday&gt;
2013-12-28T13:55:01+10:00 DEBUG: [11326] I          1989-01-26T14:00:00.000Z
2013-12-28T13:55:01+10:00 DEBUG: [11326] I        &lt;/POOMCONTACTS:Birthday&gt;

Turba correctly shows this birthdate as 27th. It is in SQL as 1989-01-27.

This syncs back out to my Zperia Tablet Z (Android 4.3) as:

2013-12-28T14:00:07+10:00 DEBUG: [11327] O        &lt;POOMCONTACTS:Birthday&gt;
2013-12-28T14:00:07+10:00 DEBUG: [11327] O         1989-01-26T14:00:00.000Z
2013-12-28T14:00:07+10:00 DEBUG: [11327] O        &lt;/POOMCONTACTS:Birthday&gt;

And correctly displays as 27th January.

So at this stage, all I need to do is check iPad to Horde to iPhone and back, but all looking OK for me... :)</description> 
   <pubDate>Sat, 28 Dec 2013 04:02:16 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81957</link> 
  </item> 
   
  <item> 
   <title>The Xperia syncs differently:

31/08/93 syncs as:

2013-</title> 
   <description>The Xperia syncs differently:

31/08/93 syncs as:

2013-12-28T14:03:53+10:00 DEBUG: [11256] I        &lt;POOMCONTACTS:Birthday&gt;
2013-12-28T14:03:53+10:00 DEBUG: [11256] I          1993-08-31T08:00:00.000Z
2013-12-28T14:03:53+10:00 DEBUG: [11256] I        &lt;/POOMCONTACTS:Birthday&gt;

So still plus 8 instead of the iPad&#039;s minus 10.

But displays correctly in Turba as 31st August. 

That then correctly syncs out to iPad as:

2013-12-28T14:04:23+10:00 DEBUG: [11261] O        &lt;POOMCONTACTS:Birthday&gt;
2013-12-28T14:04:23+10:00 DEBUG: [11261] O         1993-08-30T14:00:00.000Z
2013-12-28T14:04:23+10:00 DEBUG: [11261] O        &lt;/POOMCONTACTS:Birthday&gt;

Thanks all. </description> 
   <pubDate>Sat, 28 Dec 2013 04:07:23 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81958</link> 
  </item> 
   
  <item> 
   <title>&gt; Yes ! Exactly.
&gt; I just set the timezone of the server to</title> 
   <description>&gt; Yes ! Exactly.
&gt; I just set the timezone of the server to Europe/Paris (I&#039;m from 
&gt; France) and the synchronisation is OK in both direction.
&gt; It is a pretty workaround for users using Horde in the same timezone.
&gt;
&gt; It works with my ios 4.2.1 perfectly !
&gt;
&gt; Thanks

I can confirm that explicitly setting the date.timezone setting in php.ini fixed the time shifting problem for time zone &quot;Europe/Berlin&quot; on activesync with iPhone 5 running iOS 7.04 (11B554a). Thanks a lot!</description> 
   <pubDate>Mon, 30 Dec 2013 20:44:10 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12581#t81963</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
