Files
famapp/docs/tasks/89-calendar-reminders-overhaul.md
T
ginnoir e1c2a090fb feat: p2 batch 28-31 reminders lists comments bang stats
Calendar events support multiple reminder offsets with presets and per-user defaults.

Lists index adds inline task entry and list property editing.

Generic entity comments on list detail. New bangs.stats dashboard widget.

Closes Gitea #28, #29, #30, #31. Migrations 0022 and 0023.
2026-07-04 22:17:35 -05:00

1.3 KiB

89 — Calendar reminders overhaul

Goal

Replace the single "Remind me 30 min before" checkbox with multiple reminders, presets, and custom offsets.

What we decided

  • Store multiple reminder rows per calendar event in the generic reminders table (drop one-per-entity unique constraint).
  • Offsets are minutes before event start; presets + custom value/unit in UI.
  • Per-user default offsets live on users.default_event_reminder_offsets (jsonb, default [30]).
  • Notes/garden keep single-reminder behavior via delete-then-insert in scheduleReminder.

Depends on

  • 41 (reminders engine)

Scope

  • Migration: drop reminders_entity_unique, add offset_minutes, add user default column.
  • _core/reminders.ts: syncRemindersForEntity, refactor scheduleReminder.
  • Shared ReminderPicker component + offset helpers.
  • Calendar create/edit + quick-add dialogs; sync reminders on create/update/delete.
  • Optional: settings field for default reminder offsets.

Out of scope

  • Recurring reminders, snooze.

Acceptance criteria

  • Users can add/remove multiple reminders on an event
  • Preset list and custom offset both work
  • Reminders fire via existing notification bus
  • Per-user default reminder preferences (stored + applied on new events)

Notes