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_customresolving 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.