Automatic synchronization is not run as expected

There are three main reasons why DAVdroid synchronization is not run automatically / as expected:

  1. DAVdroid has not been whitelisted from battery optimization, and/or
  2. vendor-specific restrictions like "Autostart" or "Start in background" permissions prevent DAVdroid from being run, and/or
  3. automatic synchronization is disabled (will be shown in DAVdroid).

Battery optimization

Since Android 6, Google has put much effort in battery optimization. As a result, apps are very restricted when they may wake up and connect to the Internet.

If you want DAVdroid to be run as set in sync interval settings, you have to exempt DAVdroid from battery optimization (app standby, doze mode). Otherwise, synchronization may be delayed until you connect the device to a power supply. DAVdroid asks to be white-listed when it's started the first time.

Some devices require that you have to disable battery optimization manually. See the screenshots (taken on a Xiaomi device) for more details. The screens make look different on your device.

Autostart (and similar features)

It seems like Huawei, Xiaomi, ZTE and maybe others have added some modifications which are not available in default Android, and which prevent DAVdroid from synchronizing. To get it working, add DAVdroid to "Autostart" (required for automatic sync) and check DAVdroid permissions to allow things like "start in background".

See the screenshots (taken on a Xiaomi device) for more details. The screens make look different on your device.

If DAVdroid doesn't sync after a reboot, please check those things again.

Discussion

For discussion and more information, please have a look at this forum thread about Xiaomi. The same has been reported for ZTE nubia, too.