Exchange WebServices Offline AddressBook

It is now possible to download GAL contents for offline usage through exchange web services in Evolution. Offline GAL is termed as Offline Address-book (OAB) in Exchange WebServices and it may contain one or more Offline Address-lists (OAL).

The check-box, ‘Cache offline address-book’ would be sensitive if the OAB url is discovered using the AutoDiscover service from the previous page (‘Receiving’). On clicking the fetch buton, the available offline address-lists would be displayed in the combo box.  The user can select the address-list which he is interested in.

If the GAL is not selected for offline usage.  A GAL folder would be created in Contacts component and would be used just for auto-completion when Evolution is online.

To change an offline address-list, one just needs to go back to ‘Receiving page’ in preference and select a different address-list. This would remove the old OAL folder and its contents and create a new OAL folder.  At the moment, evolution-ews supports caching only one OAL, though it is very easy to extend it to support many. I feel it would sufficient to have one at the moment, but if a need arises, the plugin can be extended to create new OAL folders on demand.

If an address-list is chosen for offline usage, one CAN auto-complete while the caching is in progress!! All operations are asynchronous and cancellable.


OAL’s would be listed in the link  <OABUrl> + ‘oab.xml’. They would be available as compressed files, compressed using LZXD format.  There are three versions of OAB ‘2, 3, 4’ and Evolution supports downloading, version 4 OAB Full Details file.


To put it simply, lzxd extends the lzx decompression format adding support for differential updates. I have picked up the lzx decompression code from libmspack and modified it to make it decompress the lzxd file. The support for differential update is yet to added.


The format for the uncompressed OAB Version 4 file is available at . Evolution-ews has the decoder which decodes the oab file, converts to EContact and then we  populates the address-book sqlitedb in chunks of 1000 contacts.

And now the contents are available for offline use 🙂

CamelUrl props

“oab_offline” – says if oab is marked for offline.

“oal_selected” – contains the selected “oal id:oal name”

“oaburl” – contains the oab url

ESource props

“hosturl” – contains the host url, used for auto-completion.

“oaburl” – contains the oab url.

“oalid” – id of the OAL.

“gal” – a boolean that it indicates that its gal folder.


Lightening up Evolution with Exchange Web Services

Off-late we have been working quite aggressively on improving our exchange connectivity using Exchange Web Services .  Some evolution hackers sat together during GUADEC 2010 and discussed on the focus areas which our community users as well as corporates would be interested in. Exchange Web Services was on top of the list and David Woodhouse kick-started the work at the same time!  The development went on in David’s repo – and you can watch out the progress there..









The festival season has started for evolution exchange and we have evolution showing the folders, mails and meetings using Exchange Web Services.  We currently just have the read-only support for mailer and calendar at the moment and we are working towards providing a complete support for calendar, mails and contacts.

Its always very nice to thanks all the contributors. Thanks to David Woodhouse who kick-started it, Michael meeks he is always there :), Johnny, Bharath Acharya, Akhil  Laddha, Chen, Fridrich who has been constantly getting it to compile on Windows…

There are more developers getting involved now and thanks to the organizations for supporting the development!! We are looking forward to deliver the package by the beginning of May 2011 for all the users.. One would be able to use EWS connector with Evolution version 2.32 onwards..

Evolution 2.30 released!!

This is one of the memorable releases of evolution considering the amount of work which has gone into this release.  We could consider this as a preview for GNOME 3.0. To provide a snapshot of the major changes in this release,

  • Diligent UI re-architecture to give farewell to bonobo.
  • Improved imap implementation with live view updates, non-blocking operations and IDLE support, IMAPX.
  • DBus transport replacing bonobo for address-book and calendar.
  • GNOME 3.0 cleanup tasks. Gets rid of LibGnome, LibGnomeUi, LibArtLgpl, LibGLade.
  • Evolution-mapi with push mail support and reduced memory footprint.
  • Contacts map  plugin.

Getting rid of bonobo from evolution was not only a cleanup work, but it enables evolution to shed off lot of weight to get flying.  This has provided a lot of positive side-effects,  one of the best which needs to be quoted is the startup speed of preference dialog. Evolution is now sleak and fast. If one has used the previous versions of evolution,  no one needs to explain for appreciating the work. All credits goes to Matthew Barnes who has done an extra-ordinary job here.

We also have the new imap implementation IMAPX, which provides substantial performance improvements over the old imap provider making all the operations non-blocking in nature.

Credits to Ross Burton for replacing  bonobo with dbus transport in EDS.  This would pave way for us to fix some out-standing issues which had been put aside waiting for this change to dbus.  There is also some work-in-progress for making this extremely stable in threaded environment.

We have listed the probable tasks which would be taken up for the future releases at  We would be picking up some tasks from there for Evolution 3.0 depending on the effort available. If you have suggestions  feel free to get in touch with us to get it added..

Thanks to Akhil Laddha (bug master), Milan Crha (patch master), Johnny Jacob, Bharath Acharya and all others (many to list everyone here.. ) who have made significant contributions for making this release successful. Thanks to all the contributors, translators, distributors and users!!

Evolution with improved IMAP support – IMAPX

I had been working for a while on improving the imap support in evolution. Took the imapx provider which was written by Michael Zuchhi (aka Notzed) and getting it ready for replacing the existing IMAP provider. To summarize what is present,

* Fetch messages in batches
* Fetch messages with large attachments in multiple pieces
* IDLE support (push mail for imap)
* All operations on messages
* Cancel operations

A small screen cast demo of the same 🙂

The items which am working on are,

* Store operations (folder delete/create etc.)
* Preference options
* Connection manager to allow concurrent folder access (configurable one)
* Smart background message caching
* Mutliple namespace support

This design follows most of the aspects which are recommended for an IMAP client. Since we now parse all the unsolicited (aka untagged) responses from the server, syncing the changes is just instant when comparing with the existing imap provider even without the IDLE support. Users who live in inbox are going to love this 🙂

I would be working agressively to provide a wonderful imap experience with evolution for all evo fans 🙂  With akhils’s help we are setting up a server with multiple namespaces to test shared, public folders. If anyone can provide me an account with servers configured with multiple namespaces, it would be of great help.

If you need anything more get in touch 🙂 Also send ur kudos to Michael Zuchhi!!

Evolution 2.28.0 released!!

Evolution team is happy and proud to announce the evolution 2.28.0 release. To give an overview of what the release provides,

• Google calendar will be available through Caldav interface by default

• Configurable date formats

• Selecting local ICal files as calendar sources

Better Calendar cache

Attachment bar rewrite

• Support for unmatched vfolder and creating vfolder using vfolders is added back.

• GroupWise conversation threading

• GroupWise meeting retract/resend

• Tons of bug fixes

As many would know already, we branched evolution early in order to get rid of bonobo. Am happy to see this from mbarnes!

We have already started working on the tasks identified for the 2.30. Here is the summary of those tasks,

• Bonobo less Evolution

• EDS DBus port

• Exchange MAPI Improvements

• Mailer async operations (with IMAPX)

• GNOME 3.0 Cleanup

• Migrate go-evolution wiki contents to lgo and

• Quick steps for writing evolution plugins

• Disk summary regressions on vfolder

If you would like to get involved in any of the above work or have some new ideas, we would be happy to guide. We need more people getting involved in Evolution development!

Some screen shots of the new features added,


Configurable date formats


Allow Local  Ical files to be added as calendar sources

This is a special release for myself and mbarnes as we have taken the responsibility of maintainer-ship from this release.

Thanks to all the users, testers, developers, translators, bug masters, distributors and everyone involved in the project.