taskwarrior icon indicating copy to clipboard operation
taskwarrior copied to clipboard

Add time pools

Open snehal-shekatkar opened this issue 2 years ago • 5 comments

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.

snehal-shekatkar avatar May 04 '23 20:05 snehal-shekatkar

This should be largely doable in an external app via hooks, I think.

dathanb avatar May 06 '23 00:05 dathanb

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 avatar May 06 '23 07:05 snehal-shekatkar

@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 avatar May 06 '23 15:05 ryneeverett

@ryneeverett Thanks for the clarification. I thought @dathanb was talking about using Timewarrior.

snehal-shekatkar avatar May 07 '23 08:05 snehal-shekatkar

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.)

dathanb avatar May 08 '23 17:05 dathanb

We're all just fans :)

djmitche avatar May 27 '24 20:05 djmitche