todotxt / todo.txt

‼️ A complete primer on the whys and hows of todo.txt.
GNU General Public License v3.0
2.33k stars 102 forks source link

Why is creation date more important than due date? #14

Closed marcus-grant closed 3 years ago

marcus-grant commented 6 years ago

The way the format is now, and by the way I've always loved the idea of it, but I do have an issue with the only required date on each line being the creation date. When I sort my tasks, the creation date isn't terribly important. I have tasks that are categorized as someday that have been there for months. What's much more important are the things that need doing now, not things I thought of doing a long time ago. What I look at every single day is when a task is due. So before making a proposal for version 2 which a lot of people are doing here recently I'd like to know what the rationale behind putting so much importance on creation date over due date is? And suggest two of many possibilities that would elevate the importance of due dates without discarding previous todo list information.

Option 1: Creation dates just aren't that important, replace them with due & completion dates

Incomplete Tasks without due dates:

(A) Do something
Do something else created:2012-12-08

Incomplete Tasks With Due Date:

(A) 2012-12-12 Do something 
2012-12-12 Do something else created:2012-12-08

Complete Task With Completion Date Replacing Due Date:

x 2012-12-13 Do something 
x 2012-12-13 Do something else created:2012-12-08

Option 2: Allow two dates for both complete & incomplete tasks because creation dates are as important as due dates

Incomplete task without creation or due dates:

Do something unimportant
(A) Do something important

Same task with creation dates:

2018-02-10 Do something unimportant
(A) 2018-02-10 Do something important

Same tasks with due dates & creation dates:

2018-02-14 2018-02-10 Do something unimportant
(A) 2018-02-14 2018-02-10 Do something important

Same tasks when marked complete:

x 2018-02-15 2018-02-10 Do something unimportant
x 2018-02-15 2018-02-10 Do something important

Personally I prefer option 1 because it is just a cleaner implementation, and easier to read. If creation date is important enough to track, then I'd argue it's not as important as due date and can always be tracked using a key:value tag like created:2018-02-10. But if both are to be treated as important requirements option two works and is somewhat backwards compatible because although older apps will read the creation date as part of the task description when they're incomplete, it doesn't discard any information and the tasks would still be sortable by the creation date by sorting through the first word of the description tag.

But ultimately I'd like to see a specification that treats a todo list more like a todo list, by giving due dates at least as much if not more importance than creation dates. Creation date is almost metadata in a sense because it's information you use when analysing how well you're getting things done in a timely fashion, not data that helps you focus on what's important now. And I'd like to know why creation date was given so much relative importance when the spec was created and how creation dates are important to different developers working with this format?

Lowentwickler commented 5 years ago

Creation and completion are timestamps from software, while start date and due date are user-defined and task-related stuff. Completion and creation are physically characteristics of any task. Any task was created at some time, and was completed at some time if it was. But format is designed to be user friendly and it means that many people could never fill out dates (just like me). And that is why both fields are optional and even completion date is not an alternative for an x character.

All task related stuff goes to description.

Speaking about sorting, it is a task for a client. I don't think it does matter for software where to get data from to sort it out.