How to handle time blocking in ToDoList (extend task recurrence features)

Requests for additional software features

Moderators: abstr, Niko

User avatar
abstr
Site Admin
Posts: 369
Joined: Sun Jul 28, 2019 12:22 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by abstr » Fri Mar 05, 2021 7:03 am

To move forward there needs to be acceptance that (as far ahead I'm able to see) there will only be 'tasks' as the principle element, so we need to work within this constraint.

On the one hand one can see this as a terrible restriction, but on the other hand the most creative inventions typically arise out of such situations.

So what I'll do is to re-read that linked article (aka, read it properly) and see if any ideas emerge.

Off the top on my head, and now that 'future occurrences' are visible in 8.1, I'm wondering whether some form of recurring task with a fixed lifetime might work.

eg. Let's say you want to time-block Monday morning into 9-11 and 11-13.

For that you create two weekly recurring tasks with the appropriate start and due dates/times, and mark them as 'auto-completing' so that as soon as the due date/time passes they get closed and the next occurrence is generated.

Since this would be a 'core' feature, the app would take care of the auto-completion and 'Calendar' and 'Week Planner' views 'should just work' (despite the teething issues with day-rollover that we been experiencing).

Djo
Posts: 138
Joined: Mon Sep 09, 2019 3:02 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by Djo » Fri Mar 05, 2021 10:17 am

Glad you are willing to think about this!

I was thinking of this lately, and I have some rough ideas I'd like to share. These are from a "naive" perspective (average user, not developer), so please be tolerant.

First, what I call "time blocking" in TDL, and why is it needed:
In many cases, the range "start date to due date" of a task doesn't match the hours we'll actually work on this task.
Example1: I have to repaint my leaving room. The task starts tomorrow and has to be completed in two weeks. I won't work full time on this task but only on some days the afternoon.
Example2: I plan to work on this specific parent task (= project / subject) that is due in two months, every morning between 8am and 10am but not on Wednesday.

So there are some tasks to do, with start and due dates set (or possibly not set), and we want to organize our time with these tasks.
A time block = a time range during which we plan to work on a specific task.
Several/many time blocks can be necessary to complete a task.

Time blocks are not the same as a recurring task. With a recurring task, start and due dates are rescheduled each time an occurrence has been completed, so each occurrence is in fact a new task. With time blocking it's a unique task that will be undertaken in tranches.

PS: it may be possible to find a better term than "time block" to described what I'm talking about. Personally I don't see any better term. Time blocking is a concept so well common (search on the Internet and YouTube and you'll see). So I'll stick with it.

How to implement time blocks in TDL?
A logical approach would be by the addition of a new task attribute named... (you guessed it) "Time Blocks". This attribute would store, for each task, the time blocks that have been set for the task.
The corresponding edit field (control) would permit to display the list of time blocks already set, and add, edit or delete a time block.

The management of time blocks with the edit field from the Task Tree or List View (for example) will probably not be a great experience. In these views the time blocks will be editable but not really exploitable (that is, displayed in an interesting way). But in time/planning management plugins (in particular the Week Planner), where time blocks will be manageable graphically, this is where this new attribute could be exploited in useful ways.

I will possibly continue later with ideas on the Week Planner and time blocks. But now I have to know if ideas here are relevant and if it worth continuing in that direction. How this new attribute would be managed already raises a lot of questions.

User avatar
abstr
Site Admin
Posts: 369
Joined: Sun Jul 28, 2019 12:22 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by abstr » Mon Mar 08, 2021 2:01 am

Let's forget everything up until this point and start again with the basics.

Let's assume that:

1. This is a 'Week Planner' feature only
2. A time-block is an entity of some sort having a 'name', a 'day-of-the-week', and 'start/end' times.
3. We have created the necessary UI to create time-blocks
4. There can be any number of time-blocks created
5. Each task can have one or more time-blocks associated with it (this is equivalent to 'each time-block can have one or more tasks associated with it)

Now the questions I need answered:

A. What does it mean for the task to have a time-block associated with it?
B. How does the time-block modify the task's behaviour?
C. What happens when a time-block is modified after it is assigned to a task?

ps. Please don't ask me to go and read some external resource. It's your job to explain it to me :)
pps. Please stick to the assumptions and questions I've identified for now

User avatar
abstr
Site Admin
Posts: 369
Joined: Sun Jul 28, 2019 12:22 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by abstr » Mon Mar 08, 2021 7:09 am

I think I'm understanding this a bit better and it seems to me that 'Time-Blocking' is primarily an organisational technique that allocates time to be spent on 'types of things' eg. Meetings, emails, reading, etc, rather than on the things themselves.

Your 'take' on this, as I understand it, is then to be able to assign specific tasks to each time-block so that tasks to be worked on during a similar time-period are grouped together allowing simple selection and time-tracking.

Summary of my current understanding, where 'Mon.1/2/3' is just a placeholder for a user-definable name:
timeblocking.png
timeblocking.png (30.24 KiB) Viewed 322 times

Djo
Posts: 138
Joined: Mon Sep 09, 2019 3:02 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by Djo » Mon Mar 08, 2021 4:39 pm

abstr wrote:it seems to me that 'Time-Blocking' is primarily an organisational technique that allocates time to be spent on 'types of things' eg. Meetings, emails, reading, etc, rather than on the things themselves.
Well, you're right, time blocking is often presented per type of tasks and not per task. Time blocking is usually done in a calendar that is not linked to a task management program (just because the huge majority of them don't handle it), so it certainly explains why it is displayed in calendars as "types of things", as quite broad topics and not with specific tasks. But it could, why not? In the article I shared above, Time blocking is defined as: "Dividing the day into blocks of time with each block dedicated to accomplishing a specific task or activity and only that specific task or activity."

abstr wrote:Your 'take' on this, as I understand it, is then to be able to assign specific tasks to each time-block so that tasks to be worked on during a similar time-period are grouped together allowing simple selection and time-tracking.
I use currently the term "Time Blocking" to describe a feature in TDL that would allow to divide a task into several blocks that could be placed in the Week Planner. In my mind, any task could be divided: the parent tasks, child tasks, generic tasks created by the user specifically for his time blocking needs ("Meetings", "emails", "Fitness" etc).
I don't say it is the right way to approach Time-Blocking in TDL, I say this is my way to approach it.

For information, the term "Time-Block" that we use now to describe a time range during which we're going to work on a task is in fact not explicitly used in the articles about the Time-Blocking methodology.

A former idea I've written previously on this topic is maybe more in line with the idea of time blocking "per types of things":
Imagine that in the TDL calendar [Week Planner] we could create and organize "time blocks", which would be new object types with a search query associated to them (opening the Find Tasks dialog?). By double-clicking on a time block this would execute the associated search query and then we would see the task(s) we have to work on during this time block. So we could create time blocks to work on a specific task, on all the due tasks, on the tasks of a specific project, of a specific category, tag, etc.
Anyway, with the "all is a task" approach of TDL (I respect that) this idea is probably not relevant.

abstr wrote:to be able to assign specific tasks to each time-block so that tasks to be worked on during a similar time-period are grouped together allowing simple selection and time-tracking.
Well, I hadn't see time-blocks exactly that way. With your mock up, it seems time-blocks could be some pre-defined slots in the week planner where tasks could be put in (for example two slots in the morning and two slots in the afternoon). So, if I understand, in you vision it would be the days too that would be divided in blocks. That is quite interesting... As for now I had only considered time-blocks as "pieces of tasks", time ranges that could be set more or less freely in the Week Planner, and not in fixed slots.

A quick view of the idea I have about time blocks in the Week Planner:
https://i.ibb.co/37JTZSz/Week-Planner-Time-Bloking.png

I don't say it is necessarily the good approach.

I haven't considered either the task grouping aspects, with simple selection and time-tracking, which looks like the idea of time batching (a time-blocking variation, see the article above).
Last edited by Djo on Mon Mar 08, 2021 7:53 pm, edited 5 times in total.

Djo
Posts: 138
Joined: Mon Sep 09, 2019 3:02 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by Djo » Mon Mar 08, 2021 5:28 pm

abst wrote: Now the questions I need answered:
A. What does it mean for the task to have a time-block associated with it?
B. How does the time-block modify the task's behaviour?
C. What happens when a time-block is modified after it is assigned to a task?
It is not easy to answer these questions at this stage of the thinking, because we're maybe not in line on what a time-block is. Is a time-block a time range "freely" set in an additional task attribute, or is it a fixed slot in the week planner where tasks could be put in? Well, in both case I assume this will be stored in a task attribute, so let's try to answer...


- TB will be of course optional. Most of the tasks will not have any TB set (so the attribute will be empty). The addition of the TB feature will in fact be totally transparent and without changes for users who don't use the Week Planner (if we assume TB will be only used in the WP).

- A TB associated to the task means only that the TB will appear in the Week Planner. TB will be only for planning our time in the WP. They will have no impact on current calculations of other attributes (except start and due dates and times), in particular no change on Time Spent and Time Estimate. This is a conservative approach.

- A question is how TB will work with Start and Due dates and times. I suggest these rules:

1) All the TB of a task must always be included inside the task start and due dates if they are set. A TB can't start before the task start date and time, and can't end after the task due date and time. Otherwise this wouldn't be logical.

2) When a TB is added while the task start date is not set, the task start date is automatically set to match the TB start date.
This means a task with a TB has always a start date.

3) When a TB is added and starts after the task start date, the task start date is not changed

4) When a TB is added and starts before the task start date, the task start date is automatically updated to match the TB start date (if allowed by task dependencies, otherwise the TB is not allowed)

5) When a TB is removed the task start and due dates are kept and not changed

6) When a TB is added and the task due date is not set, the task due date remains not set.

7) When a TB is added and ends after the task due date, the TB is not allowed

8) When the task start date is moved forward while there are existing TB that start before the new task start date, then there could be a warning dialog here: "What do you want to do: (0) Cancel the start date modification (1) Remove the TB that are before the task start date and apply the start date modification (2) Remove all the TB and apply the start date modification (3) Offset all the TB...
Same when the task due date is move backward and existing TB end after the new task due date.

9) When a task start date is removed while TB exist, there could be a warning dialog here: "What do you want to do: (0) Cancel the start date modification (1) Remove all the TB and remove the task start date.


- We'll have to think too what will occurred when:

* A task with TB is copied. Are the TB copied too?
* A recurring task with TB?
* An offset of task dates when TB are set?
* ...

Probably this could be managed with messages / dialogs. Or a more radical approach (delete all the TB...).


This is only rough ideas. I'm not sure it is the right approach.

User avatar
abstr
Site Admin
Posts: 369
Joined: Sun Jul 28, 2019 12:22 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by abstr » Tue Mar 09, 2021 12:24 am

>> I use currently the term "Time Blocking" to describe a feature in TDL that would allow to divide a task into several blocks that could be placed in the Week Planner.

That is completely different to all the references you have been pointing me too!

I don't think I can implement a feature that has no meaning in the broader community, as there is no way to educate people on what it does and how it works. You would be the only person using it and that's not enough incentive for me as it looks to be a huge amount of work for limited benefit. Essentially it's an entirely new view that just happens to use vertical columns like the Week Planner.

So, unless you can adapt your ideas to better fit the general consensus about what 'Time Blocking' means, or you can find references on the Internet to show that what you are proposing is understood by more people than just yourself, I can't see myself ever implementing it.

Sorry.

ps. The idea of dragging from the horizontal top section on to the vertical columns is already implemented in 8.1.

Djo
Posts: 138
Joined: Mon Sep 09, 2019 3:02 pm

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by Djo » Tue Mar 09, 2021 7:12 am

I see your point. I will pursue my reflections...

user0x
Posts: 7
Joined: Sat Aug 03, 2019 3:01 am

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by user0x » Wed May 05, 2021 3:02 am

Djo wrote:
Tue Mar 09, 2021 7:12 am
I see your point. I will pursue my reflections...
Hey!! Could you find a solution? I too am searching for this.

Ryan
Posts: 121
Joined: Mon Aug 03, 2020 2:47 am

Re: How to handle time blocking in ToDoList (extend task recurrence features)

Post by Ryan » Wed May 05, 2021 3:57 am

Hi Djo

Seems to me what you are talking about is recurring tasks that don't necessarily recur periodically but at an individually set sequence of start and due dates/times for each recurrence.

I implemented something similar to this in the previous "task manager" that I used. You could assign any number of random dates and times to a task and each occurrence of the task would appear as a block on the calendar where they could be dragged or modified visually individually in various ways. So a single task could appear multiple times on the calendar at any random date and time the user set. However... I like TDL much better as a task manager because the last one I used was actually a general purpose outliner that I shoehorned into a kind of task manager. It is not as good for this purpose as TDL.

I have not explored custom date attributes very much yet in TDL. Are these custom dates displayed in the Calendar? If so, could you create several custom date attributes: "First block," "Second Block," etc. representing several blocks for each task that would show up on the Calendar? I don't think it would be a full solution even if it works, but it might be useful in some way if that is possible. Although tedious to set up many dates for the same task.

Post Reply