Skip to content

Commit

Permalink
docs: Add Recurring Tasks's 'Known Issues' to 'Known Limitations (#2350)
Browse files Browse the repository at this point in the history
* docs: In Recurring Tasks, move 'Examples' above 'Known Issues'

* docs: In Recurring Tasks, move 'Limitations of Recurring Tasks' to above 'Known Issues'

* docs: In Recurring Tasks, 'Order of the new task' is now inside 'Usage'

* docs: Add Recurring Tasks's 'Known Issues' to 'Known Limitations' page
  • Loading branch information
claremacrae authored Oct 20, 2023
1 parent 939f47a commit 41d3d2f
Showing 1 changed file with 36 additions and 36 deletions.
72 changes: 36 additions & 36 deletions docs/Getting Started/Recurring Tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,36 +43,7 @@ Alternatively, if you have enabled addition of [[Dates#Created date|created date
- [x] take out the trash πŸ” every Sunday πŸ“… 2021-04-25 βœ… 2023-03-10
```

### Limitations of Recurring Tasks

> [!important]
> A recurring task should have a due date. The due date and the recurrence rule must appear after the task's description.
> [!important]
> There are edge cases for tasks that recur monthly or yearly.
For example, a task may be due `2022-01-31` and recur `every 3 months`.
The next recurrence date of `2022-04-31` does not exist.

In that case, Tasks moves the next occurrence **backwards** to the next valid date.
In this case, that would be `2022-04-30`.

From then on, the due date will be based on the 30th day of the month, unless changed manually.
So the next occurrence would happen on `2022-07-30`, even though July has 31 days.

> [!important]
> With edge cases for tasks that recur monthly or yearly, **if the rule states the actual date of the next recurrence, Tasks will honour that instruction, skipping recurrence dates that do not exist**.
For example, a task may be due `2022-01-31` and recur `every month on the 31st`.
The next recurrence date of `2022-02-31` does not exist.

In that case, Tasks moves the next occurrence **forwards** to the next valid date,
skipping over recurrences with invalid dates.
In this case, that would be `2022-03-31`.

In the editor there is no direct feedback to whether your recurrence rule is valid.
You can validate that tasks understands your rule by using the `Tasks: Create or edit` command when creating or editing a task.

## Order of the new task
### Order of the new task

Use this setting to control where the recurring task is inserted. The default is to put the new task before the original one.

Expand Down Expand Up @@ -223,12 +194,6 @@ The new task will have the due date advanced by two weeks and a scheduled date t
- [ ] Mow the lawn πŸ” every 2 weeks ⏳ 2021-11-11 πŸ“… 2021-11-13
```

## Known Issues

1. You can _not_ use rules where recurrence happens a certain number of times (`for x times`). Tasks doesn't link the tasks and doesn't know how often it occurred.
2. You can _not_ use rules where recurrence ends on a specific date (`until "date"`). There is a bug in [`rrule`](https://github.com/jakubroztocil/rrule) where `until "date"` rules are not converted to the correct text. As a consequence, every subsequent task's "until" date will be one day earlier than the one before. We are tracking this in [issue #1818](https://github.com/obsidian-tasks-group/obsidian-tasks/issues/1818).
3. If the highest priority date in a task does not exist (for example, due date is February 30th), when the task is completed the recurrence rule will disappear, and no new task will be created. This is detectable prior to completing the task by viewing the task in Live Preview: the recurrence rule will be hidden, and the date will be displayed as 'Invalid date'.

## Examples

Examples of possible recurrence rules (mix and match as desired; these should be considered inspirational):
Expand All @@ -250,6 +215,41 @@ Examples of possible recurrence rules (mix and match as desired; these should be
- `πŸ” every April and December on the 1st and 24th` (meaning every _April 1st_ and _December 24th_)
- `πŸ” every year`

## Limitations of Recurring Tasks

> [!important]
> A recurring task should have a due date. The due date and the recurrence rule must appear after the task's description.
> [!important]
> There are edge cases for tasks that recur monthly or yearly.
For example, a task may be due `2022-01-31` and recur `every 3 months`.
The next recurrence date of `2022-04-31` does not exist.

In that case, Tasks moves the next occurrence **backwards** to the next valid date.
In this case, that would be `2022-04-30`.

From then on, the due date will be based on the 30th day of the month, unless changed manually.
So the next occurrence would happen on `2022-07-30`, even though July has 31 days.

> [!important]
> With edge cases for tasks that recur monthly or yearly, **if the rule states the actual date of the next recurrence, Tasks will honour that instruction, skipping recurrence dates that do not exist**.
For example, a task may be due `2022-01-31` and recur `every month on the 31st`.
The next recurrence date of `2022-02-31` does not exist.

In that case, Tasks moves the next occurrence **forwards** to the next valid date,
skipping over recurrences with invalid dates.
In this case, that would be `2022-03-31`.

In the editor there is no direct feedback to whether your recurrence rule is valid.
You can validate that tasks understands your rule by using the `Tasks: Create or edit` command when creating or editing a task.

### Known Issues

1. You can _not_ use rules where recurrence happens a certain number of times (`for x times`). Tasks doesn't link the tasks and doesn't know how often it occurred.
2. You can _not_ use rules where recurrence ends on a specific date (`until "date"`). There is a bug in [`rrule`](https://github.com/jakubroztocil/rrule) where `until "date"` rules are not converted to the correct text. As a consequence, every subsequent task's "until" date will be one day earlier than the one before. We are tracking this in [issue #1818](https://github.com/obsidian-tasks-group/obsidian-tasks/issues/1818).
3. If the highest priority date in a task does not exist (for example, due date is February 30th), when the task is completed the recurrence rule will disappear, and no new task will be created. This is detectable prior to completing the task by viewing the task in Live Preview: the recurrence rule will be hidden, and the date will be displayed as 'Invalid date'.

## Technical Details

Tasks uses the [rrule](https://github.com/jakubroztocil/rrule) library to calculate the next date when completing a recurring task.

0 comments on commit 41d3d2f

Please sign in to comment.