Skip to content

feat(reminder): support urgent reminders (iOS 26)#351

Merged
scottlovegrove merged 2 commits into
mainfrom
scottl/urgent-reminders
May 19, 2026
Merged

feat(reminder): support urgent reminders (iOS 26)#351
scottlovegrove merged 2 commits into
mainfrom
scottl/urgent-reminders

Conversation

@scottlovegrove
Copy link
Copy Markdown
Collaborator

Closes #350.

Summary

  • reminder add / reminder update now accept --urgent / --no-urgent, threaded through is_urgent on the reminder_add / reminder_update sync commands.
  • reminder get / reminder list plain output show a red [urgent] badge after [time]; --json includes isUrgent.
  • reminder update no longer requires --before / --at when only toggling urgency — td reminder update <id> --no-urgent is valid on its own.

The SDK (@doist/todoist-sdk 10.2.0, already on main) types isUrgent on absolute + relative reminder schemas. Location reminders are out of scope — the SDK schema confirms the field doesn't exist there.

Test plan

  • npm run type-check
  • npm test (1607 passing, +3 new)
  • npm run check
  • npm run sync:skill
  • Live smoke: td reminder add <task> --at "2026-06-01 09:00" --urgent --json → JSON shows isUrgent: true
  • Live smoke: td reminder list --task <task> → row shows [urgent] badge
  • Live smoke: td reminder update <id> --no-urgent (no time flags) → succeeds; subsequent get no longer shows badge

Add --urgent / --no-urgent flags to `reminder add` and `reminder update`,
and surface `isUrgent` on `reminder get` / `reminder list` output as a
red [urgent] badge. Closes #350.

`reminder update` now also accepts --urgent / --no-urgent on its own
(without --before / --at) so users can toggle urgency without touching
the schedule.
@scottlovegrove scottlovegrove self-assigned this May 19, 2026
@doistbot doistbot requested a review from pedroalves0 May 19, 2026 12:55
Copy link
Copy Markdown
Member

@doistbot doistbot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR provides a solid foundation for urgent reminders by introducing intuitive CLI flags and clear visual badging. The implementation is well-aligned with the new SDK, though a few edge cases need attention to ensure full correctness. Specifically, there are serialization issues that can corrupt relative reminders during urgency-only updates, a field whitelist preventing the new urgency property from appearing in JSON output, and a few opportunities to improve type reuse, consolidate badge formatting, support --json on the update command, and expand test coverage.

Share FeedbackReview Logs

Comment thread src/commands/reminder/update.ts
Comment thread src/commands/reminder/add.ts
Comment thread src/commands/reminder/update.ts
Comment thread src/commands/reminder/helpers.ts Outdated
Comment thread src/commands/reminder/get.ts Outdated
Comment thread src/commands/reminder/reminder.test.ts
Comment thread src/commands/reminder/reminder.test.ts
Comment thread src/commands/reminder/index.ts
- updateReminder no longer mis-tags relative reminders as absolute on
  urgency-only patches — fetches the existing reminder to preserve its
  `type` when neither --before nor --at is supplied.
- isUrgent added to REMINDER_ESSENTIAL_FIELDS so default --json output
  surfaces it without --full.
- reminder update gains --json, emitting the refreshed reminder.
- formatUrgentBadge now owns the leading space; add/get/list drop the
  duplicated conditional. TimeReminder type extracted to helpers and
  reused in get + list.
- Combined --before/--urgent confirmation now includes the [urgent]
  badge instead of silently dropping it.
- Extra tests: reminder get urgent badge, JSON isUrgent assertion,
  combined-confirmation, update --json.
@scottlovegrove scottlovegrove added the 👀 Show PR PR must be reviewed before or after merging label May 19, 2026
@scottlovegrove scottlovegrove merged commit 9ca0da5 into main May 19, 2026
5 checks passed
@scottlovegrove scottlovegrove deleted the scottl/urgent-reminders branch May 19, 2026 13:33
doist-release-bot Bot added a commit that referenced this pull request May 19, 2026
## [1.67.0](v1.66.0...v1.67.0) (2026-05-19)

### Features

* **reminder:** support urgent reminders (iOS 26) ([#351](#351)) ([9ca0da5](9ca0da5))
@doist-release-bot
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.67.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

released 👀 Show PR PR must be reviewed before or after merging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

reminder add / reminder update: support --urgent flag for urgent (iOS 26) reminders

2 participants