Introduction

How DAVdroid interacts with other system components and app-wide settings.

What is DAVdroid?

DAVdroid is a CalDAV/CardDAV management and sync app. It allows you to

  • manage CalDAV/CardDAV collections (address books, calendars, task lists) on your server and
  • synchronize them with your Android device (to be specifically, with the storage backends of the device, see illustration).

DAVdroid is not:

  • a storage backend – This means that your contacts, events and tasks will not be stored within the DAVdroid app but in the respective content providers.
  • a contacts, calendar or tasks app – You still need separate apps to view and edit your contacts, events and tasks. You can use any app that uses the Android Contacts/Calendar Provider for contacts/calendars and an OpenTasks provider for tasks.
  • a backup tool – You can use DAVdroid to transfer your data to a server, but make sure to perform server backups on a regular basis. Just imagine that an app you have installed deletes all contacts on your phone: DAVdroid will synchronize these deletions as expected and all contacts will be gone on the server, too.

First steps / Quick start

How to start using DAVdroid on your Android device:

  1. Download and install DAVdroid and, if you want to synchronize tasks, OpenTasks.
  2. Open DAVdroid.
  3. Allow it to be whitelisted from battery saving.
  4. Tap on ⊕ to create a new account.
  5. Enter your base URL / email address and login credentials. You can get the base URL from your service provider and/or our list of tested services.
  6. Finish the steps to create the account.
  7. Select the account in DAVdroid.
  8. Grant contact, event and task access permissions.
  9. Select the address books and calendars/task lists you want to have synchronized so that they are shown with checkmark (☑).
  10. You can now access your address books, events and tasks using the respective apps (Contacts, Calendar, S Planner, OpenTasks etc.) on your device.

If you're using DAVdroid the first time, you may want to transfer to your local contacts to the CardDAV server.

On some devices (like Xiaomi), additional steps are required to allow DAVdroid to be run automatically.

Permissions and battery saving

DAVdroid requires various Android permissions in order to perform its task. It will ask for contacts, events and task access permissions.

DAVdroid will also ask about being whitelisted from battery saving. Since Android 6, Android has two features called doze and app standby which reduce battery usage by restricting apps which are not interactively used at the moment. This will also disable synchronization for apps unless they're actively used or the device is connected to a power supply.

If you want DAVdroid synchronization to be run in regular intervals in the background, DAVdroid must be exempt from "battery saving"! This does not mean that DAVdroid requires more battery than it should, but only that you allow DAVdroid to run in the background for synchronization.

Some devices (e.g. Huawei) also have an autostart permission, which must be granted for DAVdroid to work. See the FAQ entry about automatic synchronization for more information.

System-wide settings

DAVdroid makes use of system proxy settings, unless you use app-wide settings to override them. Only HTTP(S) proxies will be used. System proxy settings can most importantly be found in

  • Android APN settings (for mobile network connections; defined by network provider),
  • Android WiFi settings (for WiFi connections; defined when adding a WiFi network).

Your network provider may have defined a system proxy in APN settings that you're not aware of. Check in case of networking problems.

App-wide settings

There are some settings that apply to the whole DAVdroid app. You can access them in the DAVdroid navigation drawer / Settings.

Override proxy settings: Allows to override the system proxy settings (see above). If this option is enabled, you have to specify a HTTP(S) proxy which is used instead of the system proxy. Can be used to route all DAVdroid traffic through a certain proxy, for instance a Tor proxy.

Distrust system certificates: If this option is enabled, system-wide CA certificates will not be trusted automatically. In this case, every certificate has to be verified and accepted explicitly.

Reset (un)trusted certificates: Clears the app key stores where both previously trusted and rejected certificates are saved. If those certificates are encountered again, they will have to be verified again.

Log to external file: If this option is enabled, DAVdroid will create verbose log files on the device storage which contain various sync status messages as well as the whole HTTP traffic, exceptions etc. Use these log files to narrow down sync problems systematically. Keep in mind that log files may contain sensitive data, so they should be deleted as soon as they're not needed anymore.

Show debug info: Shows important information about your device and the current system state, DAVdroid accounts (including collection URLs) etc. Use this information to narrow down sync problems systematically. Can be shared to email or other apps.

Last updated: 06 Feb 2018

Basic glossary

Some important terms to better understand how DAVdroid works

WebDAV
HTTP-based protocol to manage remote resources (files/directories) and collections (directories). WebDAV collections may contain member resources. Provides methods to list (PROPFIND), upload, modify, delete resources and for locking, access permissions (ACL) etc.
CalDAV
Extension for WebDAV to process events (VEVENT) and tasks (VTODO) in iCalendar format. CalDAV servers semantically understand and process entries and can – for instance – filter events so that only events from within a certain time range are delivered.
CardDAV
Extension for WebDAV to process contacts in vCard format. CardDAV servers semantically understand and process entries.
iCalendar
File format to exchange events, tasks, journal entries and busy-time information. Cares about time zones, date/time formats, recurring events and exceptions etc. DAVdroid maps Android events and tasks to iCalendar resources and vice versa. Every event/task is stored as a separate iCalendar resource (".ics file") on the server.
vCard
The "electronic business card" is a file format to exchange contact and contact group information. CardDAV servers are required to support at least vCard 3, but for some advanced features, vCard 4 is needed. DAVdroid maps Android contacts and contact groups to vCard resources and vice versa. Every contact is stored as a separate vCard resource (".vcf file") on the server.