When I arrived at the Mozilla Firefox+ Summit 2008 on the 28th, I was surprised to hear, that Google announced the release of CalDAV support for Google Calendar while I was up in the air. At first I thought Simon was joking when he told me, but he was not!
I had very mixed feelings on this step. On one side this is a really great step. Supporting CalDAV means that more applications will be able to natively read and write to Google Calendar, without the need for third party applications that proxy the write process through the web-based API. In the long run this means less work for me since at some point the Provider for Google Calendar will not be needed anymore. Instead of fixing the Provider for Google Calendar, I can focus on CalDAV bugs, which benefits both Google users and those of other servers. Also this is something I’ve been hoping for a while now and have asked Google employees about in the past.
On the other side, I was of course a bit disappointed, that all the work and pain I’ve put into the Provider for Google Calendar is now being made obsolete. This didn’t last long though, since thats just the way it goes with software and I was always aware that at some point something like this would happen. Nevertheless I have no regrets since I think I’ve done a great deal for users of the Provider and the feedback I’ve gotten was overwhelming (and mostly positive). Writing the Provider also taught me a great deal about the Mozilla codebase and how the calendar application works, so it was definitely worth it!
Since the above sounds much like I’m going to drop work on the Provider right away and suggest to use CalDAV, let me tell you that it is quite the contrary. As noted in Google’s blog post, the release of CalDAV support is developer-focused. There are a number of known issues and application support is currently quite minimal. At the time of release, as far as I know only Apple iCal actually works. Therefore, I’d still suggest to use the Provider for Google Calendar until Google’s CalDAV server is more mature.
Using a few workarounds introduced in bug 448561 and bug 451455 I was able to make Sunbird/Lightning’s CalDAV work with Google. If you are interested in testing, please feel free to take a look at the latest nightlies (Sunbird / Lightning).
Philipp
Sunbird
22
Aug 08
Philipp’s Developer Notes: Using CalDAV with Google Calendar
22
Aug 08
[August 22, 2008] Lightning/Sunbird Status Update
We’re getting nearer and nearer to our first 0.9 release candidate. With 31 bugs fixed in the last 10 days, many of them release blockers, we’re now down to only 11 release blockers at the time of writing. 8 of those 11 bugs currently still need a patch, so if anyone of our readers wants to help out, now would be a great time.
On the localization front it looks like the Macedonian and Turkish localizations will not be able to make it, but Slovenian will, so we’ll still be in better shape l10n-wise than we were during the time of the 0.8 release.
For anyone interested, here are the 31 bugs fixed within in the last 10 days:
- Bug 316927
Fix dataloss, when importing events/tasks with multiple categories - Bug 405222
Time format not respected in prefs window - Bug 406581
Enhance cal::detectTimezone() to dump errors - Bug 409921
Implement CalDAV scheduling - Bug 417629
Import ICS file to CalDAV server fails to handle recurrence-id correctly - Bug 435447
Today pane events don’t change color when calendar color is changed - Bug 444532
Select ‘Convert to->Task/event’ in the preview pane in mailmode causes an uncaught exception - Bug 447996
Month View doesn’t display the full month anymore - Bug 448205
Calendar mode does not set Thunderbird Application title (regression) - Bug 448561
Allow CalDAV provider to work with Google Calendar’s new CalDAV - Bug 448771
Open task context menu in calendar view -> output in error console - Bug 448946
Switching calendar views via keys ALT+[1-4] is broken - Bug 449019
Mouse over event in unifinder - Bug 449401
Storage provider does cleanly separate items of the same id across different calendars - Bug 449573
Deleting item/items from local ics file fails with MODIFICATION_FAILED, items missing - Bug 450107
View -> Tasks in View command behaves erratic in Month view - Bug 450285
Startup Error: mozStorage exception: createStatement failed (regression) - Bug 450381
Itip email are not sent while being offline - Bug 450398
Add Icelandic (is) and Chinese Traditional (zh-TW) to shipped-locales - Bug 450447
Remove pa-IN (Punjabi) and mn (Mongolian) from all-locales - Bug 450451
Remove mk (Macedonian) and tr (Turkish) from shipped-locales - Bug 450611
Add space between icon and button text in occurrence selection dialog - Bug 451020
Support for mixed server/non-server attendees - Bug 451162
Organizer’s email address isn’t in iMIP invitation request - Bug 451174
CalDAV provider can fail to check inbox - Bug 451327
Move mouse to the unifinder, but not over an event -> error output - Bug 451353
Emphasize open/unanswered invitations - Bug 451383
Tooltips are not updated and display wrong information (regression) - Bug 451455
CalDAV provider can delete items mistakenly - Bug 451529
Deleting invitation copy sends out CANCEL to all attendees - Bug 451539
Recurring items and attachments
Many thanks go to all developers, contributors, localizers, testers, and supporters that make this possible.
20
Aug 08
Bruno’s developer notes: CalDAV Scheduling Needs You!
One of the things we’re excited about for the 0.9 release is the addition of CalDAV scheduling support. CalDAV scheduling is an emerging standard; the first widespread use of it was in Mac OS 10.5, where it allows iCal users not only to store their calendars on a shared server, but also check each other’s free/busy schedules, send each other meeting invitations, respond to meeting invitations, and so forth.
With 0.9, people using Sunbird and Lightning will be able to do all these things, using not only Mac OS 10.5 servers but also a growing number of other CalDAV servers, both open-source and otherwise. And they’ll be able to do so regardless of whether the other calendar users they are interacting with are using Sunbird, Lightning, iCal – or some other CalDAV client we haven’t even heard of yet.
CalDAV scheduling support has just started to appear in nighlies over the last few days. It will be filled out further over the next few, but what it really needs most right now is TESTING! We’re really hoping the community will give this new code a serious workout and help us find whatever bugs remain so that it will be rock-solid for the 0.9 release. As Daniel has noted, testing nightly builds can be dangerous to both your profile and your data – so be careful but please do bang at it and let us know what you find.
14
Aug 08
Daniel’s developer notes: Be careful when using nightly builds…
There has been some trouble with an accidental SQLite database schema change I’ve backed out on monday (see bug 446303), which has forced people (which have updated to that specific nightly) to manually restore their storage.sdb.
I’d like to remind everybody that the nightly builds of Sunbird and Lightning are development versions that might break your profile and data. Even though the recent case didn’t bring any dataloss (at least I am not aware of any) and a workaround is available, please take care and do backups before updating.
To prevent SQLite database schema trouble in the future, we’ve decided to require an additional second review on schema changes, and may add a bug keyword to tag those important changes.
I hope you understand…
12
Aug 08
[August 12, 2008] Lightning/Sunbird Status Update
We’re getting nearer and nearer to our first 0.9 release candidate. With 34 bugs fixed in the last two weeks, many of them release blockers, we’re now down to only 18 release blockers at the time of writing. 10 of those 18 bugs currently still need a patch, so if anyone of our readers wants to help out, now would be a great time.
On the localization front, 30 of our 33 are ready for the release (hopefully Macedonian, Slovenian and Turkish will still be able to make it), so we’ll likely be in better shape l10n-wise than we were during the time of the 0.8 release.
For anyone interested, here are the 34 bugs fixed within in the last two weeks:
- Bug 199732
Events spanning days are seen as multiple events (display) - Bug 311773
Initial landing of the Islandic Calendar localization - Bug 348264
ORGANIZER property lost after import + export - Bug 363932
Delete Warning should be redesigned - Bug 390313
Tooltip too narrow with some Windows themes, text is truncated (regression) - Bug 412606
Storage provider does not store X-params of attendees - Bug 421716
CalDAV provider should support getctag - Bug 434354
CalDAV provider should cope with multiple principal-collection-sets - Bug 435174
Today Pane not displayed after startup when using Spamato extension [Error: LOG is not a function] - Bug 437412
Zero-length and short events are shown at the wrong times in the timegrid (regression) - Bug 437420
Wrong display of WCAP all day events in the unifinder - Bug 440106
Editing of an event on a cached calendar in online mode isn’t possible - Bug 444276
Try to accept a iTIP/iMIP invitation (open Mail in a separate window) -> select calendar dialog is empty - Bug 440358
No WCAP calendar events visible after restart of sunbird - Bug 440700
[Trunk] Cannot switch back from Calendar to Mail Mode [Error: mailToolbarMenuItem is null] (regression) - Bug 442915
Warning: reference to undefined property this.mTaskArray[aRow] - Bug 445287
Cache combined with read-only calendar spawns error flood - Bug 445492
Use ‘DEL’ key to delete an event of a rule -> ‘Deleting Repeating Event’ dialog starts two times. - Bug 445731
Editing an saved event with an attendee -> 2 mails were send, one ‘Event Invitation’, one Event Canceled’ - Bug 445995
Event dialog also contains elements from task dialog (regression) - Bug 446512
Recent nightlies of Lightning cause NULL-pointer dereference crash in TB - Bug 447997
Multiweek View doesn’t update when changing menu View -> Number of Weeks selection - Bug 448206
Calendar creation wizard acting weird when creating a calendar with duplicate URI - Bug 448325
Today Pane context menu: Delete command inside ‘Convert To’ - Bug 448453
Caldav Calenders working with 0.8 don’t load under 0.9pre - Bug 448753
Lightning and GData Provider are incompatible to Thunderbird 3b1pre (Gecko 1.9.1) builds - Bug 448803
CalDAV provider should not query-by-uid for moved items - Bug 448886
Unable to edit event: comes up with attendee confirmation - Bug 448946
Switching calendar views via keys ALT+[1-4] is broken - Bug 449031
Add meta data API to memory/storage - Bug 449177
Support free-busy querying for the GData Provider - Bug 449424
Error “Component is not defined” in calendar-dnd-listener.js and sun-calendar-event-dialog-recurrence.js - Bug 449917
Opening context menu without having selected an item reveals blank entry - Bug 449964
2008-08-07 gdata-provider is last one that works
Many thanks go to all developers, contributors, localizers, testers, and supporters that make this possible.
05
Aug 08
Daniel’s developer notes: How to present infinite recurring event series?
Sunbird and Lightning both have a feature called the “unifinder”. It’s the box at the top if you click the toolbar “Find Events”. Next to the search text field you can select different time ranges to be scanned matching your search (or just present all matching the range if you leave it blank). The drop down box offers several time ranges, such as “All Events”, “Today’s Events”, “Next 7 Days”, …
While the ranges look sensible, they cause me some headache, more specifically the unbounded ranges “All Events” and “All Future Events” w.r.t. infinite recurring events. If you select one of the unbounded ranges (e.g. “All Events”), the current implementation will only show the master items of recurring events, because there’s no finite range to expand into. It shows the events in their condensed (unexpanded) form. While this approach misaligns the UI a bit (the other filters show recurring events in expanded form), it looks like a feasible way at first glance (modulo bugs around it). But there’s yet a further problem with this approach: You could override´single occurrences of a recurring series, e.g. modify the start and end of an occurrence. Those are currently left out.
The latter and the inconsistent UI let me doubt that showing event series in condensed form is really what we want here, moreover because IMO showing expanded occurrences is far more intuitive. Solving the problem, I can imagine two solutions:
- We simply drop the unbounded ranges (no “All Events”, no “All Future Events”).
- We dynamically expand the list as the user is scrolling it down, if this feels good.
For the moment, until we have a good solution, I’d vote to remove the unbounded ranges.
I hope there are more options that we could consider, and would like to hear your feedback on this topic…
01
Aug 08
Simon’s developer notes: Back from Mozilla summit
So I’m back from the Mozilla summit and hope to get out of my jet lag within the next few days. It was really a great adventure with bears, a power outage and a rockslide which got me first floatplane flight ever.
While many people seem to believe that Microsoft is behind all of this, I believe that this was all carefully planned out by Dan Portillo and John Lilly of MoCo :) My hat goes off to dan, who did a perfect job of organizing this whole event for over 400 people.
The summit was great in every aspect. I met lots of people, who I had only known online for years like Gary from the Rumbling Edge, Robert Kaiser (KaiRo) of SeaMonkey fame, Wayne Mery (Thunderbird QA), Axel Hecht (Pike), Mitchell Baker, the hopefully soon to be appointed MoFo Executive Director Mark Surman and many more who I can’t possibly all name, because then this post would get a few pages longer.
The sessions were great (I went to most of the Calendar/Thunderbird related ones) and I even got to hold one session myself, where I could introduce myself to a lot of localizers in my new role as Thunderbird localization coordinator.
Besides the sessions, I also got the chance to talk with some people more in depth about some issues, most notably with Mitchell Baker, David Boswell and Mark Surman about sorting out the issues of getting the Calendar Project into the Mozilla Foundation directed giving program, the Mozilla Foundation vision and more ways of cooperating with the Mozilla Foundation and leveraging its assets to move the Calendar Project forward. We also did some product planning regarding the necessary steps for enabling Lightning in Thunderbird.
There’s much more, that I could talk about, but I will just close this post by saying that this was a really great event, that many people will likely be talking about for years to come. Thanks Mozilla for organizing this!
29
Jul 08
Simon’s Developer notes: Showing our bug fixing progress
Recently I was thinking about how we could show to people the progress in terms of activity, feature work and bug fixing that the Calendar Project has seen in the last few years. I came up with a number of bugzilla reports showing the number of bugs fixed per quarter since the inception of the Calendar Project.
I put all those numbers into a spreadsheet and created a graph from that and here it is:

While it’s important to note that not all bugs are equal (A very complex thing like “Support device sync” would be one bug as would be something trivial as “Change window title from ‘Edit event’ to ‘Open event'”), I think it still gives a good sense on the kind of increased activity that one could notice within the last few years in the Calendar project.
If anyone is wondering why we had such a huge drop of fixed bugs in Q2 2007, that was due to one of our key contributors being away for a few weeks in that time frame and the other developers waiting for him fixing a particular bug that was blocking the 0.5 release that was supposed to be released in that time frame.
28
Jul 08
[July 28, 2008] Lightning/Sunbird Status Update
As promised here is a new status update.
As you can see, the last 16 days have brought us a huge load of 45 bug fixes in anticipation of the upcoming 0.9 release. Unfortunately, due to the high amount of remaining blocking bugs (28 at the time of writing) we had to postpone the originally planned release date of 0.9 RC1 to a later date. I’ll keep you posted on this.
Here’s the list of all the 45 bug fixes:
- Bug 319909
Failure to properly serialize/unserialize ics ATTACH properties - Bug 352213
Localizability issues with newevent.recurrence.every.label in calendar.dtd - Bug 374464
Context menu: rename Edit Item / Delete Item entry to Edit / Delete - Bug 409845
‘Preferences’ and ‘Quit Thunderbird’ are disabled in Calendar mode and Task mode - Bug 409921
Implement CalDAV scheduling - Bug 411799
fixing potential etag PROPFIND / PUT race - Bug 412962
The filters of task pane should contain ‘Open Tasks’ or ‘Not Completed Tasks - Bug 412971
Bad formating of invitations – Weblinks in invitation unusable - Bug 413103
Unify and localize string building for time intervals [start + ‘ – ‘ + end] - Bug 416239
Crash on quit seems to point to libwebdav; eliminate use of webdav extension” - Bug 423172
Leaks in calRecurrenceInfo - Bug 426153
Add link to event page in event editing dialog - Bug 428035
Freebusy requests repeated on related scheduling outbox of every configured calendar - Bug 428324
Creating new profile fails on some systems; error in reading from storage.sdb” - Bug 429255
Lightning not emailing invites for CalDAV calendars - Bug 430382
Updated calendar views - Bug 432417
calRecurrenceInfo::onStartDateChange leaves wrong RECURRENCE-IDs - Bug 435390
Style sheet missing from iMip/iTip (regression) - Bug 437441
Finalize calendar-timezones.xpi - Bug 437442
Update timezone definitions - Bug 438534
Remove processor define for windows x64 build - Bug 440017
include config.mk before using INSTALL_LIGHTNING so that var can be set - Bug 440022
ensure that Lightning doesn’t have empty min/maxVersion in install.rdf - Bug 442220
WCAP event: Timezone UTC/GMT changed automatically to Europe/London - Bug 442566
make Lightning build on new shared calendar/mail/suite repository - Bug 443722
Add possiblity to change elements order in Edit Recurrence window - Bug 444551
Select an event in a readonly calendar and use the delete key -> error message - Bug 444748
Get rid of custom timezone service - Bug 444822
Add documentation to UI code and some UI code fixes - Bug 444827
Add binding for calendar captions - Bug 445400
Startup Error: ics-service doesn’t recognize own tzid: Asia/Choibalsan - Bug 445488
Mind default alarm setting if replying via invitations or event summary dialog - Bug 445527
Some keyboard shortcuts are not shown in menu (regression) - Bug 445545
Port Firefox/Thunderbird Bug 378598 to Sunbird - Bug 445728
Delete an single event of a recurring event with attendees -> ‘Notify Attendees’ dialog pops up 2x - Bug 445982
Task invitation via iTIP/iMIP doesn’t work (Disable task invitations) - Bug 445997
No email identity in calendar properties selected - Bug 446170
Lightning build bustage from bug 440017, remove config.mk inclusion on 1.8 only - Bug 446190
alarm service should mind disabled calendars - Bug 446366
Header of multiweek view always assumes the week to begin with Sunday - Bug 446558
Show tooltips in summary dialog - Bug 446559
Set CSS classes for invitations - Bug 446666
“Send attendees invitations via email” checkbox is disabled (grayed out)” - Bug 447621
All day event -> tooltip shows wrong date (start and end) - Bug 447913
CalDAV provider should avoid query-by-uid on after-PUT fetches
Many thanks go to all developers, contributors, localizers, testers, and supporters that make this possible.
25
Jul 08
Simon’s developer notes: Off to the Mozilla summit
I’ll be leaving today for the Mozilla summit in Whistler, Canada. Daniel, Philipp and Martin are also coming from the Calendar team as are hundreds of other key contributors from all major mozilla projects and products.
I hope to have some good discussions on the future of Mail & Calendar, localization and other issues that I’ve been pursuing. This will be a good time to finally meet in person many of the people that I’ve only been in contact with via newsgroups, mail and IRC.
You guys can also expect a new status update within the next few days. Until then…