Skip to content

Postpone the earlier of the scheduled and due date #3504

@fabrguer

Description

@fabrguer

⚠️ Check request is valid.

  • My request is about the Tasks plugin for Obsidian.
  • I am only requesting a single feature in the Tasks plugin. Multiple changes should be split into individual requests, with links between them.
  • I believe my requested feature will be generally applicable to other Tasks plugin users, not just me: it is not uniquely tied to my personal workflow.

⚠️ Please check that this feature request hasn't been suggested before.

🔖 Feature description

Context

All my tasks have a scheduled date (I use the "use filename as scheduled date" function), but only the few tasks with a hard deadline have a due date. My dashboard shows tasks based on the earlier between due and scheduled dates.

Problem

When tasks have a due date, clicking "postpone" only updates the due date. This is the opposite of what I want: the due date is usually some hard deadline that does not change, while scheduled is what I use to decide what I work on every day. This issue forces me to have manually fix the incorrectly adjusted due date and change scheduled date. So I end up not using the postpone button much for this reason.

✔️ Solution

Current logic

  • Due date, if present.
  • Scheduled date
    • if no Due date is present.
  • Start date
    • If no Due or Scheduled date is present.

Proposed new logic

When both due and scheduled date exist, the proposal is to update the earliest date, making sure that scheduled is always <= due (which makes sense). So sometimes both will be adjusted.

if (due && !scheduled): due = new_date
else if (!due && scheduled): scheduled = new_date
else if (due && scheduled):
    if (due <= scheduled): 
        due = new_date
        scheduled = min(scheduled, new_date)
    else: scheduled = min(due, new_date)
else:
    start = new_date

❓ Alternatives

No response

📝 Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    scope: postponeThe ⏩ Postpone button and its right-click context menu, for postponing taskstype: enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions