Apple contact dates (Birthday / Anniversary) off by a day
Creating or modifying a contact containing a birthday or anniversary date from an Apple device running iOS4.x may result in the birthday or anniversary date being a day earlier in your Domino contact.
An iOS4.x device converts the date you entered from midnight in the device time zone to the corresponding date/time in GMT time. This converted date/time is what the device synchronizes to Lotus Traveler. For time zones east of GMT the date saved in Domino will be the day before the one entered on the device. The correct date will be saved in Domino when the device time zone is west of GMT.
No time zone information is included in the synchronization for contacts. The server expects the date received to be the date entered by the device user. Over time the contact date may be shifted multiple times. This occurs after the server contact synchronizes back to the device with the wrong date. Any update to the contact from the device after this would result in the date being shifted by another day.
The problem does not occur with Apple OS3.x devices since they synchronize the entered date regardless of the device time zone. An Apple problem report (8417352) has been opened for this issue (see
Known limitations with Apple Devices and Lotus Notes Traveler).
Possible workarounds:
- Store you birthday and anniversary dates in a contact text field that you do not otherwise use. The 'note' field in an Apple contact is one possibility. This field will display under Comments in your Domino Contact.
- Modify the Lotus Traveler mapping database to ignore the Birthday and Anniversary dates sent by the device. These fields would then be ignored for ALL device types, not just Apple devices. The Birthday and Anniversary dates would sync from the server to the device but any changes made from the device to these fields would be ignored by the server.
Modifying the Lotus Traveler mapping database to ignore Birthday and Anniversary dates from the device
There are 2 ways this can be accomplished:
1) This method requires you to make these documented changes each time you install a new Lotus Traveler level.
- Open the R6PersonMap.nsf with a Notes Client. This database is located under your Domino data directory path ..\domino\data\traveler\map.
- Open the document that has Birthday in the Field Name column
- Double click to get into edit mode
- Check the 'Skip' box for Property -> Field. This is the device to server direction.
- Save the document
- Make the same change for the Anniversary document and save
- Close the R6PersonMap.nsf. Make sure you do not leave it open when restarting Lotus Traveler
- Restart Lotus Traveler
2) This method is more complex than method 1 above but only needs to be done once. A Lotus Traveler upgrade will not remove this change, but you should verify that no mapping changes were made to the R6PersonMap.nsf in the upgrade. If so, these changes would need to be copied to your custom mapping database created by these instructions.
- Open the MapDir.nsf with a Notes Client. This database is located under your Domino data directory path ..\domino\data\traveler\map.
- Open the ..\custom\MapDir.nsf with the Notes Client. This database is located in ..\domino\data\traveler\map\custom.
- Copy and Paste the entry for StdR6Mail (NTFName column) with Person in the DocFormType column into the ..\custom\MapDir.nsf.
- Edit the copied entry in the custom\MapDir.nsf
- Change the name in the FieldMapDBName column to point to a new person mapping database. Example: map/custom/myCustomPerson.nsf
- save this change
- Create a new nsf database with the name above (ex. myCustomPerson.nsf) using the template ..\domino\data\map\EsmMapTemmplate.ntf in the ..\map\custom directory
- Copy and Paste all the documents from the R6PersonMap.nsf into your new myCustomPerson.nsf database.
- Open the document in myCustomPerson.nsf database that has Birthday in the Field Name column
- Double click to get into edit mode
- Check the 'Skip' box for Property -> Field. This is the device to server direction.
- Save the document
- Make the same change for the Anniversary document and save
- Close all the databases (MapDir.nsf, custom\MapDir.nsf, R6PersonMap.nsf, custom\myCustomPerson.nsf) . Make sure not to leave these open in the Notes Client when restarting Lotus Traveler.
- Restart Lotus Traveler