Microsoft Exchange data provider for Thunderbird Lightning

The lightning-exchange-provider addon allows you to use Microsoft Exchange calendars in Thunderbird, via Exchange’s web services. The addon works on Thunderbird 3.

This addon only works with Microsoft Exchange 2007 and above. Exchange 2003 is not supported.

Features

  • Creating, modifying, deleting calendar items.
  • Inviting attendees to meetings and sending meeting requests.
  • Free/Busy information when inviting other Exchange users to meetings.
  • Notifications for meeting requests
  • Configuration autodiscovery

Installation

Releases

The latest version is 0.17. Releases are hosted on addons.mozilla.org.

To install, download the .xpi (don’t install as add-on in Firefox!), then in Thunderbird click on Tools->Add-ons->Install... and select the file you just downloaded.

Changes from v0.16 to v0.17:

Simon Schubert (2):
      sendRequest: make requests persist even when a dialog is closed  
      release lightning-exchange-provider 0.17  

Fixes bugs:

Changes from v0.15 to v0.16:

Joshua Roys (5):
      Add a newline to the last line of the manifests  
      install.rdf: unpack the xpi  
      Follow upstream code for QueryInterface  
      Add some functions to make tb5 happy  
      Hackishly future-proof the compat code  

Simon Schubert (1):  
      release lightning-exchange-provider 0.16  

Fixes bugs:

Changes from v0.14 to v0.15:

Ian Martin (2):
      Add NSGetFactory interface for thuderbird 5  
      Add component manifest for XPCOM 2  

Simon Schubert (3):  
      install.rdf: declare em:type to avoid warning  
      install.rdf: we support Thunderbird 5 now  
      release lightning-exchange-provider 0.15  

Changes from v0.13 to v0.14:

Simon Schubert (4):
      install.rdf: mark compatible with Thunderbird 3.3a4pre  
      Revert "install.rdf: mark compatible with Thunderbird 3.3a4pre"  
      sendMail: fix constant conditional  
      release lightning-exchange-provider 0.14  

Fixes bugs:

Changes from v0.12 to v0.13:

Simon Schubert (5):
      set emacs indentation level  
      override User-Agent to force basic auth with TMG  
      bug #715120: do not hide local events/tasks  
      add Makefile to ease release engineering  
      release lightning-exchange-provider 0.13  

Fixes bugs:

git

To install from git, follow these steps:

cd ~/.thunderbird/*.default/extensions
git clone git://gitorious.org/lightning-exchange-provider/lightning-exchange-provider.git  
ln -s lightning-exchange-provider lightning-exchange-provider@gitorious.org

Usage and documentation

To add a new Microsoft Exchange calendar, do the following:

  1. Calendar / New calendar
  2. On the network / next
  3. Microsoft exchange. In the location type:
    https://$ADdomain\$login@auto
    where $ADdomain is your active directory domain and $login is your Exchange username (Not necessarily your email address!). Basically what you enter when login into the Exchange/Outlook web access. For example, if your AD user is EXMPL\bobf, and your mail address is bob.foo@example.com, you enter EXMPL\bobf@auto.
    This will use audodiscovery to find the right server address. This only works properly if you select the correct mail account in the last step of the creation dialog!

    If necessary, you can avoid autodiscovery, and use a direct URL like https://$ADdomain\$login@$exchangeserver/EWS/Exchange.asmx. Only use this if you know what you are doing!

Reporting bugs

You can report bugs at the bugtracker at launchpad. Please make sure to include enough information to reproduce the problem. Follow the steps in Debugging to capture relevant client-server communication.

Not supported (yet)

  • Managing meeting responses.
    Various documentation states that meeting responses should be automatically processed by Exchange. In our test environment this did not occur. (Perhaps the functionality was switched off.) Nevertheless, Outlook’s “process requests and responses on arrival” e-mail tracking option will spot meeting responses in the inbox and update relevant calendar items. With Exchange’s web services, it is possible to scan the inbox for IPM.Schedule.Meeting.Resp messages, and obtain the relevant AssociatedCalendarItemId. Unfortunately it is impossible to modify the ResponseType of Attendees, despite a successful operatoin result on attempt. Perhaps there is a way to do it with Response Objects but there did not seem to be an obvious way.
  • Tasks. You can always create a “task” as a calendar item though.
  • A bunch of other stuff.

Errata and caveats

  1. Colors of categories aren’t synchronized. (Could be done via extended properties.)
  2. Lightning’s “chair” user isn’t hooked up, and neither Exchange’s “resources”. Perhaps these two could be mapped, though it could confuse users.
  3. Notify later is mapped to tentative accept. Exchange’s decline causes item to be deleted, though this doesn’t usually occur with Lightning. The view needs to be manually refreshed to show new attendence status, if changed.
  4. Lightning’s parser messes up with commas in Attendee names, when doing the free/busy stuff. Commas are translated into semicolons in the frontend to work around this, until Lightning is fixed
  5. If an invitation is accepted, the view must be refreshed prior to editing the accepted event. (Occurs when you’re looking at the day when the event will occur, when you accept the invitation, and then edit the new event.)

Contact and support

This addon was developed by Andrea Bittau and University College London. Andrea ceased development and Simon Schubert moved it to gitorious.

Development

Documentation can be found on the Development page.