dmfs / opentasks

A task app for Android
Apache License 2.0
939 stars 248 forks source link

Directly set task duration, and display it #1044

Open Toover opened 3 years ago

Toover commented 3 years ago

In order to be able to take into account the time to spend / spent on a task, I would like to be able to edit their duration without having to specify a start date or end date (i.e. unlike https://github.com/dmfs/opentasks/issues/197).

Duration is indeed part of the CalDAV specification https://datatracker.ietf.org/doc/html/rfc4791 (as well as iCalendar's https://www.rfc-editor.org/rfc/rfc8607.html, see also https://www.grokkingandroid.com/recurrence-rule-and-duration-formats/ for how to write the duration format), but OpenTasks does not use it.

Such feature would also give the opportunity to make more advanced apps for planning tasks.

dmfs commented 3 years ago

The time to spend and the time spent are two very different issues. The latter one is indeed solved by the scheduling extensions you mentioned. They allow each participant to "book" the time they spent on the task. The former issue is solved by the Task Extensions to iCalendar draft, which introduces a new property ESTIMATED-DURATION. I've indeed planned to support that and it should be easy to implement in Opentasks. However, I wanted to wait until the draft has become a proposed standard to get client sync support as well.

Toover commented 3 years ago

I like this fresh proposal! I agree my precise use case would be best supported by ESTIMATED-DURATION.

But what about the support for DURATION today? Shouldn't it be supported, shown and editable, anyways? I could accommodate to that in the meantime.

dmfs commented 3 years ago

DURATION has very clear semantics: DTSTART + DURATION = DUE. Hence RFC 5545 allows only one of both to be present. The new JSCalendar standard has no duration property, but an estimated-duration.

Toover commented 3 years ago

DURATION has very clear semantics: DTSTART + DURATION = DUE. Hence RFC 5545 allows only one of both to be present.

Even worse: DURATION cannot be present without DTSTART being set, and I guess OpenTasks should not do anything funny around the standard.

The new JSCalendar standard has no duration property, but an estimated-duration. Neat, we will see if they accept it.

So your point is that in the meantime, OpenTasks cannot help me, thanks. Then what about this issue? Do you think editing durations instead of end dates is still a valid request?