Hello all, I just released v0.1.7 of Cfait, a CalDAV task / TODO manager with most of the features I’ve always wanted and I’m starting to find it usable and enjoyable so I think it’s time to announce it :) I’ve finally starting organizing my todo list the way it should always have been.

Some of the features I’m particularly happy about are the sane sorting (first by date then by priority), the tags / categories navigation (with a choice of AND or OR), and the ability to link tasks (e.g. a parent task or (a) task(s) blocking (an)other task(s), this is the only thing I wanted from a tool like Jira).

I hope you all enjoy it too :-)

It has both GUI and TUI, I try to keep them on the same level. (Except the config. file which has to be written manually when using the TUI)

So far I’ve only tested it on Arch Linux (there’s an AUR package: cfait / cfait-git) with the Radicale CalDAV server but I assume it will work on any distribution (there’s even an experimental Windows build under releases) and server, feel free to let me know what works or not.

Source code, .deb (and .exe) builds, screenshots, features list and README on https://github.com/trougnouf/cfait (also available as a rust crate: https://crates.io/crates/cfait )

Don’t forget to backup your tasks list before trying it.

  • trougnouf@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    3 hours ago

    v0.2.0 is out :)

    New features include the ability to set an estimated task duration, support for ongoing and canceled tasks, more powerful search (by tag, due date, task duration, completedness, and of course by name), and the TUI is more robust to external changes.

  • bremen15@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 hours ago

    You mention .debs, and that they are on GitHub. I don’t see any. Could you provide a deep link, perhaps?

  • bremen15@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 hours ago

    Excellent work. I am trying this out.

    I am interested in cross-device use, such as ticking off items on my Android device. In the other thread, I see that you use Tasks on Android, and I am curious about your workflow. Could you please explain how this works across devices?

    • trougnouf@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 hours ago

      Thanks :)

      It’s as simple as ticking off items (and adding new ones). The categories in Tasks (#tags in Cfait) and child/parent relationships are compatible (it’s all the same iCalendar standard). Tasks doesn’t understand the Blocked-by relationship but the tasks still appear.

      You just need a CalDAV server to get going. I use Radicale because it’s lightweight and single-purpose so unlikely to break (and a self-hosted Wireguard VPN because I don’t have a static IP at home). For Android you also need an app to synchronize with the CalDAV server (Tasks doesn’t do it alone), I use DAVx5 (It’s all on F-Droid).

  • dbkblk@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 day ago

    Hey, thank you for this! I’ll test it later. I was planning to eventually do the same thing (and in rust too).

    Thus said, something that I always find impractical with simple todo lists, is that you cannot use it with subtasks. For example, if I want to manage a large project with it, I would need to create a task “Refactor this worker”, and add subtasks “Delete old function”, “Handle the new property”, etc.

    I cannot flatten the subtasks in the list because their names wouldn’t be explicit, and making their names explicit would make it a burden to read, and it would make it difficult to follow the main task progress. How do you handle such things with your software?

    • trougnouf@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      1 day ago

      My pleasure! :)

      Subtasks is the main reason I made this program. I have it in the “Tasks” Android app and I wanted it on desktop too.

      The main way it’s implemented is clicking on Link next to a parent task in the GUI (or selecting yank in the TUI), then selecting Child on another task makes it a sub-task of the parent.

      I’ve also implemented part of RFC 9253 Support for iCalendar Relationships (Blocked-By logic); after selecting Link/yank on a parent task, there is also the option to select Block on another task and the blocked task appears grayed out and lists the tasks that are blocking it in its description. This is something I haven’t seen in any other CalDAV tasks software and the only thing I would have missed from something like Jira.

      And of course one can filter by tags/categories (with AND or OR) so only a (sub-)project is shown (and I’ve added tag aliases, e.g. #refactor_this_worker could autocomplete to #refactor_this_worker, #program_name, #software_development, to make that more convenient).

      Parent/child: Blocked-by: