A collage of service providers including Microsoft Exchange, Outlook.com, GMail, Y!Mail, iCloud, Yandex, ZoHo, FastMail, cPanel, GMX, Horde, QQ, and NextCloud. đź…­

Windows 10 supports Cal­DAV/​Card­DAV but limits provider-support

Windows 10’s Email and app accounts system let you sync your email, contacts, and calendars with your hosted service provider and the Windows platform. After syncing your data, you get more out of your device as the built-in Calendar and People (Address Book) apps come to life along with the lock screen, and action and notification center. It’s a better Windows experience when it has your data.

Assuming your data is hosted by Google, Apple iCloud, Yahoo!, or Microsoft Outlook, you’re all set to go! Despite the fact that all leading service providers use the same open standards for syncing this kind of data, you’re all out of luck if your service provider isn’t on Windows’ “nice list” (which only includes U.S. companies.)

I wrote earlier this week on how Windows has locked-down its implementation of the open iCalendar standard to only Microsoft curated calendars. Today, I’ll continue by writing about two other open standards that have been locked down to a approved set of service providers in Windows 10: CalDAV and CardDAV.

CalDAV and CardDAV are open standards for syncing calendar appointments and contacts data between devices. If you’ve ever setup an email client, you might be more familiar with (or at least seen) the IMAP and SMTP standards for sending and receiving email. Google, Yahoo!, and iCloud sync with Windows using CalDAV, CardDAV, IMAP, and SMTP.

These four open standards are also supported by all the other leading email/calendar/contacts providers including AOL Mail, FastMail, GMX (Germany), Mail.ru (Russia), Tencent QQ Mail (China), Yandex (Russia), and ZoHo. They’re also supported by groupware suites like Horde and ZoHo used by businesses worldwide and by Nextcloud, the self-hosted geek’s favorite home-server solution.

Yet, in Windows you can only choose between four predefined branded partners. There are no options for either automatically (using another set of open standards) or manually configuring a custom service provider or just specifying the server addresses yourself.

This effectively blocks competitors from letting their customers sync their data with Windows and the Windows core communications applications. People who want to get the most out of Windows 10 either have to migrate to one of the short list of approved service providers to host their email, calendar, and contacts — or use a potentially insecure work-around to stay with their current preferred service provider.

Windows has everything in place to add support for syncing with every CalDAV and CardDAV service provider. The Email and app account system in Windows 10 has a generic account type which includes full auto-configuration using /.well-known/ URIs — although not using SRV records in DNS that would work automatically for many — and with manual configuration for the rest of the hosted or self-hosted sync providers.

The underlying data store and sync engine has an unused and undocumented WebDavServerType.Generic server type identifier which can be associated with a generic account for syncing data with IMAP, SMTP, CalDAV, and CardDAV. Windows 10 does have one account type that supports specifying IMAP and SMTP server address for email. Everything required for specifying a CalDAV server URL and a CardDAV server URL is already in place.

The only piece of the puzzle that’s missing is exposing a generic account type in the API and adding that account type to the user interface.

Advanced settings of Add iCloud account dialog in Windows 10

Microsoft could even recycle the existing user interface it already implemented for iCloud. In my estimate Microsoft, it’s just a matter of changing about six variables in the code and adding some text strings!

Maybe Microsoft doesn’t want to clutter up the user interface by introducing a new account type. However, Windows already have the “Other account” option. All the pieces are there for full calendar, contact, and email sync from any of provider using open standards.

It’s worth noting that there’s a one more account type available in Windows 10: Microsoft Exchange. Exchange is Microsoft’s own proprietary alternative, with a rather hefty licensing fee, to the open standards protocols discussed in this article. Microsoft Exchange is used by Outlook.com and enterprises committed to Microsoft services.

Artificial “problems” like this one reminds me why I love Free software. It would have been so easy for anyone with half a gram of interest in any of this to take all the almost-but-not-quite bits Microsoft have made and turn them into a great product.

Instead, Microsoft is trying to control the market and in effect gets to pick winners and losers in the market based on which providers they choose to support or not. This isn’t made any better by the fact that they’ve added support for open standards, but hide away their configuration options so people can’t use them.

You can configure a custom CalDAV/CardDAV server setup by modifying an iCloud account. This work-around introduces a security issue and doesn’t address the core issue I wanted to address here: A generic account type should be the core feature; with popular branded options being a secondary option.

I believe this is a hubristic self-promoting business decision by Microsoft, and has nothing to do with design nor technical challenges. The exclusion of a system for configuring open standards and competing service providers in Windows 10 smells suspiciously like a scheme for selling more licenses of Microsoft Exchange.

Providing Microsoft Exchange services are expensive for service providers compared to free and open standards. However, service providers may feel pressured to make that investment when their customers can’t get their data into Windows 10. The whole thing feels more like the old 1990’s and 2000’s Microsoft than the new Microsoft who’ve embraced the Linux application in the Windows kernel.

Sniggering Linux users who believe in open code and open standards can take a hike. The Online Accounts systems in GNOME, Ubuntu Unity, Plasma, and MATE do the exact same thing as Window 10. There are underlying CalDAV and CardDAV sync engines (Evolution Data Server, Akonadi) that power them but the user interface only expose two–three providers like Google and Yahoo! with no option to auto-discover or manually configure any other providers.

There are workarounds available, but the primary method for adding accounts exclude everyone but the largest U.S. service providers by default. That their favorite desktops have chosen to promote hosted services from Google and Yahoo! over open standards that any vendor can support should make any Linux user cringe just a little. MacOS and iOS get top marks for having supported and actively worked on this as an open standard for years.

The only ones who get a free pass on this is MacOS and iOS users. These two platforms have excellent support for and let users and businesses setup CalDAV and CardDAV accounts on their devices without pretending to be, ironically enough, an Apple iCloud account. Apple even maintains an open-source CalDAV and CardDAV server project. When Apple is beating your product on being an open and welcoming platform, you know for sure that you’re doing something wrong.