What we are up to at CalConnect


This is the fourth post in the 2017 FastMail Advent Calendar. The previous post was a staff profile on Jamie, the man who makes us look good. The next post is about the FastMail security mindset.

Standards and CalConnect

Three years ago that we launched our calendar service, and since then we've continually been working on it, be that

and other improvements.

analemmatic sundial clock

In calendaring, as in email, we are committed to open standards, and we stay true to the specifications that enable calendar synchronisation between different service providers and devices. These are currently CalDAV (and its myriad of extensions) as well as the calendar data format iCalendar. When we started working on the calendar product it was clear to us that we want to help shape and improve online calendaring. That's why we chose to join CalConnect.

CalConnect is The Calendaring and Scheduling Consortium, and the capital The is well deserved. Consisting of both large-scale productivity suite providers as well as boutique calendar app developers and startups, it's the place to learn what the industry is working on in online calendaring. Any upcoming calendar RFC standards is first discussed (at length!) within the group both on the mailing lists and at meetings. The moment a proposal starts to become an internet standard, there's a good chance that it is already supported by a bunch of CalConnect members.

The conferences tend to happen three times a year (in the US, Europe and Asia) and they're a great opportunity to catch up on latest developments; or just to geek out at dinner why an one-day event actually lasts for 50 hours; or how to deal with non-Gregorian calendars.

Since we joined CalConnect, we've been regular visitors to the conferences. Over two years ago Neil started heading the TC-API technical committee in which we proposed doing with calendaring something similar as we are doing for email with JMAP. When Ken joined our Cyrus IMAP FastMail team last summer, we not only had recruited the developer who single-handedly had added CalDAV support to our open-source server backends but also enlarged our team with one of the most prolific persons at CalConnect. Ken chairs the TC-CALENDAR technical committee which covers most of the current developments in CalDAV.

The TC-API working group

In TC-API, we are working on defining a new interchange data model and format for calendar events.

While iCalendar is supported by most calendaring systems, it comes with a couple of gotchas that regularly trip up implementors. Most notoriously, embedded timezones as well as a variety of time formats and types, prove to be a challenge for developers new to calendaring.

In addition, just as CalDAV is a chatty protocol, the iCalendar format isn't particularly well suited for mobile and web client communication. As a consequence, our own calendaring clients speak a custom-built interchange format to save network resource and battery, and many other calendar service providers came up with their own formats.

What most of them have in common is that they are based on JSON, restrict themselves to timezones defined by IANA and introduce proprietary features around scheduling as well as rich media support. To address this, Neil first proposed a new calendar format as part of JMAP, and when he got too busy with the email parts I took over to evolve the calendaring sections into what's now proposed as JSCalendar at IETF.

Being a draft, it's not the end of the story, but just as we keep the Cyrus IMAP server on being able to serve the proposed format, a couple of other vendors are building their products around it. If you are interested in helping out or status updates, contact us at draft-jenkins-jscalendar@ietf.org or raise a JSCalendar labeled issue at Github.

The TC-CALENDAR working group

Meanwhile, Ken and the TC-CALENDAR work group are working on a whole load of improvements to CalDAV, be that managed attachments together with Cyrus Daboo from Apple and Arnaud Quillaud from Oracle, enhanced CalDAV synchronisation, or extensions to calendar event VALARMs.

Together with Peter from Ribose, Ken is currently working on VPATCH, which should help address the aforementioned network resource issues that we also try to tackle in JSCalendar. Generally, you'll be hard pressed to find a document in the standards draft pipeline where Ken hasn't contributed in one way or another. There's a joke at the conferences that while the group keeps on discussing a standards proposal, Ken already has hacked it into the Cyrus IMAP server. As with any good joke there's a grain of truth to it.

What's next?

That's the current state of FastMail at CalConnect. But while we are busy with our current work, we already prepare for the next steps. Neil and Bron are pushing to make JMAP happen not only for email exchange but also a generic RPC protocol, and we can't wait to shuffle around JSCalendar-formatted payloads over it.

Also, there's that other thing besides email and calendars: contacts! The current vCard interchange format comes with its own set of issues that not only us but many other providers are working around. There is, of course, now a group at CalConnect drafting a new way to exchange contacts and addressbooks and we are keen to join the discussion! As always, all of our efforts ultimately show up as one or the other feature in our FastMail calendar and contact products to make our customers happy.