skylight_update_meal
Update a planned meal occurrence by changing its name, recipe, meal slot, notes, date, or repeat rule; choose whether changes apply to one occurrence, future occurrences, or the whole series.
Instructions
Update a planned meal (meal sitting) — change its name, recipe, category/slot, notes, date or repeat rule. Targets one occurrence by its date and applies the change at the chosen recurrence scope. For a one-time meal omit apply_to. For a recurring meal, note that apply_to:'one' and 'future' SPLIT the series into additional sittings rather than editing in place; re-run skylight_list_meals afterward to see the resulting shape. apply_to 'future' or 'all' asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"id": "<id>",
"instance_date": "<instance_date>"
},
"name": "skylight_update_meal"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Meal sitting id (from skylight_list_meals). | |
| date | No | YYYY-MM-DD to move the meal to. | |
| note | No | ||
| rrule | No | Replacement iCal RRULE string (plain string, NOT an array). | |
| frameId | No | ||
| summary | No | New meal name. The create route 422s when this is non-blank and meal_recipe_id is also set; whether PATCH enforces the same rule is UNVERIFIED, so prefer setting one or the other. | |
| apply_to | No | Recurrence scope for a RECURRING meal (one with an `rrule` in skylight_list_meals): 'one' = just this occurrence (splits it out of the series), 'future' = this and all later occurrences (splits the tail into a new sitting), 'all' = the whole series. Omit for a one-time meal (`rrule: null`) — Skylight rejects apply_to there; if one is sent anyway the call is retried without it. | |
| description | No | Ingredients / instructions. | |
| confirmToken | No | ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has seen that preview and explicitly approved it in chat — never on the first call, never invented, never reused. Call again with the same arguments. Ignored when the client supports elicitation. | |
| instance_date | Yes | YYYY-MM-DD of the occurrence to act on — must be one of that sitting's `instances`. | |
| meal_recipe_id | No | Link a different recipe. | |
| meal_category_id | No | Move to another slot (breakfast/lunch/dinner). |