33

Coming from a Microsoft Windows Environment, what is the best way to sync one's calendar on Ubuntu / Thunderbird / Lightning?

54

The ExchangeCalendar/exchangecalendar plugin for Thunderbird seems to solve this problem gracefully. Here are some steps to get you going:

  1. Install the Lightning Plugin for Thunderbird.
  2. Download the ms-exchange calendar plugin from ExchangeCalendar/exchangecalendar. The *.xpi plugin may be inside a zip file. Save the file to your Downloads folder (or elsewhere).
  3. In Thunderbird, click menu-->Add-ons
  4. Click the icon to install an add-on from a local file (fig 1 below).
  5. Once the plugins are all installed and Thunderbird has re-started, open the calendar tab in Thunderbird. Right click in the calendars section and choose "new calendar".
  6. Choose "On the network"
  7. Choose Microsoft Exchange.
  8. Choose a name for the calendar.
  9. Now the tricky part. I could not get the autodiscovery feature to work, but if you enter the correct server url and username, you're good to go. For office 365, the url is: https://outlook.office365.com/ews/exchange.asmx. See figure 2 below.
  10. Click "Check Server and Mailbox". If you got the server and username right, the folder base input should appear With a Next button (figure 3). Click Next. Everything seems to work from this point. Good luck!

Figure 1 -- Install a the downloaded exchange plugin

Install the locally saved exchange add-on

Figure 2 -- Configure the Exchange Settings

Configure the exchange settings

Figure 3 -- After clicking "Check Server and Mailbox", the folder base input appears with a "Next" button

Correctly configured exchange server -- yay

| improve this answer | |
  • Wow, thanks for the step-by-step instructions! It's working perfectly. – pagliuca Jun 25 '15 at 13:18
  • It worked, I just needed to manually enter the server URL (mail.domain.com/EWS/Exchange.asmx) – Roberto Leinardi Jul 14 '15 at 14:56
  • When I try it, my server url is pre-entered and greyed out and I don't get a "check server and mailbox". askubuntu.com/questions/663223/… – Niklas R. Aug 21 '15 at 6:31
  • 1
    This also works for a shared calendar as well. Just set the email address to none and fill out the primary email of the shared calendar. I do believe your Lightning needs your primary exchange account to be active under accounts. I was not prompted for a password when I added another employee's shared calendar. – Ligemer Aug 30 '16 at 20:00
  • 1
    I had to download the latest beta (beta 5) of version 4.0.0 to get it to work. I had the exact same issues with connecting as was described in an issue-thread from a year ago, so I'm assuming Microsoft updates the API breaking backwards compatibility now and then… – Adrian Schmidt Mar 15 '18 at 14:40
3

ExchangeCalendar did work - until TB60. :-(

Now I rely on TbSync, it does a decent job.

https://github.com/jobisoft/TbSync

See the manual: https://github.com/jobisoft/TbSync/wiki/How-to-get-started

| improve this answer | |
0

I got this to work on Linux, and here's how I did it. On Windows the files are located in a different spot (Google will tell you where), but the overall method should still work with DropBox, SeaFile, or equivalent data-syncing services.

I use Thunderbird/Lightning as my email/calendar client on my main computer (Thinkpad W541, Ubuntu Unity, 16.04) and my travel Chromebook (Acer C720, Ubuntu XFCE, 16.04), and I wanted to regularly sync the calendar data between both machines. Suggestions online often mention Google Calendar, but I'd rather use open-source tools (that I control) to do the job. I use SeaFile (a FOSS DropBox equivalent) to sync folders & files between my machines.

Step 1: On my new Chromebook, I copy over my entire Thunderbird directory: rsync -zarv user@thinkpad:~/.thunderbird/ ~/.thunderbird/ Then, I install Thunderbird and open it: presto, all my accounts, old emails, and (most importantly) calendar events are accessible. Great!

Step 2: It looks like all relevant Thunderbird data are stored in ~/.thunderbird/blah.default/, with calendar data in ~/.thunderbird/blah.default/calendar-data/. On the Chromebook, I create a new calendar event, save it, and see that ~/.thunderbird/blah.default/calendar-data/local.sqlite has increased in size and has a newer "last-modified" timestamp. I conclude that local.sqlite contains all relevant calendar data.

Step 3: I close Thunderbird on both machines, then use SeaFile to sync the entire calander-data/ folder on both. I see that the newer filesize and timestamp have successfully synced on the Thinkpad. I open Thunderbird on the new machine, and there in the calendar is my new event. Success!

Drawbacks: The main drawback seems to be that if Thunderbird is open on both machines and either calendar is edited, syncing the calendar-data files sometimes causes the other machine's Thunderbird to crash. They just weren't built to handle that sort of I/O. But otherwise: it works great!

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.