Tag Archives: e51

Nokia E51 / E52 / E72 calendar not working properly after Notes Migration

Recently I migrated a customer from Domino/Notes to Exchange 2010 SP1 using Quest Notes Migrator for Exchange server 4.3.1 (Quest NME).

All was working perfectly except activesync with Nokia mobiles. All old and therefore migrated calendar items were not syncronized to the mobile phones. While newly added items are correctly syncronized.

I then updated Nokia phones with the latest firmware and installed the latest “Mail for Exchange 3”. All without any change, calendar items are still not syncronized.

With alot of inspiration from a collegue of mine Arthur Berkowicz I’ve created a powershell script that updates all calendar entries and saves them back to Exchange.

The script basically just adds _ at the end of the subject and saves, then reverting the change. This results in a newly saved calendar entry on the users calendar. I’ve made the script only change calendar entries from the previous 360 days to the coming 360 days.

Now all phones start to syncronize all older items aswell as new. Problem (almost) solved! The twist here is that you need to reset the phone itself. Otherwise it will just skip all existing items and not syncronize. On Nokia E51 models I had to reinstall Mail for Exchange (MFE) while on Nokia E52/E72 I forced a firmware upgrade onto the phone.

The script
You will need to download and install the Exchange Web Services Managed API.

You will also need to have EMC installed for Exchange 2010 on the computer where you want to run code.


$MailboxName = "usersemail-address"
[void][Reflection.Assembly]::LoadFile("C:\Program Files\Microsoft\Exchange\Web Services\1.0\Microsoft.Exchange.WebServices.dll")

$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP1)
$service.AutodiscoverUrl($MailboxName)

$folderid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar,$MailboxName)
$CalendarFolder = [Microsoft.Exchange.WebServices.Data.CalendarFolder]::Bind($service,$folderid)

$startdate = [System.DateTime]::Now.AddDays(-360)
$enddate = [System.DateTime]::Now.AddDays(+360)

$Calendarview = new-object Microsoft.Exchange.WebServices.Data.CalendarView($startdate,$enddate)
$Calendarview.PropertySet = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)

$CalendarResult = $CalendarFolder.FindAppointments($Calendarview)
"Found items to update: " + $CalendarResult.Items.count

foreach($calitem in $CalendarResult){
$oldsubj = $calitem.Subject
$calitem.Subject = $oldsubj + "_"
$calitem.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite, [Microsoft.Exchange.WebServices.Data.SendInvitationsOrCancellationsMode]::SendToNone)
$calitem.Subject = $oldsubj
$calitem.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite, [Microsoft.Exchange.WebServices.Data.SendInvitationsOrCancellationsMode]::SendToNone)
}