Google Calendar in Thunderbird tabs

If you’re a Google Calendar user like myself you might want to check out this really simple add-on for Thunderbird, which should be available as an official add-on for the coming Thunderbird 3 release.

The Google Calendar Tab

As simple as it sounds, this adds the Google Calendar web interface as a new tab directly into Thunderbird.¬† Creating and viewing events works just as it would in a browser like Firefox. ūüôā

Google Calendar Tab

If your calendar is setup to show popup alerts you’ll continue to see them from the calendar tab while in other, mail, tabs.

Here’s my family Pinochle game reminder alert showing.

Google Calendar Alerts

There is no official release of this extension yet, however you could grab the latest XPI, download and install it into the latest (at least rc1) Shredder release.

More Extensions

It’s easy to get started integrating a web application like Twitter, Remember the Milk, and other sites into Thunderbird.¬† Once you get the initial pieces you can start working on better integration into your email conversations.

If you’re interested in creating an extension similar to this one, here are a couple links you probably want to check out:


This calendar extension only handles a single url for Google Calendar.¬† If you’re looking for actual calendar integration with different calendars, including google calendar, you’ll want to check out the Lightning Calendar extension which also runs inside Thunderbird tabs.



I’ve been experimenting with how we can use tabs inside Thunderbird.

Thunderbird Tabbing

The previous tabbing post already discussed how tabs help people to keep their current context and multi-task more flexibly.¬† I’ve created a number of designs that look into using tabs in Thunderbird so email users can have the same kind of power over their context.

In Tabs By Default

To keep your current context of email reading, searches will open up in a new tab by default.¬† Such that anytime you’re in the All Mail tab and start a search the results will open in a new tab.¬† Opening up the Calendar, Tasks, and Contacts will also open up by default in a new tab as well.¬† Tabs will need to be fast to open.

Tab Shortcuts

Much like you could want quick bookmarks to open up the web pages that you access frequently Thunderbird needs a way for users to open up different types of tabs that are unique and used frequently.


Tab shortcuts allow us to offer a default set of tab locations that users may want to open.  We can also offer this location up to extensions to enable them to add in their own shortcuts for items like CRMs, Thunderbrowse, and other elements that would want to be opened up in tabs.

With shortcuts we should also focus on some ideas for preventing people from opening up too many tabs of the same interface.  Perhaps something that (on mouse over) shows you the other tabs of that type already opened.

New Tabs / Summary Views

Sometimes you just want a new tab to start fresh, there are lots of reasons to start a new tab. For this we have a new tab button that allows Thunderbird users to open a new, empty tab.

New Tab Button

Upon opening a new tab Thunderbird could just show a blank page and focus the search bar.  However it would probably make more sense to use the opportunity to open up a summary view page while the search bar is focused.

This summary page could use the widget system that Spicebird uses or just give a static summary of your mail, events, and tasks.  Adding in items for recent searches could be good as well.  Pulling information from places like whoisi about my contacts could be another interesting element to this summary page.


There’s still lots of work to be done and issues to understand; this design work isn’t finalized.¬† For tracking the Thunderbird tab work that’s planned for Thunderbird 3, see bug 21899 where I’ll be posting more comments and designs.¬† Comments on this blog are always appreciated as well.


Lightning Calendar Month View Hacks

With an hour or so of downtime during the Calendar Face 2 Face meeting this week I started a little CSS hacking of the Lightning Calendar extension.¬† My goal was to change improve the visual effect of the month view into more of a heat map than a listing of all your events for the month.¬† I believe the month view should only be answering the question, “What days am I busy, what days am I free?”, while avoiding answering every other possible question.

Old Calendar Month View

Here’s a screenshot of a day in the current month view.¬† There are dark drop shadows for each event listed, as well a (visually alarming) alarm bell for every event that has an alarm.¬† The borders are thick 2px lines with a dark color that overwhelms the board.

Effectively there is a lot of visual noise happening with all the different background and dark border shading that makes the view always appear somewhat cluttered.

Current Month Day View

Current Full Month View

Drawing the Eye

When you start shading the the areas of the calendar in a darker shade than they were before you can begin to see the visual effect created and where they eyes are drawn to.¬† Places and things that aren’t as important as others.

Plus the extra visual information that is provided in some of the shading isn’t always necessary in the month view.¬† For example, off month days are now indicated by a lighter shade of font color in the date text instead of a dark background color that makes them look important instead of additional.

Calendar Month Hack

In this screenshot of a single day in the new hacked month view you can see that the borders of days changed to a very light 1px color and the date numbering has been lighted up as well.  I put in a slight background shade for the top border as well to give it some separation (not completely necessary).  The colors and stacking of events in a day provides the necessary separation that the dark border colors were giving before.

In general everything has been flattened so the visual effect is about the colors of the calendar events drawing your eyes to the areas they exist in the most, while the empty parts of the calendar look much more open.

Designer code can be had at bug 430382 and you can see a full month view patch screenshot from there as well.

Next Steps

Start changing the timed events such that they don’t look so visually loud on the board.¬† Time events, ones that range for a certain time during the day, should appear to be less than an all day event on the visual landscape.

Further Improvements

The text for calendar events is obviously much too verbose.  You can see in the above screenshot that 08:30 AM could easily be changed into 8:30 and still provide the same information while taking less space.

Christian has much more work done for Improved Events and Tasks as well as others areas, all of which need to be merged.


Travel, Work and Other Updates


I’ll be heading out to Hamburg April 18-23rd with David and others for the Calendar project face-to-face meeting.¬† It will be great to meet Christian in person now that we’ve been talking on the phone discussing possible Calendar and Thunderbird changes.¬† I’m excited to make a quick overnight trip up to Copenhagen as I’ve never travelled there before.


It’s great to see that Mark has started work with us. There’s lots to be done, especially on the address book, work that Joshua has developed in the Great Addressbook Rewrite.¬† I’ve started compiling some research of other addressbook / contacts systems so we can have some ideas of what current implementaitons do.


As I got back home really late after Friday, well into Saturday morning, I didn’t end up doing much on Saturday.¬† So in my recovery time I poked around with my bugzilla link grabber extension and added a little AJAX to it.¬† And thus I feel buzzword compliant!

Note the lovely screenshot of the bugzilla info inlined at the bottom.¬† It might be nicer to create those elements as hovers to the bug links so they don’t take up space in the email but appear on mouse over of a bug link.

I just picked out a few things from the bug like bug number, status, number of comments, the title and the last comment text.¬† Other information might be a bit better, but it’s all available.

I did this by using the XMLHTTPRequest to the bugzilla bugs XML version (just add “&ctype=xml” to the url) and then running the result through XPath.¬† There’s a bit of a problem with the XML version as it gives you all the attachments as well as all the comments so things can be a bit slow when there are a lot of large attachments in a bug.

Anyway, not bad for a quick couple hour hungover hack.

Designer Code!!! eeek!!!

The code for all this is up on github in the ajax branch, check it out.

Who knew email didn’t have to be static!


Lightning Nightly Builds

Since I started using the Thunderbird nightly builds I haven’t been using the Lightning plugin because the add-on version didn’t keep up with the latest build versions of Thunderbird.¬† Luckily this morning I woke up from this reality when I found the Lightning Nightly Updater which fixes that problem.

After installing I changed it’s options to also install the gdata provider for Google Calendar, then I ran the Check for Updates menu item from the Help menu and calendaring is back.

Update: Just to note that the nightly updater should grab the proper version even if you’re running a thunderbird branch instead of trunk.


Tagging Mail with Events or Tasks

Email idea #43819

I would like to be able to tag messages or threads of messages with calendar events or tasks.

My tagging scheme breaks down into these types: (with examples)

  • Project: thunderbird, evince
  • Discussion: desktop-devel, firefox-journal-devel, moz-bugs
  • Temporal: meeting with david, thunderbird alpha1 deadline, and tabbed interface wiki page task

Project Tags

These are used to tag messages related to a project or group such that when I want to find that message again later I can look into that project category and find the message.  I most often manually apply these tags to messages received because they are important, but not part of my regular discussion framework.

 Discussion Tags

I use filters to create these tags which automatically sort and categorized messages from mailing lists and groups.¬† There is often a lot of discussion related to these groups and I can’t make progress in my day if all that discussion goes directly into my Inbox.¬† Therefore I usually have these items filtered out of my Inbox and tagged so I can read them at a point where I’d like to catch up with the discussion.

Temporal Tags

This one I do not have yet.¬† Very often a thread of mail messages are all related to a meeting I’m going to have, a task I’m going to finish, or a deadline that’s coming up.¬† I’d like to have that event or task shown as a tag in my mail view such that before the date arrives or the task is finished I can continually access all the messages related to it.¬† Once the date has passed or the task has been finished the tag can be archived out of my main view, mostly available to search queries.

This would probably also help me to defer messages for later.¬† If I want to schedule a time later in the day to reply to a bunch of similar messages that I don’t have time for now I could tag them all with “3pm – Sit down and Reply to Messages Event” such that the event would ring at 3pm and show all the messages I had tagged for responding to.

Does something like this already exist out there?

Are there other tag types people use often?