Block reminders with local notifications #25

Open
opened 2026-09-14 09:24:31 +00:00 by kayg · 0 comments
Owner

Request

Block reminders backend for the ⋯ block menu "Remind Me…" action (user spec 2026-09-14).

A reminder binds a durable block link (day/note path + block identity) to a fire date and schedules a local notification (UNUserNotificationCenter) whose action opens the block (existing deep-link navigation). Presets: 20 minutes, 1 hour, 3 hours, tomorrow (09:00 local), next week (same weekday 09:00), Custom… (native date picker sheet). Reminders persist in the Space (markdown-native representation to be decided with the user: candidate is a remind: inline tag or frontmatter key on the block; see docs/DESIGN.md before choosing).

Acceptance

  • Notification permission requested lazily on first use; denial surfaces a native alert and leaves the block untouched.
  • Firing the notification and clicking it navigates to the exact block, in the correct Space, even after relaunch.
  • Reminders survive relaunch and Space switch; deleting the block cancels its pending notification.
  • App Intents: "Remind me about block" exposed; Spotlight unaffected.
  • Persisted representation documented in docs/DESIGN.md and DECISIONS.md.
  • Keep open until verified on the VM and accepted by the user.
## Request Block reminders backend for the `⋯` block menu "Remind Me…" action (user spec 2026-09-14). A reminder binds a durable block link (day/note path + block identity) to a fire date and schedules a local notification (`UNUserNotificationCenter`) whose action opens the block (existing deep-link navigation). Presets: 20 minutes, 1 hour, 3 hours, tomorrow (09:00 local), next week (same weekday 09:00), Custom… (native date picker sheet). Reminders persist in the Space (markdown-native representation to be decided with the user: candidate is a `remind:` inline tag or frontmatter key on the block; see docs/DESIGN.md before choosing). ## Acceptance - Notification permission requested lazily on first use; denial surfaces a native alert and leaves the block untouched. - Firing the notification and clicking it navigates to the exact block, in the correct Space, even after relaunch. - Reminders survive relaunch and Space switch; deleting the block cancels its pending notification. - App Intents: "Remind me about block" exposed; Spotlight unaffected. - Persisted representation documented in docs/DESIGN.md and DECISIONS.md. - Keep open until verified on the VM and accepted by the user.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-macos#25
No description provided.