DAVx⁵

at.bitfire.davdroid
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

If you're encountering **problems** please contact us: support@davx5.com or have a look at our forums: https://www.davx5.com/forums/ **instead of down-voting the app** so that we can provide support. DAVx⁵ is the only all-in-one app for all things CalDAV, CardDAV and WebDAV! It is a fully-featured sync solution for your contacts (CardDAV), calendars (CalDAV) and your tasks (based on VTODO). The app is easy to set up and integrates perfectly with your favorite calendar/contacts app (including default apps). It can also be used seperately, if you either have CalDAV, CardDAV or only Tasks. DAVx⁵ can also be used to access your remote WebDAV files. Want to keep track of tasks, notes and journals? Try jtxBoard: https://play.google.com/store/apps/details?id=at.techbee.jtx DAVx⁵ can synchronize everything from jtx Board with your own server! Compatible with almost every CalDAV/CardDAV servers and services, including **Nextcloud, iCloud and Synology!** After installing, you can add a DAVx⁵ account for CalDAV and CardDAV from within the app. See https://www.davx5.com/tested-with/ for help. For more information, please see the manual: https://www.davx5.com/manual/, the FAQ: https://www.davx5.com/faq/ and our forums: https://www.davx5.com/forums/ **Key features:** ⊛ Sync your Calendars (CalDAV) and address-books (CardDAV) and Tasks (VTODO via CalDAV) in a single app ⊛ Two-way synchronization (server ↔ client) ⊛ Access your WebDAV files and work with remote storages — seamlessly just as they would be local on the device ⊛ Flawless integration with your device and favorite apps ⊛ Easy setup (resource auto-detection, support for self-signed certificates, authentication by client certificates) ⊛ Fast algorithms for high performance (CTag/ETag, limit sync time range for past events, multi-threaded sync) ⊛ Optimized for phones and tablets. Backward compatibility for old Android versions. ⊛ Management options within the app (Create and Delete new calendars, address books and to-do lists*) ⊛ Super-secure and we respect your privacy! ⊛ Absolutely no ads and no tracking. ⊛ GDPR compliant. ⊛ DAVx⁵ is completely open source * depends on server implementation / may be not supported by all servers **Important compatibility notes** Attention: DAVx⁵ must not be moved to the SD card! This will cause strange behaviour, including account and data loss. **Get the best out of this app …** ⊛ … when using with your own DAV server (Radicale, DAViCal, SabreDAV, Baikal, …) and HTTPS – so you own and control all your data while having the comfort of synchronization between various devices. Or use a hosted DAV service you trust or the one of your company. ⊛ … and combine it with Evolution / Thunderbird / WebDAV storage etc. on your computer **Successfully tested with:** ⊛ 1CRM ⊛ A1.net ⊛ all-inkl.com ⊛ AOL Mail ⊛ Baïkal ⊛ Bitrix24 ⊛ Calendar and Contacts Server ⊛ cPanel ⊛ Cyrus IMAP ⊛ DAViCal ⊛ DavMail Gateway ⊛ Daylite ⊛ EDIS ⊛ EGroupware ⊛ Fastmail ⊛ fruux ⊛ GMX ⊛ Google ⊛ Group Office ⊛ Hetzner KonsoleH ⊛ Horde ⊛ IceWarp ⊛ iCloud ⊛ Kerio Connect ⊛ Kolab Now ⊛ Kopano ⊛ luckycloud ⊛ macOS Server ⊛ mail.de ⊛ mail.ru ⊛ mailbox.org ⊛ Mailfence ⊛ MDaemon ⊛ Nextcloud ⊛ openCRX ⊛ Oracle Beehive ⊛ Oracle Communications UCS ⊛ ownCloud ⊛ OwnCube ⊛ Posteo ⊛ Radicale ⊛ SmarterMail ⊛ SOGo ⊛ Synology DSM ⊛ Teambox ⊛ Tine 2.0 ⊛ T-Online ⊛ web.de ⊛ Xandikos ⊛ Yahoo Mail! (calendar only) ⊛ Yandex ⊛ Zimbra ⊛ Zoho ⊛ … and many others: https://www.davx5.com/tested-with/ _Also available as a separate business version with Enterprise features like mass-deployment and pre-configurable settings: https://www.davx5.com/organizations/managed-davx5_ Privacy Policy: Please find out how we handle your data: https://www.davx5.com/privacy/

First release: Sep 13, 2025, 20 total releases.

Most recent release: Sep 27, 2026.

Repo

Appears in 7 app stacks.

8,400 sats / 4 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Sep 27, 2026 4.5.20-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.20-ose --> ## What's Changed ### ✨ New features * [Debug info screen] Show links to helpful resources by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2684 ### 🪲 Bug fixes * [jtx Board] Filter known properties from OTHER properties in VALARMs by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2716 * Fix sync always-pending issue (again) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2721 * Update dav4jvm to fix Digest auth by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2735 * Propagate Sync Cancellation and Exceptions Correctly by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2813
    More…
    * [Push] Add `content-update trigger` and `content-encoding` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2860 ### ⚙️ CI/CD * [CI] Bump stefanzweifel/git-auto-commit-action from 5 to 7 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2714 * [CI] Bump gradle/actions from 6 to 6.2.0 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2742 * [CI] Bump gradle/actions from 6.2.0 to 6.3.0 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2793 * Add workflow to mirror english original strings to `davx5-translations` by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2799 * Test string mirror workflow by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2804 * Cleanup test string by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2805 * Update string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2819 * Revert string update for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2822 * Add string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2829 * Delete string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2830 * Use translations from the l10n submodule by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2831 * Update error message for missing translations directory by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2845 * Move update contributors logic to submodule by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2861 * [CI] Bump actions/setup-java from 5 to 6 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2865 * Disable Dependabot cooldown for l10n submodule by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2869 * Consolidate CI test workflows into a single workflow file by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2896 ### ✏️ Other changes * [Release notes] Remove refactoring category; include Dependabot again by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2713 * Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2715 * Update dav4jvm to 4.0.0, add Ktor deadlock test by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2712 * [Coroutines] Check WebDAV package by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2703 * Update JtxBoard min version to 2.17.00 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2711 * `AccountId` refactoring (part 3) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2644 * `AccountId` refactoring (part 4) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2722 * `AccountId` refactoring (part 5) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2724 * `AccountId` refactoring (part 6) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2725 * [Sync] Take settings snapshot for synchronization by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2718 * `AccountId` refactoring (part 7) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2727 * Clean up applicationScope usage by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2723 * `AccountId` refactoring (part 8) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2730 * Unify DAO method naming and convert easy blocking calls by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2736 * Simplify `SyncException` handling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2737 * [UI] Debug info: clarify wording of 5xx "contact server support" message by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2733 * Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2743 * [SyncManager] Extract/reorganize some methods by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2744 * `AccountId` refactoring (part 9) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2732 * [SyncManager] Simplify `localCollection` argument by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2745 * [SyncManager] Simplify `SyncResult` members by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2746 * `AccountId` refactoring (part 10) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2748 * Extract `SyncPendingProvider` from `SyncFrameworkIntegration` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2754 * `AccountId` refactoring (part 11) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2758 * [SyncManager] Change `syncRemote()` to process Flow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2751 * Create `davCollection` in `Syncer` instead of `SyncManager` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2752 * Introduce remote WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2757 * [SyncManager] Move capability querying into `WebDavCollection` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2759 * [SyncManager] Move querySyncState() responsibility to WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2764 * [SyncManager] Move `deleteMember` to `WebDavCollection` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2767 * [SyncManager] Move upload PUT logic into `WebDavCollection` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2773 * `AccountId` refactoring (part 12) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2771 * [SyncManager] Move multi-get into `WebDavCollection` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2777 * [SyncManager] Rewrite `syncRemote()` as a flow pipeline by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2778 * [SyncManager] Split `syncRemote()` into `processListing()` / `processChanges()` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2779 * [SyncManager] Extract `listFilteredMembers()` into `WebDavCollection` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2774 * [SyncManager] Extract `listChanges` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2781 * [VCardParser] Clarify handling of invalid vCards by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2785 * [SyncNotificationManager] Take notification tag ownership by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2787 * `AccountId` refactoring (part 13) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2776 * [DI] Inject `AccountManager` via Hilt by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2789 * Fix LocalAddressBookStoreTest by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2795 * [SyncManager] Extract `SyncExceptionHandler` to own sync error handling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2783 * Update PR template for AI contributions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2798 * Separate AccountSettings from actual storage by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2749 * [SyncManager] Extract upload step into own method by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2800 * `AccountId` refactoring (part 14) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2806 * `AccountId` refactoring (part 15) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2807 * `AccountId` refactoring (part 16) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2809 * `AccountId` refactoring (part 17) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2810 * Place calendar components after timezone definition by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2816 * Allow to store AccountSettings in DB by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2803 * Bump the app-dependencies group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2818 * Move Local* classes to `resource.local` package by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2832 * Throw exception when retrying an upload by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2834 * Bump com.squareup.okhttp3:okhttp from 5.4.0 to 5.5.0 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2836 * Split AGENTS.md for core/synctools; add instructions for blocking/suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2840 * Test all `AccountSettingsStore` implementations by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2835 * Make `LocalResource.clearDirty()` suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2839 * Make `LocalResource.updateUid()` suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2841 * Make `LocalCollection.markNotDirty()` and `forgetETags()` suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2843 * Make `LocalResource.updateFlags()` suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2844 * Make `LocalResource.updateSequence()`/`deleteLocal()`/`resetDeleted()` suspend by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2846 * Treat 502 (BadGateway) as soft error by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2858 * Bump the app-dependencies group with 10 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2855 * Only use `dependencies` label for dependabot submodule updates by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2864 * Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2866 * Move fastlane metadata to translations by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2863 * [l10n] Bump l10n from `b61ffc6` to `955f1e4` by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2854 * Disable dependenciesInfo block for reproducible builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2871 * Do not exclude at.bitfire.** from optimization/shrinking by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/2862 * Bump the app-dependencies group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2874 * Add debug signing config option for release builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2875 * Distinguish empty path from literal slash in Url.lastSegment by @xhon-pelushi in https://github.com/bitfireAT/davx5-ose/pull/2797 * Ensure `Collection.url` and `HomeSet.url` end with a slash by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2881 * Bump org.slf4j:slf4j-jdk14 from 2.0.18 to 2.0.19 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2883 * Wrap `RemoteException` when using `BatchOperation` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2884 * Improve failed resource detection page by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2885 * Fix opaque log message for account configuration by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/2879 * [l10n] Bump l10n from `955f1e4` to `5f723eb` by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2894 ## New Contributors * @xhon-pelushi made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/2797 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.19-ose...v4.5.20-ose
  • Aug 3, 2026 4.5.19-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.19-ose --> ## What's Changed ### 🪲 Bug fixes * Backport from main: fix preemptive digest auth – https://github.com/bitfireAT/dav4jvm/issues/219 * Include correct tasks provider package in PRODID by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2671 * [jtx] Don't crash when main component is missing by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2674 * Translator list in app is wrong (DAVx5 / About / Translators) by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2683 * Fix task dirty flag regression with properties by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2697 * Make view/share logs primary action of verbose logging notification by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2706
    More…
    ### 🛠️ Refactoring * [WebDAV] make operation signatures and DB access suspendable by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2660 * Use suspending methods for SyncWorkerManager by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2657 * Unify `StartupPlugin` sync/async calls → `StartupAction.onAppCreate()` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2662 * [Coroutines] Clean up `AppSettingsViewModel` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2694 ### ✏️ Other changes * `Android10Resolver`: use `asyncSend` instead of `runBlocking` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2659 * Remove blocking call from `RefreshCollectionsWorker` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2686 * [Coroutines] Fix blocking calls in push message handling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2685 * Avoid using `runBlocking` in `AutomaticSyncManager` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2687 * [dav4jvm] Migrate from callback to `Flow<MultiStatusItem>` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2640 * Remove `runBlocking()` from account settings migrations by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2699 * [Coroutines] Clean up `AccountSettings` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2704 * Remove autostart permission hint by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2710 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.18-ose...v4.5.19-ose
  • Jul 18, 2026 4.5.18-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.18-ose --> ## What's Changed ### 🪲 Bug fixes * Propagate `GroupMethod` to `AndroidAddressBook` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2651 * Read-only collections: reset instead of upload local changes by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2643 * Fix threading for building HTTP proxies by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2647 * Use IO dispatcher instead of default dispatcher by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2653 * Introduce IoCoroutineWorker for I/O-bound tasks by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2665 ### 🛠️ Refactoring
    More…
    * [SyncManager] Replace `SyncDispatcher` by explicit concurrency control; make batch-downloading testable by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2616 ### ✏️ Other changes * Convert `AccountSettingsActivity` to use `AccountId` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2629 * Update AGP to 9.3.0 and enable parallel tooling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2648 * Document F-Droid version parsing in AppVersion.kt by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2649 * Add link to "tested with" page on login screens by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2652 * Replace `@MainDispatcher` by `Dispatchers.Main` and add `@RealMainDispatcher` for tests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2650 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.17.1-ose...v4.5.18-ose
  • Jul 10, 2026 4.5.17.1-ose
    **4.5.17.1 (hotfix):** - Fix problem with Digest authentication – #2633 - Improve HTTP logging format – #2631 --- # 4.5.17 <!-- Release notes generated using configuration in .github/release.yml at v4.5.17.1-ose -->
    More…
    ## What's Changed ### 🪲 Bug fixes * [Ktor] Handle explicit `Content-Encoding: identity` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2618 * Add validation and tests for jtx objects by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2620 * Send proper `Accept` headers for XML, make JSON content negotiation optional by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2624 ### 🛠️ Refactoring * [ktor] Use `ktor-client-auth` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2599 * [Ktor] Migrate OAuth to ktor-client-auth by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2601 * Make `HttpClientBuilder` immutable by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2610 * [ktor] Replace okhttp mock server in testing with ktor-client-mock MockEngine by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2596 ### ✏️ Other changes * Fix java.util.Logger parameter formatting in synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2604 * Finish MessageFormat logging cleanup by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2607 * Preserve TEL ext= URI parameter when mapping vCard phone numbers to Android by @mvanhorn in https://github.com/bitfireAT/davx5-ose/pull/2558 * Add `HttpUrl.toKtorUrl()` helper for tests by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2602 * Hide activity intent details by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2612 * Add `account` and `account_setting` tables to DB schema by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2613 * Introduce `AccountId` type by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2615 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2628 ## New Contributors * @mvanhorn made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/2558 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.16-ose...v4.5.17.1-ose
  • Jul 9, 2026 4.5.17-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.17-ose --> ## What's Changed ### 🪲 Bug fixes * [Ktor] Handle explicit `Content-Encoding: identity` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2618 * Add validation and tests for jtx objects by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2620 * Send proper `Accept` headers for XML, make JSON content negotiation optional by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2624 ### 🛠️ Refactoring * [ktor] Use `ktor-client-auth` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2599
    More…
    * [Ktor] Migrate OAuth to ktor-client-auth by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2601 * Make `HttpClientBuilder` immutable by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2610 * [ktor] Replace okhttp mock server in testing with ktor-client-mock MockEngine by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2596 ### ✏️ Other changes * Fix java.util.Logger parameter formatting in synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2604 * Finish MessageFormat logging cleanup by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2607 * Preserve TEL ext= URI parameter when mapping vCard phone numbers to Android by @mvanhorn in https://github.com/bitfireAT/davx5-ose/pull/2558 * Add `HttpUrl.toKtorUrl()` helper for tests by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2602 * Hide activity intent details by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2612 * Add `account` and `account_setting` tables to DB schema by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2613 * Introduce `AccountId` type by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2615 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2628 ## New Contributors * @mvanhorn made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/2558 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.16-ose...v4.5.17-ose
  • Jul 6, 2026 4.5.16-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.16-ose --> ## What's Changed ### ✨ New features * Add RAM info to debug info by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2527 ### 🪲 Bug fixes * Run garbage collection when ical4j's `ZoneIdPool` runs empty by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2526 * Remove duplicate ez-vcard version from product ID by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2534 * `HTTP-date` parsing error: add regression test, fix by updating dav4jvm by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2541 * Ignore unsupported recurring task exceptions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2554
    More…
    ### 🛠️ Refactoring * [jtx rewrite] Add `AttachmentsBuilder` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2506 * [jtx rewrite] Implement unknown properties handler by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2500 * Reduce storage layer API surface: use iterate pattern instead of returning lists by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2509 * [Contacts rewrite] Move photo access to AndroidAddressBook by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2512 * [jtx rewrite] Implement date handlers by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2476 * [Contacts rewrite] Create CRUD for raw contacts and groups by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2515 * Add RecurrenceFieldsHandler with tests by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2502 * [jtx rewrite] Deduplicate in the handlers by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2522 * [jtx rewrite] Add remaining builders to `JtxObjectBuilder` by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2521 * [jtx rewrite] Add `AttachmentsHandler` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2516 * [jtx rewrite] Implement Completed PercentComplete and Priority handlers by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2514 * [jtx rewrite] Add all handlers into `JtxObjectHandler.entityHandlers` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2528 * [jtx rewrite] Update `JtxSyncManager` to use new jtx board API by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2529 * Migrate WebDAV file access to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2540 * [Service detection] Add LogCapture for bounded log capture by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2543 * Use FileLoggerFactory for service detection logging by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2546 * [jtx rewrite] Remove old jtx code by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2536 * [ical4j] Use system `ZoneId`s for system-known TZIDs by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2539 * [jtx rewrite] Implement reminders handler by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2538 * Migrate service detection to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2544 * [Ktor] Use Ktor for WebDAV mount creation by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2565 * [Ktor] Use Ktor for synchronization by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2561 * Replace OkHttp cookie handling with Ktor's HttpCookies plugin by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2570 * Update DavException and HttpException imports from okhttp to ktor by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2574 * Migrate HTTP client config from OkHttp to Ktor by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2577 * [ktor] Clean up okhttp in DB, helpers etc by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2575 * SyncManager: Don't load all changed objects into memory at once by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2581 * Make `LoginValidator` and `SyncValidator` use suspending functions by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2578 * Update ical4j to 4.3.0 by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2583 * Remove OkHttp client builder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2584 * Migrate many iterate callbacks to Flow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2588 * [.sync] Replace runBlocking with suspend functions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2590 * [Ktor] Remove duplicate OkHttp logging and compression interceptors by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2593 * [Ktor] Add User-Agent header via Ktor plugin by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2592 * [Ktor] Migrate socket timeout and proxy configuration by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2594 ### ✏️ Other changes * Add Claude Code GitHub Workflow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2530 * [DmfsTask] Fix UID generation by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2532 * Update dependencies & bump version to 4.5.16-rc.1 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2597 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2598 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.15-ose...v4.5.16-ose
  • Jun 20, 2026 4.5.15-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.15-ose --> ## What's Changed ### 🪲 Bug fixes * Fix formatting in `gplv3.html` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2349 * Fix `DateTimeException` in `DatePropertyTzMapper.normalizedDates()` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2352 * Excluding exceptions in queries of ...Recurring... classes by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2371 * Fix all-day event timezone handling (always treat as UTC) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2484 ### 🛠️ Refactoring * DmfsTask: Migrate unknown properties and URL handlers to VToDo by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2346
    More…
    * DmfsTask: extract `SequenceUpdater` and move it out of storage access layer by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2354 * Create DmfsTaskContract similar to EventsContract by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2362 * [Dmfstask] Fix `AlarmsHandler`, `CategoriesHandler`, `CommentsHandler`, `UnknownPropertiesHandler` not using sub-values by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2358 * [DmfsTask] Implement `DmfsTaskHandler` functionality by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2367 * Implement `DmfsTaskBuilder.build` and `DmfsTaskBuilder.buildTask`. by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2351 * DmfsTask: update sync to use new storage/mapping API by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2366 * DmfsTasks: Remove deprecated `Task...` classes (old API) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2372 * Re-organize legacy ical4android code and tests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2373 * [jtx rewrite] Add `UidBuilder` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2424 * [jtx rewrite] Add `SummaryBuilder` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2430 * [jtx rewrite] Add ComponentBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2431 * [jtx rewrite] Add ExtendedStatusBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2432 * [jtx rewrite] Add PriorityBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2434 * [jtx rewrite] Add ClassificationBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2433 * [jtx rewrite] Add PercentCompleteBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2435 * [jtx rewrite] Add builder `ContactBuilder` -> `CONTACT` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2441 * [jtx rewrite] Add builder `UrlBuilder` -> `URL` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2442 * [jtx rewrite] Add builder `LocationBuilder` -> `LOCATION`+`LOCATION_ALTREP` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2443 * [jtx rewrite] Add builder `GeoBuilder` -> `GEO_LAT`+`GEO_LONG` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2444 * [jtx rewrite] Add `RelatedToBuilder` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2440 * [jtx rewrite] Add `UnknownPropertiesBuilder` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2439 * [jtx rewrite] Add CompletedBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2438 * Don't inherit `LocalJtxICalObject` and `LocalJtxCollection` from synctools jtx Board API by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2447 * [jtx rewrite] Add ColorBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2448 * [jtx rewrite] Add CreatedBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2464 * [jtx rewrite] Add LastModifiedBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2465 * [jtx rewrite] Add handlers for `Sequence` and `UID` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2466 * [jtx rewrite] Add builder `GeofenceRadiusBuilder` -> `GEOFENCE_RADIUS` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2446 * [jtx rewrite] Add test for DirtyAndDeletedBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2468 * Migrate to new JtxCollection storage backend class by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2471 * [jtx rewrite] Add DtStampBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2467 * [jtx rewrite] Add SequenceBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2463 * [jtx rewrite] Add `AttendeesBuilder` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2472 * Add LocationHandler and GeoHandler with tests by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2479 * Add AttendeesHandler by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2481 * [jtx rewrite] Add OrganizerHandler with tests by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2482 * [jtx rewrite] Add OrganizerBuilder by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2469 * Add ResourcesHandler by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2480 * [jtx rewrite] Implement basic info handlers by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2474 * (Re)move legacy ical4android code and tests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2485 * Move UnknownProperty to mapping package by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2487 * Use test fixtures for shared test helpers by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2494 * [Contacts rewrite] Merge existing contact/group contracts into `AddressContract` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2489 * [Contacts rewrite] Move extra column definitions and companion object from `Local...` to synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2492 * [Contacts rewrite] Decouple `LocalAddressBook` from `AndroidAddressBook` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2493 * [Contacts rewrite] Decouple `LocalContact` and `LocalGroup` from base classes by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2503 * Close and deprecate AndroidContact and AndroidGroup by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2507 * Add RelatedToHandler with tests by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2501 ### ✏️ Other changes * Extract common Gradle configuration into `build-logic` module by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2276 * Fix DmfsTasksContract imports by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2364 * [jtx rewrite] Fix `main`/`from` confusion in builders by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2437 * Simplify TaskProvider by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2477 * Add code style into repo; plus some reformatted sample files by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2478 * Move app version info to centralized AppVersion object by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2495 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2511 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.14-ose...v4.5.15-ose
  • Jun 5, 2026 4.5.14-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.14-ose --> ## What's Changed ### 🪲 Bug fixes * Add VALUE=DATE for RECURRENCE-ID in all-day jtx Board items by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2297 * Fix alarm trigger logic and simplify code by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2341 * [jtxBoard] Add `VALUE=DATE` param to all-day `ExDate` tasks by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2347 * Fix `DateTimeException` in `DatePropertyTzMapper.normalizedDate` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2342 ### 🛠️ Refactoring * [synctools] DmfsTask: Remove legacy `ical4android.DmfsTask` by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2288
    More…
    * Unify `String.trimToNull` in core/synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2286 * [DmfsTasks rewrite] implement property row handlers by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2273 * DmfsTask: Migrate descriptive field builders to `VToDo` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2294 * Implement DmfsTaskList CRUD operations by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2300 * [DmfsTask] Create `DmfsTaskFieldHandler2` interface by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2306 * Add support for recurring tasks with DmfsRecurringTaskList by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2312 * Replace `DmfsTaskPropertyHandler` with `DmfsTaskFieldHandler` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2289 * DmfsTask: Migrate sub field builders to VToDo by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2309 * Migrate recurrence field builders to VToDo by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2308 * DmfsTask: Migrate status field builders to VToDo by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2307 * [DmfsTask] Update `ClassificationHandler`, `ColorHandler`, `CompletedHandler` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2311 * Unify `DmfsTaskListProvider` API with calendar API by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2322 * DmfsTask: Migrate main field builders to `VToDo` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2321 * Create draft for new API in DmfsTaskBuilder by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2330 * DmfsTasks: draft DmfsTaskHandler with deprecation of DmfsTaskProcessor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2333 * [DmfsTask] Update `GeoHandler`, `LocationHandler`, `OrganizerHandler` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2319 * [DmfsTask] Update `PercentCompleteHandler`, `PriorityHandler`, `RecurrenceFieldsHandler` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2336 * DmfsTask: Update `AlarmsHandler`, `CategoriesHandler` and `CommentsHandler` by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2343 * [DmfsTask] Update `RelationsHandler`, `SequenceHandler`, `StartTimeHandler` by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2337 * DmfsTask: Update `RecurrenceFieldsBuilder` to allow `main` task by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2335 * DmfsTask: Migrate title, UID, and status handlers to VToDo by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2345 ### ✏️ Other changes * Use (forked) snapshot version of ical4j by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2344 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2348 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.13-ose...v4.5.14-ose
  • May 30, 2026 4.5.13-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.13-ose --> ## What's Changed ### 🪲 Bug fixes * Move `AccountSettings` access in `CollectionScreenViewModel` off main thread by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2217 * `PushDistributorManagerTest`: fix mockking by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2215 * Update calendar color generation to use RGB format by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2221 * Create collection: treat 207 Multi-Status as error by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2223 * Fix `UnsupportedOperationException` when parsing inline attachment in JtxICalObject by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2275 * Work around ical4j/ical4j#880 with `TemporalAdapterCompat` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2280
    More…
    * Gracefully handle ical4j property and Task toString() exceptions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2279 * Avoid NullPointerException when VTIMEZONE is missing STANDARD/DAYLIGHT by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2285 ### 🛠️ Refactoring * Move account/user data handling into `synctools` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2218 * Migrate `DavCollectionRepository` to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2224 * Update imports to use `synctools` instead of `vcard4android` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2228 * Update bitfire-synctools and refactor vCard generation to use `StringWriter` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2241 * Update bitfire-synctools and replace direct `Contact` vCard parsing/generating by refactored methods by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2242 * Update bitfire-synctools and use new RawContactHandler/Builder by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2243 * Move contact group membership and unknown property support to synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2244 * Integrate synctools as gradle submodule by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2250 * [synctools tasks rewrite] Add RecurrenceFieldsHandler by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2274 ### ⚙️ CI/CD * Remove AVD caching and add `release` branch to test workflow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2225 ### ✏️ Other changes * Unify copyright notice in synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2251 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2287 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.12-ose...v4.5.13-ose
  • May 16, 2026 4.5.12-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.12-ose --> ## What's Changed ### Refactoring * Rename NOTIFY_LICENSE to more generic NOTIFY_VALIDATION by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2115 * Split SyncValidator by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2138 * Separate Push distributor management and Push subscription management by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2157 * Update DmfsTask import path in task-related classes by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2192 * Run `ShortcutManager.setDynamicShortcuts` on IO dispatcher by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2197 * Fix various compile warnings by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2204
    More…
    * `LocalAddressBook`: take `groupMethod` as argument by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2213 ### Dependencies * Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2064 * Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2080 * PushRegistrationManager: fix repeated sending of requests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2082 * Bump gradle-wrapper from 9.4.0 to 9.4.1 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2093 * [CI] Bump gradle/actions from 5 to 6 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2109 * Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2110 * Bump the app-dependencies group with 2 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2129 * Bump the app-dependencies group with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2136 * [CI] Bump softprops/action-gh-release from 2 to 3 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2135 * Bump com.google.guava:guava from 33.5.0-android to 33.6.0-android in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2147 * Bump the app-dependencies group with 11 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2163 * Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2182 * Bump the app-dependencies group with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2208 ### Other changes * Update ContactSyncManager to use IoDispatcher for I/O operations by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2066 * Add SUPPORT.md file by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2078 * Update README with improved content and formatting by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2081 * Fix PushRegistrationManager VAPID key check by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2088 * Add commented includeBuild configurations for debugging by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2096 * Remove dead code for jCard contact processing by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2079 * Enable lenient JSON parsing for improved compatibility by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2098 * Make lenientJson parser/serializer gc-able by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2101 * Fix pager state recreation on page count change by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2103 * AppTheme: fallback to OSE theme when Hilt Application is unavailable by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2102 * Derive debug info and WebDAV provider component names from package name by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2111 * Add gradle-daemon-jvm.properties and sync Java version by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2119 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2121 * Show number of (un)synced items in collection properties by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2114 * Add support for `preconfigurationUrl` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2122 * Update CI label from "github_actions" to "ci-cd"; use build cache for prereleases by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2128 * AccountSettingsScreen: use dividers like in app settings by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2131 * CollectionScreen: improve local item counting by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2124 * Provide login validation for app variants by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2125 * ExternalUris: add DAVx5 Select info page path constant by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2139 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2140 * Add "Keep Android Open" dismissible action card by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2132 * Use auto-sizing text for intro slogan by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2146 * Bind push distributor expiration to endpoint by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2154 * Mention issue-before-PR in CONTRIBUTING.md and PR template by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2158 * Add initial AGENTS.md for code reviews by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2160 * Bump version to 4.5.12-beta.1 and update Copilot instructions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2162 * Push settings screen: Minimum functionality by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2167 * Update compile SDK to 37 and AGP 9.x compatibility by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2177 * Push Settings: Add action card to set default UnifiedPush distributor by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2175 * Push Settings: Add push capability info card by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2178 * Update synctools to a version that uses ical4j 4.x by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2087 * Push settings screen: Reload on package changes by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2181 * Update synctools to fix R8 rules for release builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2191 * Rename ViewModels to `...ViewModel` suffix by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2187 * [Push] Integrate new Push settings screen by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2186 * Change debug info/WebDAV authority names to work around Google Play bug by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2201 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2202 * [Push] Update registration worker to actively select distributor by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2166 * Enable Kotlin annotation default target and clean up DI annotations by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2203 * Switch Kotlin annotation default target to `param-property` for core, too by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2212 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.10-ose...v4.5.12-ose
  • Mar 12, 2026 4.5.10-ose
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.10-ose --> ## What's Changed ### Refactoring * [UI] Properly provide color schemes over DI by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1966 * Reduce BuildConfig dependencies by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1969 * Replace BuildConfig.allowCustomCerts by DI by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1971 * Move OSE code to separate package by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1974 * Split app into `core` and `app-ose` subprojects by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1975 * Better DI modules by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1982
    More…
    * Add `SyncValidator` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1987 * Remove unused launcher colors by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2000 * Replace Weblate engage WebView with a button by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2016 * Revert "[DAVx⁵ Select] Allow customization of account UI" by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2043 ### Dependencies * Bump the app-dependencies group with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1985 * Bump the app-dependencies group with 6 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2007 * Bump the app-dependencies group with 6 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2028 * Bump androidx.compose:compose-bom from 2026.02.00 to 2026.02.01 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2046 * Update own lib dependencies by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2059 ### Other changes * [CI] Fix tests after splitting into subprojects by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1991 * [CI] Rename main branch references by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1993 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1986 * Split subprojects: fix ProGuard configuration by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1995 * [CI] Fix paths and configuration after subproject split by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1997 * Reduce HTTP User-Agent string by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1998 * Remove @rfc2822 as code owner by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2002 * Issue templates: add needs triage by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2008 * Add account to beforeSync validation by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2011 * Update label format in qualified bug report template by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2021 * [ExternalUris] Add link to DAVx⁵ Select section on davx5.com homage in by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2030 * [DAVx⁵ Select] Allow customization of account UI by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2035 * Fix `AppLicenseInfoProvider` binding by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2045 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/2050 ## New Contributors * @cketti made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/2045 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.9-ose...v4.5.10-ose
  • Feb 4, 2026 v4.5.9-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.9-ose --> ## What's Changed ### New features * Add "Backups reminder" intro screen by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1937 * Migrate translation contributors credits to Weblate by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1918 * Set `Calendars.IS_PRIMARY` to `0` by default by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1945 ### Bug fixes * Ignore test with flaky behaviour in CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1936 * Ignore `AccountSettingsMigration21Test.testCancelsSyncAndClearsPendingState` with flaky behaviour in CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1948
    More…
    * Cache SSLSocketFactories to allow okhttp HTTPS connection reuse by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1942 * Update synctools to process phone numbers with VALUE=URI by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1956 * Update synctools to correctly process tel: URIs in vCards by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1963 ### Refactoring * DmfsTaskList refactoring by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1934 * [WebDAV] Rewrite `OpenDocumentThumbnailOperation` to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1931 * [WebDAV] Rewrite COPY/MOVE (including rename) to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1940 * Update synctools by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1952 * [synctools] Tasks rewrite: Use reader/writer by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1959 ### Dependencies * Bump the app-dependencies group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1933 * Bump the app-dependencies group with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1944 * Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1961 ### Other changes * Remove Transifex config/scripts by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1924 * Update AGP to 9.0.0 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1929 * AGP 9.0: update Hilt, remove Kotlin Android plugin by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1935 * Use Ktor for Push registration by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1930 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1943 * Update CODEOWNERS by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1949 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1955 * Sync files with davx5 repo by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1958 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.8-ose...v4.5.9-ose
  • Feb 4, 2026 4.5.9-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.9-ose --> ## What's Changed ### New features * Add "Backups reminder" intro screen by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1937 * Migrate translation contributors credits to Weblate by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1918 * Set `Calendars.IS_PRIMARY` to `0` by default by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1945 ### Bug fixes * Ignore test with flaky behaviour in CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1936 * Ignore `AccountSettingsMigration21Test.testCancelsSyncAndClearsPendingState` with flaky behaviour in CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1948
    More…
    * Cache SSLSocketFactories to allow okhttp HTTPS connection reuse by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1942 * Update synctools to process phone numbers with VALUE=URI by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1956 * Update synctools to correctly process tel: URIs in vCards by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1963 ### Refactoring * DmfsTaskList refactoring by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1934 * [WebDAV] Rewrite `OpenDocumentThumbnailOperation` to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1931 * [WebDAV] Rewrite COPY/MOVE (including rename) to Ktor by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1940 * Update synctools by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1952 * [synctools] Tasks rewrite: Use reader/writer by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1959 ### Dependencies * Bump the app-dependencies group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1933 * Bump the app-dependencies group with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1944 * Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1961 ### Other changes * Remove Transifex config/scripts by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1924 * Update AGP to 9.0.0 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1929 * AGP 9.0: update Hilt, remove Kotlin Android plugin by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1935 * Use Ktor for Push registration by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1930 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1943 * Update CODEOWNERS by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1949 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1955 * Sync files with davx5 repo by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1958 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.8-ose...v4.5.9-ose
  • Jan 19, 2026 v4.5.8-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.8-ose --> ## What's Changed ### Bug fixes * Skip flaky test when not moving into anticipated forever pending sync state by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1872 * Assume initial state for test updatesOwnerAccount by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1874 * Nextcloud Login Flow: handle non-success status codes by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1878 * [CI] Don't require build cache secrets by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1900 * Return null when owner account does not exist to skip flaky test by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1908 * Decode `data` URIs of vCard 3 `PHOTO`s by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1921
    More…
    * Update dav4jvm to catch URLDecodeException when converting String to Ktor Url by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1923 ### Refactoring * LocalTask: Don't subclass DmfsTask by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1862 * LocalTaskList: Stop subclassing DmfsTaskList by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1882 * Rename dismissInvalidResource to dismissCollectionError by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1887 * Improve pagination by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1911 * Remove `r` from lang names as per Fastlane requirement by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1897 ### Dependencies * Bump the app-dependencies group with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1867 * [CI] Bump actions/cache from 4 to 5 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1886 * Bump the app-dependencies group across 1 directory with 5 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1902 * Bump org.unifiedpush.android:connector from 3.1.2 to 3.2.0 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1906 ### Other changes * [CI] Actually use configuration cache by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1891 * CodeQL: run for main branch PRs by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1904 * Update README and CONTRIBUTING by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1905 * Enable HTTP connection reuse for okhttp by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1907 * Fastlane app descriptions: use fr-FR translation for French by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1912 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1913 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1915 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1917 * Translations update from Hosted Weblate by @weblate in https://github.com/bitfireAT/davx5-ose/pull/1928 ## New Contributors * @weblate made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/1913 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.7.1-ose...v4.5.8-ose
  • Dec 9, 2025 v4.5.7.1-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.7.1-ose --> ## What's Changed ### Bug fixes * Delegate `fileName` into `DmfsTask.syncId` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1871 ### Refactoring * Use Ktor for Nextcloud Login Flow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1817 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.7-ose...v4.5.7.1-ose
  • Dec 8, 2025 v4.5.7-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.7-ose --> ## What's Changed ### Bug fixes * Log warning instead of throwing exception on multiple build calls by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1847 * Update synctools (ignores DTEND < DTSTART and inverts negative event durations) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1858 * Try to fix pending sync state test failures by using a hot flow by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1839 * Improve closing of content provider in verify account owner test by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1838 * Update synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1864 ### Refactoring
    More…
    * Update WebDAV property names by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1841 * Extract `ResourceDownloader` from `ContactsSyncManager`, add tests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1849 * LocalTaskList/LocalTask: Consume fields provided by synctools by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1811 * `HttpClientBuilder`: clarify documentation for `authDomain` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1857 ### Dependencies * Bump the app-dependencies group with 2 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1860 ### Other changes * Update AVD caching in CI workflow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1865 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.6.1-ose...v4.5.7-ose
  • Nov 27, 2025 v4.5.6.1-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.6.1-ose --> ## What's Changed ### Bug fixes * Comment out failing tests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1836 * Fix HTTP Client provider for contact resource sync from URL by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1844 ### Dependencies * [CI] Bump actions/checkout from 5 to 6 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1837 * Bump the app-dependencies group with 15 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1840
    More…
    **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.6-ose...v4.5.6.1-ose
  • Nov 24, 2025 v4.5.6-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.6-ose --> ## What's Changed ### New features * DebugInfo: Support viewing jtx Board resources by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1818 ### Bug fixes * Update `Calendars.OWNER_ACCOUNT` when renaming an account by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1751 * Support sync adapter pending sync indication on Android 14+ by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1676 * Ignore failing test: `testVerifySyncAlwaysPending_wrongBehaviour_android14` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1824 * Update synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1825
    More…
    * Fix DeadObjectException handling in SyncManager and Syncer by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1834 ### Refactoring * Simplify LocalResource interface by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1784 * Refactor SEQUENCE and UID handling on successful uploads by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1785 * Synchronize without `Event` data class by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1783 * Refactor sequence handling in calendar sync by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1789 * HttpClient: remove unnecessary `close()` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1792 * Merge HttpClient and HttpClientBuilder by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1795 * Explicitly integrate Conscrypt by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1796 * Only use cert4android when needed by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1802 * Refactor default reminder builder to dedicated class + unit tests by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1815 * Update dav4jvm to new okhttp package by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1786 * [Ktor] Add MustBeClosed annotation to buildKtor method by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1829 ### Dependencies * Bump the app-dependencies group with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1790 * Bump the app-dependencies group with 2 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1803 * Update dependencies, including our libs by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1822 ### Other changes * [Ktor] Allow building a Ktor client by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1810 * Lower default minimum log level from INFO to FINE by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1827 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.5-ose...v4.5.6-ose
  • Oct 28, 2025 v4.5.5-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.5-ose --> ## What's Changed ### New features * ExceptionInfoDialog: show explanation on http 405 and others by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1739 * Update http error message strings by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1745 * Update implementation to match guidelines by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1747 ### Bug fixes * Fix state matching logic in AndroidSyncFrameworkTest by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1708 * Use `IntentCompat` for account fetching from intent extras by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1731
    More…
    * Fix unreachable code possibly causing foreign key constraint violation exception by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1740 * Rename account on background thread by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1727 * Update Compose BOM and use `PrimaryTabRow` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1772 * Move debug info notification action to debug info screen button by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1730 ### Refactoring * Use SensitiveString for passwords by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1692 * Update dav4jvm by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1709 * Update AboutLibraries and other dependencies by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1760 * Migrate to `SecureTextField` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1191 ### Dependencies * Bump the app-dependencies group with 12 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1714 * Bump the app-dependencies group with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1724 * Update synctools to work around eventStatus=null update problem by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1728 * Bump the app-dependencies group with 12 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1732 * [CI] Bump gradle/actions from 4 to 5 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1736 * Bump the app-dependencies group across 1 directory with 13 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1744 * [CI] Bump github/codeql-action from 3 to 4 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1749 * Bump the app-dependencies group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1778 ### Other changes * Remove duplicate lines in .gitignore by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/1725 * Update synctools (new uses event builders/processors) and Kotlin/KSP by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1726 * Add CODEOWNERS file by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1729 * Update Kotlin and KSP versions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1776 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.4-ose...v4.5.5-ose
  • Sep 13, 2025 v4.5.4-ose Release page →
    <!-- Release notes generated using configuration in .github/release.yml at v4.5.4-ose --> ## What's Changed ### New features * Change "Account doesn't exist" toast message to "Account has been removed" for deleting accounts by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1650 * Using new suggested icons for tabs by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1657 ### Bug fixes * Fix bottom bar color on custom tabs by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1640 * Make "sync pending" work in AccountsScreen and AccountScreen by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1615 * [Sync Framework] Android 14+: Cancel forever pending address book account syncs by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1643
    More…
    * Fix NPE when `Event._ID` is larger than `Integer.MAX_VALUE` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1661 * Don't disable sync-ability of address books when set to manual only by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1662 * Handle null cases for `Events.DIRTY` by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/1663 * Disable pending sync indicator on Android 14+ by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1689 * Fix KotlinNotImplementedError in LocalGroup update method by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1696 * Update synctools to fix #1701 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1702 ### Refactoring * Rename CollectionListRefresher to CollectionsWithoutHomeSetRefresher by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1644 * Update synctools for events as `Entity` and `EventAndExceptions` by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1605 ### Dependencies * [CI] Bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1664 * [CI] Bump actions/setup-java from 4 to 5 by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1672 * Bump the lib-dependencies group across 1 directory with 9 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/1695 ### Other changes * Update to Gradle 9.0 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1647 * Update dependencies to latest versions (including AGP) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1665 * Add groups section to dependabot configuration by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1677 * Add comments on foreign key constraint enforcement by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/1675 * Update synctools by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1690 * Configure Dependabot for Gradle dependencies by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/1680 **Full Changelog**: https://github.com/bitfireAT/davx5-ose/compare/v4.5.3-ose...v4.5.4-ose