hasseg.org

Fixing the Nokia N82 iSync Plug-In

Filed under Mac, Miscallaneous

N82 and iSync buddy picture I Recently updated my cell phone to a Nokia N82. The most positive points about it are the relative snappiness of the user interface (most Symbian S60 devices are dog slow in that department) and the quite exhaustive feature list. The build quality feels alright and the camera takes excellent pictures for a phone. One of the biggest things that I enjoyed with my previous phone (a Nokia 3230) was the nicely working synchronization with Apple's iSync, so naturally I made sure that this would also work with the N82. Apple has included built-in support for syncing the 3230 in the iSync that ships with Leopard (it was in the Tiger version as well,) so I didn't need to install anything extra to get it to work. The N82, on the other hand, is not supported out of the box, so I needed to get an iSync plug-in for it from Nokia.

Update (Jan 30, 09): A little birdie told me that the issue detailed in this post has been fixed in the latest version of the official plugin from Nokia.

The Problem

The N82 iSync plug-in implements syncing features through the SyncML protocol that Nokia has been supporting in its phones for a while now, as opposed to the built-in support for the 3230, which was implemented via a piece of "sync agent" software that had to be installed on the phone. The installation of the plug-in went well, and I was quickly on my way to synchronizing my contacts and calendars onto the phone from my MacBook. When I looked at the results, though, I soon found out that all-day events from iCal were synchronized to the phone as meetings starting at 00:00 and ending at 23:59, instead of memos, which is how the phone calendar handles the concept of an "all-day event". Additionally, when I tried to edit one of these all-day events (ones that were created in iCal, that is) on the phone and sync the changes back to the Mac, I got an error message from iSync saying that changing all-day events on the phone is not allowed. This was not the case with the 3230, which interpreted all-day events created in iCal properly and allowed for changing them on the phone as well (thanks to Apple's sync agent software, I guess.) This would not fly.

N82 calendar screenshot with default settings + iSync error message about editing all day events on the phone

Research

I Started to research the issue with my BFF Google, and found out that this was a pretty common problem with recent S60 phones and their iSync plug-ins. Some suggested workarounds for other S60 phones included mentions of the MetaClasses.plist file in the iSync plug-in bundle (and some keys therein,) so this is what I started to look at next. Apparently the iSync plug-ins that Nokia offers are created with the "iSync Plug-in Maker" software that Apple ships with OS X (it's in the Developer Tools package that you have to install manually,) so I fired that up to investigate further. In the "Advanced options" section of that software I found an interesting option called "All-day event format" that seems to correspond with the AllDayEventFormat key in the MetaClasses property list.

iSync Plug-in Maker

The description for that key in iSync Plug-in Maker offers two example values. By browsing the web and going through the MetaClasses.plist files of other (built-in) iSync plug-ins for S60 phones I collected a couple more possible values:

Some Testing, More Research and a Revelation

I then started testing each of these. After each time I saved a new value in the property list for this key, I added all-day events for the current date in both iCal and the phone calendar, and then synced. This produced some initial results, but I also wanted to test editing the events, so I proceeded to edit the event made on the phone in iCal, and the event made in iCal on the phone, syncing again afterwards.

The results were varying, but none of the values I tried solved the problem completely. The most promising was AllDayEventCategoriesAndMidnight, which kept the original behaviour but allowed for editing the events created in iCal on the phone. This was not enough for me, of course, so I started googling a bit more to find some other things to try out with this property list. Then I managed to stumble upon this post on a Finnish Mac-themed message board (sorry, it's in finnish.) It seemed "juksu" had fixed this same problem for his Nokia N90 by merging some of the key/value pairs from the Apple-provided Nokia N73 iSync plug-in's MetaClasses.plist onto the corresponding file in his phone's plug-in bundle.

I took a look at some of the property list keys juksu mentioned in his post, and started copying the ones that seemed to somehow make sense (with regard to the issue) into the N82 plug-in's plist. After some trial and error I managed to find the keys and values I had to use in order to get the thing to work.

The Conclusion

It seems I have the problem solved now: all-day events created in iCal show up on the phone as memos and editing them on the phone doesn't result in an error message anymore:

Working N82 iSync plugin screenshots

Otherwise the thing seems to function as usual (as in: I haven't found this hack to result in any sort of collateral damage,) although I haven't really been using the calendars properly after doing this. I will report here if I notice any weird behaviour, though. Below I've summarized the steps needed to apply this hack to the plug-in:

  1. Install the N82 iSync plug-in
  2. Make a backup copy of the MetaClasses.plist file somewhere (you can find it in /Library/PhonePlugins/Nokia_N82_1v1.phoneplugin/Contents/Resources/MetaClasses.plist)
  3. Open the original file in a text editor
  4. Make the following edits under "com.apple.pimsync.parser.vCal":
  5. Save the file
  6. Open iSync, purge the calendar data on your phone and then sync

You can also just download the MetaClasses.plist file that I've been using: N82iSyncPluginFix-MetaClasses.plist.zip

39 Comments

John Utz March 9, 2008 at 9:30 PM

where is that cursed tool exactly?

i dont see it in my /Developer tree

is this leper only? i have tiger.

also, is there a chunk of doc that calls out all of the different chunks of sync-fu?

i have a LG VX 10000.

using the bluetooth info and the data that gets dumped into the console, i have managed to hx3r a MetaClasses.plist and an Info.plist enuf to get iSync to agree that the phone exists (i get a green dot now)

but i get a ‘is the phone turned on’ failure from iSync and an ’end of our sync plan’ message in the console.

Ali Rantakari March 10, 2008 at 1:19 PM

Hi John,

For me iSync plug-in maker can be found in /Developer/Applications/Utilities/. I am running Leopard (10.5.2), so maybe this tool isn’t included in the Developer Tools that ship with Tiger - I don’t know.

I’m not sure I understand your question about the “chunk of doc” and sync-fu?

Eugene May 14, 2008 at 5:32 AM

Works brilliantly for my E61i, thanks for the great work!

Adding to your instructions, if you’ve already added the phone to iSync, you’ll need to remove it, edit MetaClasses.plist, then add the phone again.

MaTiCeK June 6, 2008 at 10:35 PM

Man, you are the greatest! I’d been longing for this solution since I upgraded from an S60 v2 phone to the newer s60 v3. You just made my N95 feel so much better!

I’ve never been so grateful for a solution, as I am right now!

Thx!

Symbian S60 v3, Mac OS X, iSync in celodnevni dogodki « Digitalni Šepet June 7, 2008 at 12:18 AM

[…]   V kolikor je to neuspešno, lahko poizkusite najprej izbrisati vaš telefon iz iSynca in nato opraviti sinhronizacijo. Vir: hasseg.org […]

Ian June 11, 2008 at 5:41 AM

Not sure if you encountered this problem but when I change event times on my nokia n82, it appears as a new calendar event on my ical, did you ever encounter this?

Liron Tocker June 13, 2008 at 10:03 PM

Thank you so much for this guide. This worked in no-time to fix a problem I’ve been struggling with for ages.

Ali Rantakari June 16, 2008 at 10:44 AM

Hi Ian, I just changed the ending time for an event today on my phone and synced to the Mac, and it worked correctly – no extra events and the end time was correctly changed.

Follow Ryan » Blog Archive » N82 iSync all-day events fix! June 26, 2008 at 5:05 PM

[…] I have varying degrees of success when syncing Nokia phones to my Mac.  Usually, everything works well as long as you have a phone that’s been out for at least 2 months.  However, there was always one issue that wouldn’t go away: all-day events in iCal turned into 00:00-23:59 meetings in Nokia Calendar.  These are hardly the same thing.  Luckily I found Ali Rantakari’s blog post on just this subject. […]

Marcel S. July 3, 2008 at 11:53 PM

Hey guys!

After applying this fix, my all day events went from 14:00 till 23:59, before they went from 0:00 till 23:59.

Think I modded the file the wrong way, would it be possible to mail me a valid plist to marcelswietza@web.de?

Thank you =)

Marcel Swietza

Leo August 3, 2008 at 2:07 PM

I tried this for my e51 but it didn’t work, any ideas? thanks.

Leo August 5, 2008 at 4:30 AM

Turns out I was making a mistake in editing. With help from Ali, I made the necessary corrections to the Nokia E51 plug-in and it worked out very well. Excellent information on this site. Thanks!!

Leo August 5, 2008 at 4:33 PM

I tried this on my Nokia E71 as well and it works perfectly too. The MetaClasses.plist was actually the same for both the E51 and the E71 and I saw that the references to the particular model were the only ones different between the two .plists. Thanks again!

svintuss August 8, 2008 at 2:31 PM

Thanks for the tip. Worked flawlessly for my 6110 Navigator. Is it possible to make events appear as anniversaries, not as memos? I tried changing

<key>AllDayCategories</key> <array> <string>EVENT</string> <string>ANNIVERSARY</string> </array>

to

<key>AllDayCategories</key> <array> <string>EVENT</string> </array>

but that made no difference. All entries from birthday calendar are still “memos”.

Ali Rantakari August 8, 2008 at 2:55 PM

Hi svintuss,

I’m not sure if that’s possible. I’m also not sure how this works in your phone, but I guess the preferred solution would be to simply not synchronize the birthdays calendar at all and let your phone remind you of people’s birthdays in whichever way it is implemented there – after all, the birthdays from your Mac address book should be synchronized to the phone’s address book.

svintuss August 8, 2008 at 9:22 PM

Actually, all of the all-day events in my calendar are birthday reminders, so forcing all records to be “anniversaries” would be enough for me :-) On the other hand there is no difference in “memo” and “anniversary” except for icon.

Johan August 12, 2008 at 4:24 PM

Hi Leo!

Could you send me a working plist for the E71??? - I can’t get it to work…whenever I go in and - to the best of my knowledge - edit the plist, then try to re-add the E71, it isn’t recognized…what am I doing wrong? sobs I’ve been DYING for this fix ever since my E61i two years ago!

All the best, Johan

Leo August 13, 2008 at 7:13 AM

Hello Johan. It was actually by trial and error that I made it work, I had the same problems you had. Try to do this:

  1. delete the E71 device from iSync

  2. delete the E71 device from the bluetooth devices list in system preferences

  3. delete the Nokia_E71_1v1.phoneplugin folder from the PhonePlugins folder under Macintosh HD/Library

  4. download and reinstall the E71 phone plugin from the nokia website (this will return the Nokia_E71_1v1.phoneplugin folder you deleted prior)

  5. open system preferences and add the E71 to your bluetooth devices, make sure to choose mobile phone under the choices and that the syncing of contacts is checked in the window prompt afterwards (iSync application will then open)

  6. don’t add the device yet to iSync

  7. copy the original MetaClasses.plist to your desktop via drag and drop so you have a copy of the original

  8. write over the original MetaClasses.plist in the phoneplugins subfolder with this and save:

[snip snip! (MetaClasses.plist contents with wrong formatting removed by Ali)]

  1. try to add your device to iSync, making sure to choose the option of resetting the device with the data in your computer only instead or merging

  2. if that doesn’t work, do the whole process again from number 1 but add the device first to isync using the original MetaClasses.plist then after choosing the resetting option instead of merging but before starting the actual sync, replace the MetaClasses.plist with the corrected one above then sync.

Hope this works!

Leo August 13, 2008 at 7:46 AM

Hello Johan, with my apologies to Ali. The format I posted turned out wrong. I didn’t think that the format would change if you post the MetaClasses.plist here. Please just post your email address and I will email it to you.

Johan August 14, 2008 at 1:21 PM

Hi Leo!

Alrighty, no harm no foul. :-) And please e-mail me the plist-file: johan at braindead dot dk - thanks! :-)

Clement BOURGEOIS August 16, 2008 at 12:48 AM

Your hack is working nicely with my N95 too :)

chetbox August 20, 2008 at 5:01 PM

Thank you so much! I’ve been trying to figure this out for ages!! =D

Henrik September 8, 2008 at 3:33 AM

So I changed it from:

AllDayCategories

EVENT ANNIVERSARY

to:

AllDayCategories

ANNIVERSARY

All all-day events now appear as anniversaries on my phone (E71). Do you know if it is possible to specify in the MetaClasses.plist to treat one iCal calendar a certain way? E.g. have all events in my birthday calendar treated as anniversaries, and all other all-day events from all other calendars as events?

Ali Rantakari September 8, 2008 at 11:43 AM

Hi Henrik – no, I don’t know if that’s possible. See here for some documentation if you wish to research further: http://developer.apple.com/documentation/DeveloperTools/Conceptual/iSyncPluginMakerUserGuide/Introduction/chapter_1_section_1.html

Henrik September 8, 2008 at 12:02 PM

Thanks for the link (and for the plug-in mod in the first place)! I’ll see what I can figure out, if I come up with a solution I will post it here.

Sebastian September 22, 2008 at 12:15 AM

Hi, is there a way to sync notices with isync? I have a E71 and want to know if they were synced and where they will be stored on the mac under leopard?

Any ideas?

Chears,

Sebastian

Matt September 27, 2008 at 5:19 AM

Hej there! I’v the same problem as Marcel Swietza above: the all day events starts now at 14:00 and also end at this time. I’ve no idea what’s wrong with the code. Can you send me the modified file for using with E61i??? Thanks a lot, Matt

Shaun Yong September 28, 2008 at 10:35 AM

I’ve been trying this all day, but it’s my first and unsuccessful time. I’m on a e51, and i tried the instructions, but my all day events have realigned to 730pm - 730 am.

does the e51 require different configurations?

thanks alot.

Shaun.

after8ight@gmx.net

Helge November 14, 2008 at 10:51 PM

For my E51 I have done the modifications as listed above, but all-day events created in iCal are synched to the phone as events lasting from 13:00-13:00. :-/

Any ideas?

Ali Rantakari November 15, 2008 at 4:52 PM

Hi everyone,

I’ve just added a link to the end of the post to the modified MetaClasses.plist file that I’m using – maybe that’ll help out some of you that have had problems.

You can use FileMerge (under /Developer/Applications/Utilities if you have the OS X Developer Tools installed from the OS discs that came with your Mac) to compare my MetaClasses.plist with yours and see all the differences.

Helge November 16, 2008 at 9:59 PM

Thanks Ali for posting the file for the N82! Unfortunately, the file is drastically different from the one I have for my E51 so a simple merge will probably suffice (tried it, not recognised).

BTW, is the iSync Plugin-Maker able to edit an existing plug-in and just change the all-day settings?

Johannes March 11, 2009 at 1:39 PM

The new version from Nokia still doesn’t sync all-day events properly, unfotunately the fix doesn’t seem to do anything on it. I wished there was a solution… Johannes

Maurício March 24, 2009 at 3:05 AM

Hi friend, Thank you so much for your help with syncing my N82 with iSync!! At first iSync displayed “not compatible” and so did many Nokia sites… I was about to go to the store when I found you. Nokia Eurpe website has saved many times, the best by far. Thanks so much.

Maurício from brazil

Manuel March 25, 2009 at 3:59 PM

You’re the first one that I found, who has solved the problem. Unfortunately I have an e65 and your instructions don’t work here. The plist is not in the directory, where you said it would be.

Any idea??

Ali Rantakari March 25, 2009 at 4:03 PM

Hi Manuel,

Instead of looking in /Library/PhonePlugins/Nokia_N82_1v1.phoneplugin/ (since you have an E65 and not a N82,) try looking for the folder that matces your phone’s model under /Library/PhonePlugins/.

Manuel March 25, 2009 at 5:21 PM

Wow, that was a fast answer. Thanks!
I found the plist (in spotlight) and made all the changes as you instructed. Now my all-day-events are synced as appointements starting and ending at 13:00 (1pm). Same problem that Shaun Yong and Helge had. I’m thankfull for any further ideas!

(But this is at least better than before. Thank’s so far!)

Johannes March 25, 2009 at 6:04 PM

I have also got the 1pm problem, hoping for a fix… These events should sync as memos, no? They aren’t. Is there a way to change that?

Ulrich Strauss April 14, 2009 at 9:26 PM

Hi!

I just tried your fixes for my E51 and they did not quite work. While Memos created on the phone are synced to my mac as all day events, all day events from my mac are still synced to the phone as meetings from 0:00 to 23:59. Also Anniversaries created on the Phone are synced as timed events from 0:00 to 0:00. In the other comments someone described some differences for e51 but unfortunatly the code was not posted. Could someone be so kind to repost that code or send it via email? mail is ulrich DOT strauss AT gmail DOT com

jade smith November 16, 2010 at 11:57 AM

The exterior feels a bit cheap and a lot needs to be done to improve the navigation buttons. There is also no US 3G support. If these flaws don’t matter much to you and if you are looking for a phone that offers great multimedia experience, Nokia n82 is what you’ve been looking for.

Categories