Skip to content

Commit c96187d

Browse files
committed
use model 0.2.1 for timed recurring due offsets
1 parent df9bcd8 commit c96187d

4 files changed

Lines changed: 23 additions & 5 deletions

File tree

docs/releases/unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,4 @@ When a change has user-facing documentation, include a canonical tasknotes.dev l
3535
## Fixed
3636

3737
- (#1995) Fixed Bases Calendar views showing both a materialized occurrence note and its matching virtual recurring task instance. Thanks to @rdefaccio for reporting this.
38+
- (Discussion #1994) Fixed timed recurring tasks failing to advance their due dates when due-date offset preservation is enabled. Thanks to @mgrecar for raising this.

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
"@fullcalendar/multimonth": "^6.1.17",
8888
"@fullcalendar/timegrid": "^6.1.17",
8989
"@modelcontextprotocol/sdk": "^1.12.1",
90-
"@tasknotes/model": "0.2.0",
90+
"@tasknotes/model": "0.2.1",
9191
"chrono-node": "^2.7.5",
9292
"date-fns": "^4.1.0",
9393
"ical.js": "^2.2.1",

tests/unit/core/recurrence.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,23 @@ describe("core/recurrence", () => {
4343
});
4444
});
4545

46+
it("preserves due offset for timed recurring tasks", () => {
47+
const result = updateToNextScheduledOccurrence({
48+
title: "Timed recurring task with due offset",
49+
recurrence: "DTSTART:20260328T103000;FREQ=DAILY",
50+
recurrence_anchor: "scheduled",
51+
scheduled: "2026-03-28T10:30",
52+
due: "2026-03-29T10:30",
53+
complete_instances: ["2026-03-28"],
54+
skipped_instances: [],
55+
});
56+
57+
expect(result).toEqual({
58+
scheduled: "2026-03-29T10:30",
59+
due: "2026-03-30T10:30",
60+
});
61+
});
62+
4663
it("adds DTSTART without depending on a full TaskInfo object", () => {
4764
const recurrence = addDTSTARTToRecurrenceRule({
4865
recurrence: "FREQ=DAILY;INTERVAL=2",

0 commit comments

Comments
 (0)