owncloud, owncloud, owncloud!
It has CalDAV, CardDAV, and files support. There's even a rudimentary (though scary) online editor with support for openoffice. I use two-factor with owncloud, and happily share files, too. And... it supports an encrypted backend!.
Now, if you're happy to host your own mail, you can also look at adding RoundCube.
This can solve the Calendar/Contacts/Email/Filesharing main case. Works across Windws/Mac/Linux, even mobile... which in my case is Android. It's not amazing, but it's pretty fantastic.
Just clone it, install the dependencies via composer and you’re good to go. It’s just an IMAP client at the moment, but multi-account and when the IMAP server is on the same origin as ownCloud it’s quite fast. Feedback very welcome!
A few ones to check:
What are you using for the two-factor?
Full caveat though: I never have a single device with both my tokens, and synced password database - just in case memory dumps of phones/tablets become valid. So, I dump my password database to my tablet, whereas I sync my authy tokens between two phones.
Disclosure: I'm a major contributor.
* Search engine: http://www.seeks-project.info/, https://github.com/asciimoo/searx
* Maps: https://github.com/MapBBCode/share.mapbbcode.org/, https://github.com/Project-OSRM/osrm-backend/ (routing, hard to setup)
* Mail: https://roundcube.net, http://rainloop.net, https://www.mailpile.is/ (the hard part is getting the mail server right)
* Media: https://github.com/sebsauvage/minigalnano (FTP/SSH upload only), http://mediagoblin.org/
See something missing?