update_chore
Update an existing chore's details, status, due date, or assignment. Use applyTo to specify whether changes affect all occurrences or future ones for recurring chores.
Instructions
Update an existing chore in Skylight.
Use this when:
Marking a chore as complete: "Mark 'dishes' as done"
Changing chore assignment: "Reassign the trash to Dad"
Updating chore details: "Change the time for the homework chore"
Shifting which day(s) a recurring chore falls on: "Move trash day to Wednesday"
Parameters:
choreId (required): ID of the chore (from get_chores)
summary: New description for the chore
status: "completed" to mark done, "pending" to mark incomplete
date: New due date. IMPORTANT: for a recurring chore, changing date alone does NOT shift which day(s) it recurs on — the API keeps generating occurrences on the old RRULE weekday regardless of the new date. To actually move a recurring chore's day, also pass recurrencePattern with a matching RRULE (e.g. date="2026-08-26" + recurrencePattern="RRULE:FREQ=WEEKLY;BYDAY=WE" to move it to Wednesdays), and pass applyTo.
recurrencePattern: New recurrence rule for a recurring chore ('daily', 'weekly', 'weekdays', or a raw RRULE string like 'RRULE:FREQ=WEEKLY;BYDAY=WE'). Use this to actually change a recurring chore's day(s) — date alone won't do it.
applyTo: Required for any change to a recurring chore, or the API silently ignores the whole update (200 response, nothing actually changes, no error). Not needed for one-off chores.
"all": apply to every occurrence of the series
"future": apply to this occurrence and every later one, past occurrences untouched
time: New due time
assignee: New family member assignment. There is no way to unassign a chore on this account (up_for_grabs is rejected by the API) — assignee can only be reassigned to another family member, never cleared.
Returns: The updated chore details. If any requested field didn't actually change (most commonly: a recurring chore updated without applyTo), this returns an error instead of a false "Updated" success, listing exactly which fields didn't take.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | New due date (YYYY-MM-DD or 'today', 'tomorrow') | |
| time | No | New due time (e.g., '10:00 AM', or null to clear) | |
| status | No | 'completed' to mark done, 'pending' to mark incomplete | |
| applyTo | No | Required for any update to a recurring chore, or the change is silently ignored. 'all' = whole series, 'future' = this occurrence onward. | |
| choreId | Yes | ID of the chore to update | |
| summary | No | New chore description | |
| assignee | No | New family member to reassign to. Unassigning is not supported. | |
| rewardPoints | No | New reward points (or null to clear) | |
| recurrencePattern | No | New recurrence rule to actually shift a recurring chore's day(s): 'daily', 'weekly', 'weekdays', or an RRULE string (e.g. 'RRULE:FREQ=WEEKLY;BYDAY=WE'). Changing date alone does not move the recurrence day. |