$linuxjunkies
>

Sync Linux Calendars to Android with DAVx⁵

Install DAVx⁵ via F-Droid and sync your Nextcloud, Radicale, or Baikal CalDAV calendars to Android with automatic background sync.

BeginnerUbuntuDebianFedoraArch7 min readUpdated June 7, 2026

Before you start

  • A working CalDAV server (Nextcloud, Radicale, Baikal, or hosted provider) with HTTPS enabled
  • Your CalDAV server URL, username, and password (or app-specific password if using 2FA)
  • An Android device running Android 8.0 or later
  • Ability to install APKs from unknown sources enabled temporarily on your Android device

DAVx⁵ is the bridge between your CalDAV/CardDAV server on Linux and your Android device. Whether you self-host Nextcloud, Radicale, or Baikal, or use a hosted CalDAV provider, this guide walks you through installing DAVx⁵ via F-Droid and wiring it up so your calendars stay in sync automatically.

What You Need on the Linux Side

DAVx⁵ is an Android app — the Linux work happens on your CalDAV server, not on your desktop. Your server needs to expose a CalDAV endpoint over HTTPS. Common options:

  • Nextcloud — built-in CalDAV at https://yourserver/remote.php/dav/principals/users/USERNAME/
  • Radicale — lightweight Python server, runs on any Linux box
  • Baikal — PHP-based, clean web UI for managing users and collections
  • Hosted providers — Fastmail, Infomaniak, Proton Calendar (via bridge), or any standard CalDAV host

Note your CalDAV URL and credentials before touching your phone. If your server uses a self-signed certificate, read the TLS section below first.

Step 1: Install F-Droid

F-Droid is a free-software app repository for Android. DAVx⁵ is available there at no cost; the same app costs a few euros on Google Play (that purchase funds development — consider it if you use Play Store).

  1. Open a browser on your Android device and go to f-droid.org.
  2. Download the F-Droid APK and tap it to install. You will be prompted to allow installs from your browser — grant it, then revoke the permission afterward as a hygiene measure.
  3. Open F-Droid and let it update its repository index (this takes 30–60 seconds on first run).

Step 2: Install DAVx⁵ from F-Droid

Search for DAVx⁵ (the superscript 5 is part of the name; searching "DAVx" also finds it). Tap Install. The app is roughly 8 MB and has no trackers.

Once installed, open DAVx⁵ and work through the battery optimisation prompt. Android's aggressive app killing will break background sync unless you whitelist DAVx⁵ — tap the prompt and disable battery optimisation for it. On some OEM skins (Samsung One UI, Xiaomi MIUI) you also need to allow background activity in the manufacturer's battery settings panel separately.

Step 3: Add Your CalDAV Account

Tap the + button (bottom-right). DAVx⁵ offers two login flows:

  • Login with URL and username — use this for Nextcloud, Radicale, Baikal, and most self-hosted setups.
  • Login with email address — DAVx⁵ queries DNS SRV/TXT records to discover the server. Works with providers that publish those records (Fastmail, some others).

URL-Based Setup (Most Common)

Choose Login with URL and username. Enter your base URL. DAVx⁵ will auto-discover the exact CalDAV and CardDAV paths via the /.well-known/caldav redirect if your server supports it. Good URLs to try:

  • Nextcloud: https://cloud.example.com — discovery handles the rest
  • Baikal: https://dav.example.com/dav.php/
  • Radicale: https://dav.example.com/

Enter your username and password, then tap Login. DAVx⁵ contacts the server, validates credentials, and lists available calendars and address books.

Selecting Calendars to Sync

After discovery you land on the account detail screen. You will see one or more calendar collections. Tap each calendar you want to sync; a checkmark indicates it is selected. Tap the sync icon or wait for the first automatic sync to populate your device. Your selected calendars then appear in any Android calendar app — Google Calendar, Etar, Simple Calendar, or GNOME Calendar on a Wayland desktop via GNOME Online Accounts if you later mirror the setup there.

Step 4: Configure Sync Interval

By default DAVx⁵ syncs when Android tells it to — typically every 4–6 hours under stock Android battery management, more aggressively if you disabled optimisation. To set an explicit interval:

  1. In DAVx⁵, long-press your account or tap the three-dot menu and choose Account settings.
  2. Under Sync interval, choose a period: 15 minutes, 1 hour, 4 hours, or a custom value.
  3. If your CalDAV server supports push notifications via WebDAV-Push (Nextcloud 25+ supports this), enable Use push if available. This gives near-instant sync without polling.

For most personal use, a 1-hour interval is a reasonable compromise between freshness and battery life. If you are sharing a family calendar where real-time updates matter, enable push or drop to 15 minutes and accept a modest battery impact.

Step 5: Verify Sync Is Working

Create a test event on your Linux CalDAV server — either through a desktop client like GNOME Calendar, Thunderbird with the Lightning calendar, or directly via the Nextcloud web UI.

Then in DAVx⁵, tap your account and hit the manual sync button (circular arrows). After a few seconds, open your Android calendar app and confirm the event appears. Sync timestamps are shown per calendar inside the DAVx⁵ account view — check that the "Last sync" time just updated.

Reverse the test: create an event on Android and verify it appears on the server within one sync cycle.

Handling Self-Signed or Private CA Certificates

If your server uses a self-signed certificate, DAVx⁵ will refuse the connection by default — correctly so. You have two options:

  • Install your CA certificate system-wide on Android. In Android Settings, search for "Install certificate" or navigate to Security → Encryption & credentials → Install a certificate → CA certificate. Sideload your .crt or .pem file. On Android 11+ this triggers a security warning in the status bar — expected behaviour.
  • Use DAVx⁵'s built-in trust store. When the certificate error appears during setup, DAVx⁵ shows the cert details and offers to trust it permanently within the app. This is app-scoped and the simpler option for self-hosted use.

A Let's Encrypt certificate on your server eliminates this entirely and takes about five minutes to set up with Certbot. Strongly recommended if your server is internet-facing.

Troubleshooting

"Connection refused" or timeout

Confirm the CalDAV port (usually 443) is reachable from your mobile network. If you are testing over local Wi-Fi, check that your server firewall allows connections. On Fedora/RHEL systems, firewalld may be blocking the port:

sudo firewall-cmd --list-services
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

On Debian/Ubuntu with ufw:

sudo ufw allow https
sudo ufw status

401 Unauthorized

Your username or password is wrong, or the account uses an app-specific password. Nextcloud users with two-factor authentication enabled must generate an app password under Settings → Security → Devices & sessions and use that in DAVx⁵ instead of the main password.

Calendar appears in DAVx⁵ but not in the calendar app

Some calendar apps only show accounts that Android's account manager knows about. DAVx⁵ creates a native Android account — check under Android Settings → Accounts and confirm the DAVx⁵ account is there. If using a third-party calendar app, check within that app's account/calendar list settings to make sure the calendar is not hidden.

Sync stops after a few days

Battery optimisation was re-enabled by a system update or OEM routine. Return to Android battery settings and re-confirm DAVx⁵ is unrestricted. Some Xiaomi and Huawei devices require you to also lock the app in the recent-apps view the first time to prevent the OS from killing it.

tested on:Ubuntu 24.04Fedora 40Debian 12

Frequently asked questions

Is DAVx⁵ free on F-Droid?
Yes, DAVx⁵ is fully free on F-Droid with no feature limitations. The Google Play version costs a small fee, which goes toward funding development.
Will DAVx⁵ work with Nextcloud two-factor authentication?
Not with your main password. Generate an app-specific password in Nextcloud under Settings → Security → Devices & sessions and use that in DAVx⁵ instead.
How do I sync contacts as well as calendars?
DAVx⁵ handles both CalDAV and CardDAV. During account setup it discovers address book collections alongside calendars — just tick them to sync contacts too.
My sync stops working after a few days. What's wrong?
Android or your phone's OEM battery management is killing DAVx⁵ in the background. Go to battery settings and make sure DAVx⁵ is whitelisted as unrestricted.
Can I sync multiple CalDAV accounts, for example personal and work?
Yes. Tap the + button again to add a second account. Each account is managed independently and can have its own sync interval and calendar selection.

Related guides