Upcoming, Backlog and Overdue tabs with calendar

Changed

Context

The mockup in #338 has a Backlog & Schedule panel with Upcoming / Backlog / Overdue tabs, rows grouped by date, and a month calendar colored by frequency.

On 2026-10-22 there were 39 overdue chores, 8 of them more than 180 days late, and 14 never logged. The backlog is where those are worked down by scheduling them (#339).

The existing calendars (views.view.chore_log_calendar, views.view.storage_field_log_date_on_calendar, FullCalendar at /chore-log-fullcalendar-view) show past chore logs only.

Rooms are locations: the children of Apartment (Entry, Bathroom, Kitchen, Bedroom, Office, Living room) plus the top-level Lobby and Garage. Chore locations are often deeper (Kitchen → Kitchen counter → Kitchen counter 1), so grouping by room needs the ancestor, which Views cannot group by directly.

Decisions

  • Buckets as defined in #339.
  • Backlog is grouped by room, with an Add to Today button on each row. Room rotation by weekday is a follow-up task, not this one.
  • Managed from a desktop; must still work on a phone.

Ideas

  • Views page displays as menu tabs: Upcoming (grouped by date), Backlog (grouped by room), Overdue.
  • A views field / relationship in inventory_custom resolving a location to its room: the ancestor one level below Apartment, or the top-level term itself otherwise. Apartment itself (e.g. "Get rid of extra stuff") counts as its own group.
  • Calendar: add the scheduled date and next due date to a calendar display, colored by frequency, with overdue marked.

TODO

  • [ ] Room resolver plugin.
  • [ ] Upcoming, Backlog, Overdue displays as tabs.
  • [ ] Calendar of scheduled and due dates.
  • [ ] Link the tabs from the Today dashboard.

Done when

  • Backlog lists every overdue or undated chore not scheduled for today or later, under its room; Lobby and Garage chores have their own groups.
  • Scheduling a backlog chore for tomorrow moves it to Upcoming under tomorrow's date.
  • The calendar shows scheduled and due chores on their days.
Task type
Project
Parent task