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
- Open Settings > Contacts > Accounts > Add Account > Other.
- Select Add CardDAV Account.
- 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
- Server: Your Mycorrhizal CRM URL (e.g.,
- Tap Next. iOS will automatically discover the CardDAV endpoint.
- 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):
- Install DAVx5 from F-Droid or Google Play.
- Open DAVx5 and add a new account.
- Select Login with URL and user name.
- 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
- Base URL: Your Mycorrhizal CRM URL followed by
- DAVx5 will detect the address book. Select it and sync.
- 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=trueis 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.