Skip to content

Chore Scheduling

tempus2016 edited this page Mar 24, 2026 · 1 revision

TaskMate supports two scheduling modes for chores, set during the add/edit chore flow.


Mode A — Specific Days

The chore appears on selected days of the week. This is the default mode and matches the existing behaviour.

Setup: On Step 2 of the chore flow, select which days the chore should appear. Leave empty to show every day.

Child card behaviour: Use due_days_mode on the child card:

  • hide — chores not due today are hidden entirely
  • dim — chores not due today are shown greyed out and non-interactive
  • show — all chores shown regardless of day

Progress counting: The Overview card and Parent Dashboard count only chores due today in the progress bar denominator — a chore scheduled Mon/Wed/Fri doesn't inflate Saturday's total.


Mode B — Recurring

The chore has a rolling recurrence window. Once completed, it cannot be done again until the window expires.

Setup: Select Recurring on Step 1, then on Step 2 configure:

Field Applies To Description
Recurrence All How often the chore can be completed
Day of Week Weekly, Every 2 Weeks Pin to a specific day. Leave empty for any day.
Start Date Every 2 Days Anchor date for the rhythm. Leave empty for today.
First Occurrence All Available immediately or wait for first scheduled occurrence

Recurrence Windows

Option Window
Every 2 days 2 days from last completion date
Weekly 7 days from last completion date
Every 2 weeks 14 days from last completion date
Monthly 30 days from last completion date
Every 3 months 90 days from last completion date
Every 6 months 180 days from last completion date

Windows are midnight-rounded — if completed at 7pm Wednesday, the window starts from Wednesday midnight. A weekly chore completed Wednesday is available again the following Wednesday from midnight.

First Occurrence Mode

When a recurring chore is first created (no completions yet):

Setting Behaviour
Available Immediately (default) Child can complete it straight away
Wait for First Scheduled Occurrence Chore is locked until the first scheduled day/date arrives

For Weekly/Every 2 Weeks with a Day of Week set — "wait" means locked until that day of the week arrives.

For Every 2 Days with a Start Date — "wait" means locked until the start date.

For Monthly and longer — "wait" means locked for the full window from creation date before first use.

Child Card Display

Use recurrence_done_mode on the child card to control what happens when a recurring chore is completed and waiting to reset:

Value Behaviour
dim Shown greyed out, non-interactive (default)
hide Hidden entirely until available again
show Shown normally — child can see it's done but can't complete again

Undo Behaviour

If a child undoes a recurring chore completion, the previous completion becomes the window anchor — the chore does not immediately become available again (unless there was no previous completion). This prevents gaming the system by repeatedly completing and undoing to reset the window.

Last Completed Store

Recurrence windows are tracked in a dedicated store separate from the prunable completion history. This means:

  • The history_days setting does not affect recurrence — a 6-month chore will still be correctly locked even if history is set to 90 days
  • The store keeps only the two most recent completions per chore per child — current and previous (for undo)

Sensor Attributes

Each chore in sensor.taskmate_overviewchores exposes:

Attribute Description
schedule_mode specific_days or recurring
recurrence e.g. weekly, every_2_weeks
recurrence_day e.g. tuesday (if pinned)
recurrence_start ISO date anchor (Every 2 Days)
first_occurrence_mode available_immediately or wait_for_first_occurrence
is_available { child_id: bool } — pre-calculated availability per child
last_completed_at { child_id: ISO datetime } — most recent completion per child

The is_available attribute is pre-calculated by the backend so cards don't need to implement window logic themselves.

Clone this wiki locally