logseq / logseq/logseq

habits/repeating tasks scheduling reference date

Open
#5,645 6 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

:type/enhancement logbook
Dominant language
Clojure
Stars
45k
Forks
2.8k
Avg merge
1d 22h
Merged PRs (30d)
105

Description

### What happened?

When marking a habit/repeating task as done, I'd expect the new scheduled date to change to current day + x-days (defined by habit). I.e., the current date is not taken as a reference, but rather the scheduled date.

Example:
I have to water my plant every 3 days. It's Monday (06/06/22), after watering it, I create a TODO item, scheduling it for Thursday (09/06/22).
Damn, it's Friday (10/06/22), I forgot to water my plant yesterday! I water it and click the TODO box in Logseq. According to the Logseq behavior, I am supposed to water my plant again in 2 days (12/06/22). Instead, since I watered it just now, I should water my plant again on 13/06/22.

![habit](https://user-images.githubusercontent.com/15796851/173015310-49850645-8d50-44a5-89e3-b449d31458a1.gif)

### Reproduce the Bug

1. please see the attached gif

### Expected Behavior

The current date should be taken as a reference, not the scheduled date, when ticking off a repeating task/habit.

### Screenshots

_No response_

### Desktop Platform Information

_No response_

### Mobile Platform Information

_No response_

### Additional Context

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the repeating-task or habit completion flow described in the issue and shown in the attached GIF, using a task whose schedule is later than the completion date. Trace how ticking the task calculates its next scheduled date. Done means the next date uses the current completion day plus the habit interval, matching the stated Friday-to-Monday example.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.