package icon

Cfait

Powerful, fast and elegant TODO / task manager. (CalDAV and local)
New in version 409
## [0.4.9] - 2026-01-28

### 🚀 Features

- *(store)* Group tags (and sort them) in a case-insensitive way in the tags list (requested by Christian Meixner)
- Add a (weighted) random task selector ( https://codeberg.org/trougnouf/cfait/issues/17 )
- *(randomizer)* Only pick from is:ready tasks
- *(sorting)* Sort done/canceled tasks by most recently done/canceled first
- *(core)* Send user agent to CalDAV server (suggested by Geoffrey Frogeye)
- *(android)* Add export all data debug option
- *(cor
Take control of your TODO list.



Cfait is designed for speed and stability using Rust, it puts you in control of your data with a local-first approach that syncs seamlessly across your devices.



Why Cfait?

  • Open Source & Cross-Platform: Use Cfait on Android, Linux, and Windows. Your tasks adhere to open standards (CalDAV and iCalendar), not walled gardens.

  • Syncs Everywhere: Fully compatible with Nextcloud, iCloud, Radicale, Xandikos, and other standard CalDAV servers.

  • Offline First: Optimistic UI updates mean you never wait for a server response. Use the persistent "Local" calendar for offline tasks and migrate them to a server later.

  • Smart Input: Add tasks naturally. Typing "Buy cat food !1 @tomorrow @@grocery_store ~15m" automatically sets the priority, due date, location and duration.




Productivity Features

  • GTD Workflow: Mark tasks as Needs Action, In Process (>), Cancelled (x), or Done.

  • Hierarchy: Create sub-tasks, promote children, and organize nested lists.

  • Dependencies: Link tasks using "Blocked-by" or "Child-of" logic (RFC 9253).

  • Tags & Aliases: Organize with hierarchical tags (e.g., #work:backend). Create inline aliases (e.g., #shed:=#home_improvement and @home_improvement:=@@home) for rapid filing.

  • Sane Sorting: Tasks are sorted by Status > Start Date > Due Date > Priority.




Smart Syntax Guide


When adding or editing a task, use these shortcuts:

  • !1 to !9: Set Priority (1 is Critical, 9 is Low).

  • @date: Set Due Date (e.g., @tomorrow, @2025-12-31, @2w, @in two weeks).

  • ^date: Set Start Date (hides task until date).

  • ~duration: Estimate time (e.g., ~30m, ~2h).

  • @every X: Set Recurrence (e.g., @daily, @every 2 weeks).

  • @@loc: Set Location (e.g., @@home, @@"hardware store").

  • url:http://perdu.com: Attach a URL.




Advanced Search


Find exactly what you need with powerful filters:

  • is:active / is:done: Filter by status.

  • ~<30m: Find tasks taking less than 30 minutes.

  • !<3: Find high-priority tasks.

  • @<today: Find overdue tasks.

  • @@home: Find tasks at a specific location.




Support the Developer


If you enjoy using Cfait, please consider supporting its developer:

  • 💳 Liberapay: https://liberapay.com/trougnouf

  • 🏦₿ Other payment details are available within the app's "Help & About" screen or on the project website.




Community & Source


Cfait is developed by Benoit Brummer (Trougnouf) and released under the GPL3 License.



Source code, desktop versions, and issue tracking available at: https://codeberg.org/trougnouf/cfait

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 409 (409) suggested Added on Jan 29, 2026

    arm64-v8a armeabi armeabi-v7a mips mips64 x86 x86_64

    This version requires Android 9.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • Schedule alarms or event reminders
      This app can schedule actions like alarms and reminders to notify you at a desired time in the future.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.trougnouf.cfait.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 34 MiB PGP Signature | Build Log

  • New in version 408
    ## [0.4.8] - 2026-01-20

    ### 🚀 Features

    - *(tasks)* Implement time estimation ranges (e.g. ~10m-3h) with compatible search logic
    - *(gui)* Initial work on keyboard shortcuts ( https://codeberg.org/trougnouf/cfait/issues/9 )
    - *(gui)* Towards keyboard shortcuts
    - *(gui)* Expandable description field with scroll bar
    - *(android)* Parse new alias definitions in task input bar
    - *(gui)* Double click to edit a task ( https://codeberg.org/trougnouf/cfait/issues/9 )
    - *(tui)* Improved task editing exp
  • Version 408 (408) - Added on Jan 22, 2026

    arm64-v8a armeabi armeabi-v7a mips mips64 x86 x86_64

    This version requires Android 9.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • Schedule alarms or event reminders
      This app can schedule actions like alarms and reminders to notify you at a desired time in the future.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.trougnouf.cfait.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 31 MiB PGP Signature | Build Log

  • New in version 407
    ## [0.4.7] - 2026-01-13

    ### 🚀 Features

    - Show start date (if not yet started) in tasks list
    - Add ^@ syntax (sets both start and due date(time)). sorting: if parent is canceled/paused/done, use that for the whole group
    - Implement multi-select filtering and focus for tags & locations, make the clear icon always visible, improve UI and make it consistent between GUI and Android
    - feat: implement multi-select filtering and focus for tags & locations and make the clear icon always visible on And
  • Version 407 (407) - Added on Jan 14, 2026

    arm64-v8a armeabi armeabi-v7a mips mips64 x86 x86_64

    This version requires Android 6.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • Schedule alarms or event reminders
      This app can schedule actions like alarms and reminders to notify you at a desired time in the future.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.trougnouf.cfait.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 28 MiB PGP Signature | Build Log