Contact Sync (CardDAV)

The built-in CardDAV server allows you to synchronize your contacts with your mobile device or computer (e.g. Apple Contacts in iPhone macOS Contacts or on Android with a third-party CardDAV client like DAVx⁵). This page is the served direction — your instance’s contacts going out to your devices. The subscription direction — pulling contacts in from someone else’s CardDAV server — is the “CardDAV contact sync” integration; who owns it when it breaks and how to diagnose it is in Integrations: ownership, diagnostics, and what breaks.

Enable CardDAV by setting the CARDDAV_ENABLED environment variable to true. Once enabled, the CardDAV server runs alongside the web interface. A standard discovery endpoint is available at /.well-known/carddav for automatic configuration.

Connecting Your Phone

iOS

  1. Open Settings > Contacts > Accounts > Add Account > Other.
  2. Select Add CardDAV Account.
  3. Enter the following:
    • Server: Your Mycorrhizal CRM URL (e.g., mycorrhizal.example.com)
    • User Name: Your Mycorrhizal CRM username or email
    • Password: Your Mycorrhizal CRM password
  4. Tap Next. iOS will automatically discover the CardDAV endpoint.
  5. Your contacts will begin syncing.

Android

Android does not include a native CardDAV client. You will need a third-party app such as DAVx5 (open source):

  1. Install DAVx5 from F-Droid or Google Play.
  2. Open DAVx5 and add a new account.
  3. Select Login with URL and user name.
  4. Enter:
    • Base URL: Your Mycorrhizal CRM URL followed by /carddav/ (e.g., https://mycorrhizal.example.com/carddav/)
    • User name: Your Mycorrhizal CRM username or email
    • Password: Your Mycorrhizal CRM password
  5. DAVx5 will detect the address book. Select it and sync.
  6. Your Mycorrhizal CRM contacts will appear in your phone’s Contacts app.

Sync Behavior

  • Two-way sync: Changes made in Mycorrhizal CRM appear on your phone, and changes made on your phone are synced back to Mycorrhizal CRM. This also applies to profile pictures.
  • Conflict detection: Mycorrhizal CRM uses ETags to detect conflicts. If a contact has been modified on both the server and the client since the last sync, the client will be notified and can resolve the conflict.
  • Supported fields: Mycorrhizal CRM syncs all fields though now all fields might be visible in your client. In case you add additional fields on your client (like a secondary address) the fields will be preserved in the Mycorrhizal database but will not show in the Mycorrhizal CRM frontend.

Troubleshooting

  • Contacts not syncing: Verify that CARDDAV_ENABLED=true is set in your server environment and restart the application.
  • Discovery not working: Some clients require the full CardDAV URL instead of relying on auto-discovery. Try entering https://your-server.com/carddav/ directly as the server URL.
  • Locked out: After multiple failed login attempts, your account may be temporarily locked. Wait a few minutes and try again, or reset your password via the web interface.

Limitations

  • Sync-token is not implemented since not yet supported by go-webdav. Clients therefore have to fall back to propfind with depth 1 and compare locally.

Back to top

Mycorrhizal CRM - Self-hosted personal contact management

This site uses Just the Docs, a documentation theme for Jekyll.