Skip to content

feat: support time-of-day in due dates - #60

Merged
alexanderdavidsen merged 1 commit into
masterfrom
feat/due-date-time
Jun 24, 2026
Merged

alexanderdavidsen merged 1 commit into
masterfrom
feat/due-date-time

Conversation

@alexanderdavidsen

Copy link
Copy Markdown
Collaborator

Closes #58.

What

Adds time-of-day support to due dates, which were previously whole-day deadlines only.

New accepted formats (in addition to YYYY-MM-DD, today, tomorrow):

  • ISO date-time — YYYY-MM-DDTHH:MM[:SS] and YYYY-MM-DD HH:MM[:SS]
  • Relative offsets — today+HHMM, tomorrow+HHMM (that day at HH:MM), and now+HHMM (HH hours / MM minutes from now). The colon is optional (14:30 == 1430).
  • now keyword

Behaviour

  • Due dates with a time render as YYYY-MM-DD HH:MM and are classified time-granularly — they flip to Overdue once the instant passes.
  • Whole-day deadlines (local midnight) keep date-granular behaviour, so due:today stays due today all day (no regression).

Entry-path nuance

A due: token is whitespace-split, so it can't contain a space — the token form uses the T separator (due:2026-07-01T14:30). The --due flag accepts the quoted space form too (--due @3 "2026-07-01 14:30").

Touched

  • taskbook-common/src/due.rs — parsing, formatting, status (core change)
  • CLI / TUI / MCP help text + schema descriptions
  • CLAUDE.md docs

Test plan

  • cargo test --workspace — green (new unit tests cover ISO date-time, space separator, seconds, midnight-renders-as-date, today+/tomorrow+/now+ offsets, invalid offsets, and time-granular vs whole-day status)
  • cargo clippy --workspace --all-targets — clean
  • cargo fmt --all --check — clean

🤖 Generated with Claude Code

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

due date to allow sio date with time

2 participants