Working in a remote team can make coordination difficult, so an effective calendaring tool is important to have. Setting meetings, project timelines, collaborative events, and seeing coworkers' schedules are all necessary features for any calendaring tool. A calendar should be intuitive, easy to use, and have a visual layout that makes interpreting the information fast and effortless. It was with all of these qualities in mind that we began to look for a calendaring and scheduling tool for StormFree.
At first, we looked for a tool that would do all of this automatically, since we were unsure of how to implement these features in traditional calendar clients. This led to a fruitless search that turned up dozens of feature-rich calendaring tools that also implemented a variety of time-tracking and project management functions, but all of these were offering much more than we really needed. Realizing that these tools were not suitable, we reevaluated and decided to simplify things by learning about the technologies that would make our desired features possible, and see if these could be used with simpler calendaring tools. This led us to learn about iCalendar file formatting and the CalDAV communication protocol, two technologies that underpin email and calendar coordination.
CalDAV and iCalendar are internet standard technologies, which means that they have been approved by the Internet Engineering Task Force (IETF) in pursuit of nurturing consistent and universal use of the internet.
iCalendar or iCal, short for Internet Calendaring and Scheduling Core Object Specification, is a file format that allows users to send and respond to meeting requests which automatically tie into calendar events. iCal invites are sent via email, which results in an invitation that, when accepted, will add the event or meeting into your calendar in the proper time slot. You can also respond to an iCal invitation by proposing an alternate time, which will send an invitation for this new time slot to the original sender. Thus, iCal is a vital technology for email and calendar collaboration, since it permits seamless integration between invitations and your calendar, removing the need for you to manually add events that you have been invited to attend. Additionally, inviting attendees is as simple as typing their names into your calendar event, without the need to create cumbersome email chains going back and forth about scheduling.
CalDAV, short for Calendaring Extensions to WebDAV, is a protocol that allows a client to access scheduling and calendaring information on a remote server. This protocol is an extension of the WebDAV HTTP-based protocol used for data manipulation, and relies on iCalendar format for much of its transmitted data. While iCal and CalDAV are similar in some respects, the major difference between these two protocols is that CalDAV can be used to manipulate data, whereas iCal is merely used to transmit calendaring data. CalDAV is therefore necessary for allowing collaborative calendaring, where events can be added, edited or removed by multiple people using multiple calendar clients. It is also necessary to create truly useful combined calendars, where a user can see both their work and personal calendars and manipulate the information contained in each from multiple devices and clients. CalDAV allows you to use Outlook on your desktop to manipulate the same calendar information that is in your Google calendar, and vice-versa.
Another function that we were unsure of in the beginning was whether we could use CalDAV or iCal to do any collaborative calendaring from mobile devices. Primarily, we wanted to ascertain whether we could send and receive iCal invites from mobile, and whether we could connect a mobile calendar application to a web- or desktop-based calendar and see changes as they happened in a mobile interface. CalDAV proved capable of doing all of these things.
After looking into CalDAV protocol and iCal file formatting, it was apparent that the features we wanted were achievable, but were not necessarily integrated into all existing email and calendaring tools. We first tried to use CalDAV with our email client at the time, cPanel, but it did not natively support the CalDAV protocol. We tried to implement CalDAV functionality through an extension to cPanel, but this failed to work properly and did not allow for sharing contacts or free/busy information, causing us to disqualify cPanel. The next step was to find simple calendar tools that were capable of using the CalDAV protocol to connect with external calendars. We recently noticed the resurgence of development on Mozilla's Thunderbird email and Lightning calendar desktop client, and that it supported CalDAV with free/busy information, so finding something that would connect with Thunderbird became a priority since it's a cross-platform quality open-source tool. What we hoped to find was something that would permit all of our users to create calendars on the same server to facilitate free/busy scheduling, but would also connect with CalDAV to Thunderbird so that our users who were already accustomed to that interface could continue to use it.
Outlook is a popular and well-known client, so it was one of the first we considered. Unfortunately, Outlook does not natively support using CalDAV to access remote calendars, so a third-party extension called CalDAV Synchronizer was used to facilitate this. After installing the extension, it became possible to link multiple calendars to an Outlook client using CalDAV. The default Outlook calendar could also be connected to a Thunderbird client using CalDAV, which was one of our requirements. However, Outlook's handling of free/busy information left a lot to be desired. Furthermore, we encountered a number of issues when connecting Outlook to iCalendar feeds, and found little support for using the client alongside non-Microsoft tools.
One of the first tools we looked into after researching CalDAV was the Calendar and Contacts Server developed by Apple. This server provides a shared location on the network, allowing multiple users to collaboratively manipulate calendar and contact data using the CalDAV and CardDAV (like CalDAV but for address book information) protocols. This seemed to offer everything we wanted: a simple, collaborative method of sharing calendar information amongst multiple users without all of the additional features that were bundled with most calendaring tools. While this option ended up being too basic for our uses, requiring more setup and configuration than we were prepared to do, it offers good functionality if a simple method of coordinating multiple calendars is what you're seeking.
The search for more feature-rich tools uncovered one called Fruux, which in turn led us to find sabre/dav, an open source CardDAV, CalDAV, and WebDAV server. The scalable design and powerful scheduling features appealed to us, but again required more setup and configuration than we would have liked. Sabre/dav is at its core a WebDAV framework for PHP, meaning that it can be used to create a CalDAV server that could theoretically handle the type of calendaring processes we were looking for. While we decided to look for a more ready-to-use option, this is a viable choice if you're willing to invest some time up front.
One of the simplest calendaring tools we assessed was Teamup, which prides itself on being designed with collaborative uses in mind. Teamup supports multiple-devices, multiple calendars for each user, and has an easy-to-use collaborative interface that makes viewing your own schedule alongside your coworkers' effortless. However, Teamup does not allow you to setup your own server, and does not offer an integrated mailbox, two features that were necessary for StormFree.
Zimbra was one of the last tools that we evaluated, and it proved to be the best. Offering an integrated "Smarter Mailbox" for email and a calendar designed for teams of varying sizes, Zimbra seemed to possess all of our desired features. Zimbra provides an email server which has a built-in calendar interface, which supports the use of iCal meeting invitations without any additional setup required. With all user accounts existing on the same server, Zimbra handles free/busy scheduling whenever you setup a meeting with other users. This ensures that you can see the time slots that all of your invitees have open, and schedule accordingly. Additionally, the consolidation of both email and calendaring in Zimbra makes connecting both of these functions to an external client like Thunderbird relatively easy.
The only shortcoming that we found with Zimbra was its desktop application, a problem that was easily circumvented by using Thunderbird to access Zimbra from the desktop instead. Thanks to CalDAV, our Zimbra interface and Thunderbird desktop clients share a two-way connection that allows changes made in one to be reflected in the other. Now, all of our users can choose which interface they prefer to access their email and calendar from while retaining the same functionality and features.
By the end of our exhaustive search, we had gained an appreciation for the landscape of email and calendaring tools that are currently on the market. As noted previously, a great deal of popular tools out there are trying to be "Jacks-of-all-trades" instead of being good at one or two things. While these tools might be appealing for some people who love extra features, the lack of truly excellent implementations of desired functions left us wanting. Another issue we found was with tools not working well with others, and forcing users to remain within a closed ecosystem of proprietary offerings. This leaves end users with little control over how they use a tool or what they integrate alongside it. This was a major concern for us, and pushed us away from using tools that tried to prescribe how users leveraged them. When you are looking for your own calendaring and emailing tools, we recommend keeping in mind how much flexibility you want as a user, and whether a tool will give you the flexibility and choice that you need.
Interested in setting up your own Zimbra server? Check out Part II in our series.