-
Notifications
You must be signed in to change notification settings - Fork 2
Chore Swaps
Chore swaps let a child ask to take over today's turn of a rotation chore from a sibling. The request is pending until a parent approves it, at which point the chore is reassigned to the requester for the day.
Swaps only apply to rotation chores — those using an alternating, random, balanced, or first_come assignment mode, where a single child holds today's turn.
A request is rejected outright if:
- The chore is in
everyoneorunassignedmode (there is no single turn to take over) - The chore is already assigned to the requesting child today
There are two ways to request a swap:
- From the child card — see From the Child Card below.
-
With the
taskmate.request_swapservice, or from the chore row in the Admin Panel (Request swap button).
service: taskmate.request_swap
data:
chore_id: b3f9a12c
requester_id: a8c8376a| Field | Required | Description |
|---|---|---|
chore_id |
Yes | The rotation chore to take over |
requester_id |
Yes | The child who wants today's turn |
The service is linked-child gated — a child user can only request on their own behalf. The request is stored with a pending status, recording the requester, the child who currently holds the turn (from_child_id), and a timestamp.
Since v4.0.1, a child can request a swap directly from their child card. Below the day's chores, a Take over a chore section lists the rotation chores whose turn belongs to a sibling today and that this child is in the pool for. Each row shows the chore name and its (post-multiplier) points, with a Request button.
Tapping Request calls taskmate.request_swap for that child and the button changes to Requested — the request then goes to the parent's approval queue. The section only lists chores in a rotation mode (alternating, random, balanced, first_come); everyone and unassigned chores never appear, and a child's own turn is never listed.
The section is gated by the child card's show_swaps option, which is on by default. Set show_swaps: false in the card config to hide it.
Pending swap requests appear to parents in the Admin Panel (with a count badge). For each, the parent can approve or reject:
| Action | What happens |
|---|---|
| Approve | Today's turn is reassigned to the requester — the chore's current assignee becomes the requesting child for the day. The request is marked approved. |
| Reject | The pending request is removed. The rotation is unchanged. |
On approval, TaskMate fires a taskmate_swap_approved event carrying chore_id, requester_id, and from_child_id.
A swap changes only today's assignment of the chore. It does not alter the underlying rotation order or anchor — the next scheduled day follows the normal rotation algorithm as if the swap had not happened.
- Chores — chore configuration
- Chore Scheduling — rotation assignment modes that swaps act on
- Approvals-Card — parent approval workflow
-
Services — full
request_swapreference