Calendar and Contacts
Your calendars, reminders and contacts live on your own server and sync with the apps you already use: Calendar, Reminders and Contacts on iPhone, iPad and Mac, Thunderbird, Android through DAVx5, and GNOME or KDE on Linux.
Stavo speaks CalDAV and CardDAV, the open standards those apps use. On the web you get a Calendar app (day, week, month and agenda views, repeating events, reminders, drag to move) and a Contacts app (groups, photos, import and export). Everything you need to connect a device is in Settings > Calendar & Contacts on your server.
Before you start
- Your server address is all most apps need, like
drive.example.com. Apps that ask for more can usehttps://drive.example.com/dav/cal/for calendars andhttps://drive.example.com/dav/card/for contacts. - Sign in with an app password, not your account password. Calendar apps can't do two-step sign-in or passkeys, so each device gets its own password from Connect a device. It's shown once. Removing it later stops that device syncing right away, and nothing else.
- Use https. Apps send the password with every sync. iPhones and Macs warn about plain http accounts.
iPhone and iPad
The quickest way is the profile: one download sets up calendars, reminders and contacts.
- On the iPhone, open your server in Safari and go to Settings > Calendar & Contacts.
- Under Connect a device, pick iPhone or iPad and tap Make app password, then Download profile.
- Open the Settings app, tap Profile Downloaded near the top, then Install.
Or add the accounts by hand:
- Settings > Apps > Calendar > Calendar Accounts > Add Account > Other > Add CalDAV Account (on older iOS: Settings > Calendar > Accounts).
- Server: your server address. User name: your username. Password: the app password. Tap Next.
- For contacts: Settings > Apps > Contacts > Contacts Accounts > Add Account > Other > Add CardDAV Account, with the same details.
Reminders lists show up in the Reminders app, and groups you make on the phone show up on the web.
Mac
- In Settings > Calendar & Contacts, pick Mac, make an app password and click Download profile.
- Open System Settings > General > Device Management (Profiles on older macOS), double-click the profile and click Install.
By hand: in Calendar choose Calendar > Settings > Accounts, the + button, Other CalDAV Account, Account Type Manual, then your username, the app password and your server address. In Contacts: Settings > Accounts, the + button, Other Contacts Account, CardDAV, Manual. macOS Contacts shows the first address book of an account; shared address books sync on iPhone and Android.
Android
- Install DAVx5 from F-Droid or Google Play. For reminders, also install jtx Board or Tasks.org.
- In DAVx5 tap +, choose Login with URL and user name, and enter your server's address:
https://drive.example.com/- Enter your username and the app password. DAVx5 finds your calendars and address books; tick the ones to sync.
- In the account's settings, set Contact group method to Groups are separate vCards.
Your calendars then appear in any calendar app on the phone, and contacts in the Contacts app.
Thunderbird
- In the Calendar tab choose New Calendar > On the Network, enter your username and this location, then Find Calendars:
https://drive.example.com/dav/cal/- Sign in with the app password when asked and pick the calendars to add.
- For contacts: Address Book > New Address Book > Add CardDAV Address Book, with this location:
https://drive.example.com/dav/card/GNOME, Evolution and KDE
- GNOME 46 and newer: Settings > Online Accounts > Calendar, Contacts and Files, with your server address, username and an app password. Calendars show up in GNOME Calendar, contacts in Contacts.
- Evolution: File > New > Calendar, type CalDAV, URL
https://drive.example.com/dav/cal/calendars/your-username/, then Find Calendars. Address books the same way with type CardDAV andhttps://drive.example.com/dav/card/addressbooks/your-username/. - KDE (Kontact, Merkuro): add a DAV groupware resource with your server address and tick CalDAV and CardDAV.
Outlook and Google Calendar
They don't sync over CalDAV, but they can show a calendar read only. In the Calendar app, open a calendar's settings (the dots next to it in the sidebar), turn on Public link and subscribe to that link from Outlook or Google Calendar. Anyone with the link can see the events, so treat it like a password: New link stops the old one working.
Sharing and subscriptions
- Share with people on your server: in a calendar's or address book's settings, add someone by username and choose Can view or Can edit. It shows up in their apps and on their devices. Deleting it on their phone just takes it off their list.
- Subscribe to a calendar (holidays, a sports team, a class): Subscribed > + in the Calendar sidebar, and paste an
https://orwebcal://link. It's kept up to date on the schedule you pick and syncs to your devices, read only. - Import and export:
.icsfiles in a calendar's settings,.vcffiles from the Contacts sidebar.
If a device can't connect
- Check the username and that you used an app password. Each device needs its own; removed ones stop working at once.
- Behind Cloudflare: calendar apps can't solve Cloudflare's challenges. If Bot Fight Mode or a WAF rule is on, add a rule that skips
/dav/and/.well-known/for your domain. Everything else passes through as is. - Invitations aren't emailed: guests you add are saved on the event and show up in their calendar if they sync it.