alanvardy / tod

An unofficial Todoist command line client written in Rust
MIT License
101 stars 9 forks source link

Handle duration and task timebox times #465

Closed stacksjb closed 5 months ago

stacksjb commented 1 year ago

Todoist is adding task duration to the official api (https://groups.google.com/a/doist.com/g/todoist-api), and I'm extrememly excited because this means I can do timeboxing when I do planning natively (instead of seperately on Google Calendar)

I'm thinking forward about the best way to do this - my workflow is to assign task durations when I'm processing out an inbox (doing daily review/planning), so one possible way would be to add this to part of the "process " or as part of the "project schedule" command workflow.

On the other hand, it might make more sense to have a "timebox" parameter

I think it would make most sense to have it as part of the project schedule, with a default of either no duration or a configurable setting.

Thoughts? Does anyone else use timeboxing when planning?

alanvardy commented 1 year ago

This is exciting, and I hope it also means they plan to build even more calendar-like functionality into Todoist.

I want to create a tod project timebox command that iterates through a project and adds durations. And add a duration flag to tod task create.

Have you ever used the GitHub CLI? Because we are getting so many parameters, I want to start apeing their process. Just add the title and project, and have a way to multi-select which other parameters I would like to specify.

I use Google Calendar to time block and Todoist to keep track of tasks. Generally, I will time block a chunk of time to work on a project and clear out as many tasks as possible by priority. I would love to use Todoist more for this and Google Calendar less, though I will likely only be able to get rid of it partially.

stacksjb commented 1 year ago

Keep in mind that durations are only supported for tasks with a due time (it will work backwards from due timestamp).

So, at least for me, it makes sense to assign duration at the same time or directly after assigning due time, as I would block out my day based on what I expect to get done, when, and how long it will take (filling out my day(s) forwards or backwards.)

This would be slightly different from how I have done it previously (where I have often assigned task duration onto a task before actually scheduling when I would do it), but required due to the new limitations.

stacksjb commented 1 year ago

I could see two workflows:

-Assigning due dates when scheduling -Then assigning timestamps, and duration, on any task as part of timebox command

Or

-assigning both as part of timebox command

alanvardy commented 1 year ago

Oh interesting. I think that there will be many people using Todoist that won't want to timebox but still want to set due dates. So perhaps the second option is best.

It's a little early here and I haven't had coffee yet, did I get it right? :laughing:

stacksjb commented 1 year ago

This sounds great!

I also will need to find out if datetime due is necessary, or if just due date is acceptable.

One last thing to add would be adding duration to "tod task next" output (when present).

stacksjb commented 5 months ago

Oh interesting. I think that there will be many people using Todoist that won't want to timebox but still want to set due dates. So perhaps the second option is best.

  • tod project schedule just does due date
  • tod project timebox does schedule for any without a due date, and then does duration for all those with a due date but no duration
  • Add a duration flag to tod task create

It's a little early here and I haven't had coffee yet, did I get it right? 😆

It's early here and I haven't had coffee yet, but I drooled when I read "tod project timebox" 🤤

alanvardy commented 5 months ago

Yes, looks like for something to have a duration it needs to have a start time (and a date)

alanvardy commented 5 months ago

Handled in this PR: https://github.com/alanvardy/tod/pull/789