Monday, September 10, 2007

Setting Up Sunbird

Note: This looks like a lot, but it really isn't. Take a few minutes to skim the document, and if it looks like it's something you want to do, follow the instructions step-by-step. I've tried to keep them precise and detailed.

Sunbird is the Mozilla calendar application. It is intended to run alongside the Firefox web browser and the Thunderbird email client as your open source alternative to commercial software (and in particular, Outlook Exchange).

Or, if you prefer, you can install Lightning. This is exactly the same as Sunbird, except that it runs and an extension inside the Thunderbird email client. Sunbird and Lightning both do the same thing. You do not need to install them both. You can install one, the other, or both. It's up to you (thanks to Ryan Nicolson for suggesting this clarification).

As a stand-alone calendar Sunbird works quite well and is very intuitive. Find a date, click on the date, add an event. That's about all there is to it.

But users expect more of online calendars. In particular, they expect to be able to share their calendars with other users. They expect to be able to merge calendars, viewing several calendars in a single window. And they expect to be able to add and update events in their calendar using email notifications.

All of this works seamlessly, if annoyingly, in Outlook. But for the open source user, it has all been a confusing mess.

The reason for this is that there's no easy way to publish your calendar so that others can use it. Just as Outlook has the Exchange server, an open source calendar needs an online server of some sort. The designers of Sunbird chose Webdav. Webdav, which stands for "Web-based Distributed Authoring and Versioning", is a W3C standard application. But most people don't have access to a Webdav server, which makes it a really bad choice.

So here's what I did: I have set up Sunbird to take care of my calendaring needs and am using my Google account instead of a Webdav server. It was actually a very simply process, in the end, but the online documentation is awful. So I created my own. Here's how to set up Sunbird using Google Calendar.

  1. Create a Google Calendar

    Go to Google Calendar and create an account or login with your existing Google account. To create a Google Calendar, click on 'Add' in the left-hand margin. Then fill out the form.


  2. Get the Google Calendar Address

    In Google Calendar, click on the 'manage calendars' link at the bottom of the left-hand column. Click on the name of the calendar. This will take you to an editing screen. At the bottom of the editing screen you will find buttons labled 'HTM:, 'XML' and 'iCal'. Pick either of the 'XML' addresses (it doesn't matter which one) and save the URL that pops up. This is your 'calendar address'.

  3. Install Sunbird

    Download the appropriate install file from the download page.

    Mac OS X
    Download the Sunbird .dmg file. Double click the Sunbird Disk Image to open it in Finder. Then drag the Sunbird icon into the 'Applications' directory.

    Linux
    Download the Sunbird .tar.gz file. Move it to the directory where you want Sunbird installed. Then extract the tarball. For example:
    tar -xjvf sunbird-0.5.en-US.linux-i686.tar.gz
    This will create a subdirectory called 'Sunbird'. To run Sunbird, run the executable file called 'Sunbird' in the Sunbird directory.

    Windows
    Download the self-extracting .exe file. Double-click on the file to install.


  4. Install the Google Calendar Sunbird Extension

    This extension is one of the many add-ons you can install in your calendar to extend its functionality. You can find the Google Calendar extension in the Sunbird Add-On area.

    Click on the Install Now button to get to the license and download page. Do not click on the 'Accept and Install' button. This will try to install it in Firefox (what a horrible usability error, eh?)

    Instead, right-click on the button and save the .xpi file to a directory you'll remember and be able to find later.

    Once the file has downloaded, open up Sunbird. Click 'Tools' and then 'Add-ons'. This opens a dialog box. Click 'Install' in the lower left-hand corner, and then find the .xpi file in the directory where you saved it. Let it load, then click 'Install Now' in the installation dialog. Finally, restart Sunbird.

  5. Create the Google Calendar in Sunbird

    To associate Sunbird with your Google calendar, you will create a new calendar in Sunbird and then associate it with the calendar you created in Google.


    1. In Sunbird, click on 'File' and then 'New Calendar...'. Select 'On the Network' and click 'Next'.

    2. In the dialog that appears, select 'Google calendar'. In the 'Location' box, enter your calendar address you saved from the XML button when you created your Google calendar. Click 'next'.

    3. Give your calendar a name and select any colour. Click 'next.

    4. It will then prompt you for a login. Enter your Google userid and password. You can also check the 'remember these values' box. Click OK, and then click finish


    5. Your Sunbird calendar is now associated with your Google calendar. That means that when you update your calendar in Sunbird, it will automatically update in Google. And when you update it in Google, it will automatically update in Sunbird.

      You can associate your Sunbird calendar with any number of Google calendars in this way.

    6. Install the Lightning Thunderbird Extension

      Thunderbird, as mentioned above, is the Mozilla email client. What Lightning does is synch Thunderbird and Sunbird. It's a lot like embedding your Sunbird calendar right inside Thunderbird, the way Outlook does it.

      These instructions assume that you have Thunderbird installed and are using it for your email already. Note that Lightning requires Thunderbird version 1.5 or 2.0. You may need to get Thunderbird and install it.


    Once Thunderbird is installed you will want to install an Extension called Lightning. You can't actually find it from the Thunderbird page on the Mozilla website; you have to go directly to it.

    When you go to the Lightning download page, don't get drawn into all the jargon-filled geeky instructions. Simply go directly to the appropriate download page (the links at the upper right):

    As before, do not click on the 'Install Now' button. Instead, right-click on the button and save the .xpi file into a directory you'll remember.

    In Thunderbird, click on 'Tools' and then 'Add-ons'. Then click on the 'Install' button in the lower left-hand corner and select the Lightning .xpi file you just saved. Allow Thunderbird to install the file and restart.

  6. Install the Lightning Google Calendar Extension

    When Thunderbird restarts you'll notice a calendar and some tabs occupying the bottom of the left-hand column. There will also be a new 'calendar' option in the toolbar. But it's not set yet; you must still load the Google extension for Lightning.

    In Thunderbird, just as before, click on 'Tools' and then 'Add-ons'. Then click on the 'Install' button in the lower left-hand corner. This time, select the Google Calendar .xpi file - yes, the very same one you downloaded for Sunbird. The same .xpi works for both Sunbird and Lightning. Allow Thunderbird to install the file and restart.

  7. Create the Google Calendar in Thunderbird and Lightning

    To associate Thunderbird and Lightning with your Google calendar, you will create a new calendar in Thunderbird and then associate it with the calendar you created in Google.


    1. In Thunderbird, click on 'Calendars' in the lower left-hand box, and then 'New...'. Select 'On the Network' and click 'Next'.

    2. In the dialog that appears, select 'Google calendar'. In the 'Location' box, enter your calendar address you saved from the XML button when you created your Google calendar. Click 'next'.

    3. Give your calendar a name and select any colour. Click 'next.

    4. It will then prompt you for a login. Enter your Google userid and password. You can also check the 'remember these values' box. Click OK, and then click finish


    Your Thunderbird and Lightning calendar is now associated with your Google calendar. You can see it in the box to the lower left. You can uncheck (and delete, if you want) the default 'Home' calendar, and check the newly created google calendar to view it.


  8. Embed Google Calendar on Web Pages

    One thing I wanted to do with my calendar system was to publish it on a web page. That's not possible directly with Sunbird (nor can I upload the data to my website) so I am relying on Google for this.

    There's no easy way to find it from Google Calendar itself, but you can access information on how to embed Google calendar on web pages from within the Google Calendar help system. (If you must find it within the Calendar, click 'Manage Calendas', click on your calendar from the list, then click on the 'HTML' box (right beside the 'XML' box you have been using. Under the URL in the box that pops up there is a link to the configuration tool.

    I created two HTML embeds, one a small one for my home page (see the lower right), and another dedicated calendar page for the full version (I had to create a link to a full version because while there is a way to subscribe to my calendar, there's no link to simply view the calendar).


All of this, um, mostly works. Some things are still buggy (let's remember that this is all still beta software). On the Mac, it seems to have blanked out the little download screens, so you can't see the progress of software downloads. The notifications worked fine in the Mac, but didn't seem to add to the calendar from the Window. I would really have liked to be able to drag emails into the calendar, but that's not available. Also, lightning changed the spam icon in Windows, which is really pointless and annoying.

But what's really really annoying is having to go to all of this trouble in the first place. Why can't Sunbird simply upload a file to an FTP site. Yes, there is a site out there that says you can. But it simply doesn't work.

Similarly, why can't there be at least one Webdav site out there for people to use (assuming we must use Webdav, which was, IMHO, a really misguided decision). Well there are commercial services that might work. There is a free service, iCal Exchange. I spent a lot of time on this, but in the end, it simply didn't work.

Right now, if you want to incorporate your calendar data with external applications, your best (and almost only) bet is to do it through Google Calendar. So long as Sunbird's publishing features remain so impaired, this won't change.

So you might be wondering - why go to all this trouble?

Quite simply - I can now access and update my Calendar on mac, Linux and Windows machines, either using the Sunbird application, through Thunderbird, or online through the browser. I could also do it using my mobile phone, if I had one (NRC won't pay for a mobile phone to test stuff like this with). You simply can't do that with any other calendar program (and especially not with Outlook Exchange, which locks you into the Outlook client and which doesn't work on Linux at all (without CrossOver).

And what this does is to set myself up for the possibility of better calendar syndication and integration in the future. The Google calendar site enables exports in XML (actually a version of RSS) and iCal, which means I can syndicate. Sunbird can export files in iCal (it can't send them anywhere useful yet, but I figure that's a matter of time).

And it let's me syndicate calendars into my online calendar, either directly (via Google calendar) or indirectly (via Sunbird). This sort of functionality will be needed to create any sort of calendaring function for a future Personal Learning Environment, so becoming familiar with the concept and the potential is a good idea.

21 comments:

  1. I have been using Lightning for some time now and love it. I have it setup similar to what you describe. My only complaint with it is the lack of ability to sync with my PDA.
    It seems that your instructions are not separate for Sunbird and Lightning however they are two independent apps. They do the same thing however lightning is just Sunbird integrated into Thunderbird and it does not require Sunbird be installed. You only need one or the other not both.

    ReplyDelete
  2. Actually, I can do all this with the MS Outlook Web client, with IE or Firefox. I don't think I'll need to bother with this

    ReplyDelete
  3. Thank you, Stephen. I now feel utterly liberated from iCal and I can finally take advantage of my languishing Google calendars. The tutorial was beautifully orchestrated, and despite that I still had to click through two .xpi error messages because of my own haste only to realize that you saw it coming :)

    ReplyDelete
  4. Nice post. I used Sunbird/Lightning with Google Calendar for a bit, but ran in to some issues (granted I was also sync'ing with Outlook and a Palm PDA), some things just didn't sync predictably.

    I switched to Firefox and Thunderbird in 2003 and haven't missed Outlook a bit. BUT my prevous employer and some current clients insist I use Outlook on their machines.

    Other in this situation might consider Plaxo which will sync across Outlook, Thunderbird, Google Calendar and iCal (or any combination). It also has a mobile calendar available in the premium version. Plaxo has gotten less annoying than they used to be with insisting on updates for your contacts too. See www.plaxo.com

    Others needing PDA sync, might try GooSync (www.goosync.com). It works with Palm Treo, Nokia, Windows mobile and dozens of other mobile phones.

    ReplyDelete
  5. Stephen, excellent job on the tutorial. I'm up and running already, and will be setting Sunbird with Google Calendar add-on everywhere I work (4 machines).

    Thank you for introducing me to Sunbird and getting it all going so easily!

    With appreciation,
    Miguel Guhlin
    Around the Corner-MGuhlin.net
    http://mguhlin.net

    ReplyDelete
  6. I use SunBird together with the the BarracudaDrive WebDAV calendar server.

    You can set up a private calendar application on your home computer that can be accessed from anywhere. You can also set up a shared calendar for a group of users and have the group subscribe to the calendar file on the server.

    Check out the BarracudaDrive home server with integrated WebDAV server.
    http://barracudaserver.com/products/BarracudaDrive/

    ReplyDelete
  7. Thanks for the tips on setting up Sunbird with GCal. And you're right the "Install now" button for installing the Add-on is very bad user experience. Why don't they tell you to right click and save the xpi file? Bah!

    ReplyDelete
  8. Hi! Your explanation is awesome. I am enjoying the freedom of ical now! Thanks a ton.

    ReplyDelete
  9. Great tutorial. Thank you.

    The only thing we lose this way is "Tasks" in Sunbird/Lightning. I suppose it is because Google Calendar does not know tasks. And I really miss them.

    ReplyDelete
  10. Thank you so much Stephen. Your instructions were easy to follow. It is nice to use another calendar besides outlook. Now all I need to see if figure out how to syn my google calendar to my phone :)

    ReplyDelete
  11. Thank you very much. Difficult things made easy at home ;-) Regards, Thijs.

    ReplyDelete
  12. Really nice post. Good explaination.

    However, I have one problem. If my computer is offline (have no internet connection), I am unable to create new posts in the calendar.

    The ideal situation would be if I was able to just create the post, and the next time my computer was online and Sunbird was open, it would be uploaded to Google Caledar.

    Any ideas?

    ReplyDelete
  13. > Any ideas?

    Nope.

    Eventually there will be offline versions of the Google applications, and that's when offline Calendar management will be possible, I would say.

    ReplyDelete
  14. oh my gosh, this info is amazing. i have seriously spent hours trying to find an easy way for two people to edit and view a calendar.

    thank you so much.

    ReplyDelete
  15. I followed the instructions here, and from what I can see, it works, which is pretty cool. I am new to these calendar programs, however, and I do not understand how the system works. I want the calendar visible on my web page. Which calendar would appear on my web page, the Google calendar or the Sunbird calendar? I want the Sunbird calendar to appear on my web page. How does one add items to or remove them from the calendar, and which calendar do I make the changes on? How do I post the changes to my web site? I would like to be able to use alarms on the web page that people see, which is why I chose Sunbird. How do I set alarms?

    ReplyDelete
  16. Hi folks,
    I'd like to join the crew of happy sunbird users and have been trying to access the webpage for a week with no luck. Has anyone else had this problem and do you know why?
    Thanks,
    sarah

    ReplyDelete
  17. thanx for the tut. just a headsup, the current verison of sunbird in the repository (0.7) doesnt work with the lightning addon. i had to go find 0.5 in a gutsy package (http://packages.ubuntu.com/gutsy/i386/sunbird/download) to make it happen. other than that, rock on!!

    ReplyDelete
  18. now, how do i get other calendars side by side with mine? thanx

    ReplyDelete
  19. Thanks, good tutorial but I cannot get Gcal to upload my Sunbird Cal - with one exception: If I create an appointment in Gcal, it shows up in SunCal - If I change that appointment in SunCal, the change registers on refresh of Gcal...!? Other than that, none of my SunCal appointments transfer.
    Thoughts?

    ReplyDelete
  20. Thanks, good tutorial but I cannot get Gcal to upload my Sunbird Cal - with one exception: If I create an appointment in Gcal, it shows up in SunCal - If I change that appointment in SunCal, the change registers on refresh of Gcal...!? Other than that, none of my SunCal appointments transfer.
    Thoughts?

    ReplyDelete
  21. Someone showed me how to do this, but I forgot - thank you very much for putting the instructions on-line

    ReplyDelete

I welcome your comments - I'm really sorry about the moderation, but Google's filters are basically ineffective.