Add time pools
I often add too many tasks with realistic individual deadlines, but when considered together, they become unrealistic. For instance, I might have three tasks that require 4 hours each and set the same deadline for all three. However, I only have 8 hours of office time tomorrow, making it impossible to meet all three deadlines.
To address this issue, we can create "Time Pools" such as "Personal Time Pool" and "Office Time Pool." I can allocate the available time to each pool on any given day and estimate the time needed for each task (currently using UDA for this). If I attempt to set a deadline too soon while adding a new task, the system should prompt me that there is no available time until a particular day, depending on which pool the task belongs to.
Although this approach may seem complicated, it can be immensely helpful for setting realistic deadlines that consider available time.
This should be largely doable in an external app via hooks, I think.
This should be largely doable in an external app via hooks, I think.
Perhaps a guide to doing that could be added then? I really think that this is an extremely important thing to consider in the roadmap.
@snehal-shekatkar It seems like you may be misreading "largely doable" as "trivial". I think @dathanb is suggesting that an app would have to be developed which may be relatively straightforward but not a trivial amount of work.
@ryneeverett Thanks for the clarification. I thought @dathanb was talking about using Timewarrior.
Thanks @ryneeverett , that's definitely what I meant. A lot of this can be done right now with the hooks that Taskwarrior already supports. e.g., if you assume X hours of time available per work day, and have a UDA representing the amount of hours a task is going to take, a hook that would reject (or warn on) task additions or modifications that violate time pool limits wouldn't be too hard, which IMO speaks well of taskwarrior.
What I don't think would be so easy to do through taskwarrior would be things like custom reports based on time pools. You could task execute <report name> to invoke the external app to run the report, but the external app would be have to fetch the relevant information itself -- so I think there's more Taskwarrior could do to help there. e.g., an extension protocol that would let taskwarrior provide relevant task data (e.g., based on current context and/or command line filters) to the external app; similarly it'd be helpful for Taskwarrior to pass config information to the external app so extensions can lean on taskwarrior for configuration instead of having to manage its config entirely itself.
IMO, treating this use case as a set of requirements or feature requests for taskwarrior extensibility and trying to enable a rish extension ecosystem would be a better long-term approach for taskwarrior than adding this specific case as a core feature.
(Caveat: I'm not a taskwarrior maintainer or part of the team, just a fan, so I'm definitely not speaking on behalf of the taskwarrior team here.)
We're all just fans :)