Evolution EWS plans for 3.0

Research on features

All operations across components should be cancellable.

Fetching Global address list

  • Use OAB (Offline Address Book) for caching the GAL locally into Evolution. Find on how to do it?
  • While caching happens in the background, until the cache is setup, use Resolve Names

Fetching Public folders

  • Needs an additional header not mentioned in the documentation
    • Include the following header for Exchange 2007, <soap:Header><t:RequestServerVersion Version="Exchange2007_SP1"/></soap:Header>

    • What's the equivalent for Exchange 2010? No server to test as yet.

Mail discussions

These are just pre-mature thoughts which came up.


Following the IMAPX backend, we could make EWS asynchronous in the same manner prioritizing the client requests.

  • Separate out the prioritizing client requests and make it common to all providers.
  • Is pipe-ling requests possible?


Make the operations similar to mailer. Handle all the operations Offline and later sync it with server.

  • Handle all the offline operations in a single class, say CalBackendOffline.

  • Cache needs to be extended to be able to give the list of un-syncronized (local->server) items

We could handle the error messages for the un-synchronized calendar items (eg: meeting created) by optionally displaying an error dialog and also providing a visual cue in the form of an icon.

The error can also be logged per event. Eg: Opening the meeting can show the actual error in the meeting editor in a non-intrusive manner. This very similar to how mailer handles the un-sent mails in OutBox showing the error messages.

Improve FreeBusy performance by fetching free/busy information for all users at a single stretch if the server supports it. FreeBusy requests should be cancellable. Provide EDS ECal apis for the same.


Ensure the auto-completion performance does'nt fade while caching the contacts or fetching deltas.

other improvement areas?

Single Connection (to be analyzed)

Are multiple connections allowed on exchange servers or is there any limit ?

Since address-book, calendar, mailer are run as separate processes we would require three connections if connections are not shared.

If we want to use a single connection, we might need to write ews connection layer as a separate process and let mailer,e-address-book-factory, e-calendar-factory send the requests to it.

Bharath is currently working on authentication part and will ensure that the requests/responses from the server are handled asynchronously.

Git Repository

URL: git://git.gnome.org/evolution-ews

How to use git: http://live.gnome.org/Git/Developers


1. Development overview - http://msdn.microsoft.com/en-us/library/cc535017%28v=EXCHG.80%29.aspx

2. Autodiscover reference - http://msdn.microsoft.com/en-us/library/aa581522.aspx

3. EWS XML Elements - http://msdn.microsoft.com/en-us/library/aa580675%28v=EXCHG.80%29.aspx

Apps/Evolution/EWS (last edited 2013-08-08 22:50:04 by WilliamJonMcCann)