May 18, 2008

Synchronizing Google contacts and Thunderbird address books

I've developed a new extension for Thunderbird named Google Contacts. This extension accesses to Google contacts and synchronize them with Thunderbird address books.

After you installed the extension, it detects all the Gmail accounts which have already set up on Thunderbird and accesses to the contacts for them. Then, it creates address books named Google-accountname for each of them. It is OK to rename them.

When you update cards in the address books, the changes are immediately applied to the contacts in Google; if you delete a card, the contact will be remove from Google; if you add a new card to the address book, a contact is added to Google. This is similar to the way IMAP updates messages.

If you delete the address book, the contacts for the account are no more synchronized. If you want to sync them again, open Config Editor and change the value of gmcont.accountname.sync to true.

The extension retrieve Goolge contacts automatically when Thunderbird launches. If you don't want to synchronize at startup add gmcont.auth_at_startup and set its value false. Please note that you should sync Thunderbird and Google by clicking the Reload button in either the main or the address book window before you modify address book cards if you use the configuration.

There are the following limitations:
  • Only items shared by Google and Thunderbird are synchronized,
  • You have to input an email address or display name for a card. This is specification of Google,
  • All the changes while you did on offline will be discarded when you go online,
  • Only accounts which already set up are synchronized.
This is initial version and may involve serious bugs. So, please don't forget to backup Google contacts before you use the extension.

If you find any problems or have requests, please let me know.

Update1
There is one more limitation which I forgot to write. It cannot sync Thunderbird's lists and Gmail's groups. This is because Google does not provide API for retrieving and modifying groups. Therefore, it is difficult to realize the functionality so far.

Update2
The latest version has an option dialog. So, you can set up preferences easily by the dialog, not by the Config Editor.

Update3
Gmail's contact groups are supported by Google Contacts v0.2.10. TB specific properties are also stored in Google contacts by the version. See this post for details. Try it!

Update4

Offline changes can be synchronized when you click the Reload button. It has been supported by v0.3 or later.

200 comments:

Popular Posts