Workflows / Shopping and planning
Move from a recipe idea to an actionable week.
The automation layer preserves recipe context while connecting shopping-list state and Cookidoo’s rolling seven-day planner.
Shopping list
Ingredients remain connected to their recipes.
The service reads three Cookidoo sources concurrently:
- recipes currently represented in the shopping list;
- ingredient ownership state;
- manually added items.
The result includes recipe groups, a flat ingredient list, optional additional items, and summary counts. A valid account may have an empty shopping list; consumers must support empty arrays.
{
"recipes": [
{
"id": "r460132",
"name": "Recipe name",
"ingredient_count": 2,
"ingredients": [
{
"name": "Rice",
"description": "200 g rice",
"is_owned": false
}
]
}
],
"ingredients": [],
"additional_items": [],
"summary": {}
}descriptionCookidooIngredient does not expose an ingredient.quantity field.
Meal planner
The requested date begins a rolling seven-day window.
It is not a fixed Monday-to-Sunday calendar week. Empty days are omitted by Cookidoo and filled by the service.
get_meal_plan_week(date="2026-07-29")
# Returns 2026-07-29 through 2026-08-04,
# including explicit empty day objects.| Recipe type | Identification and API behavior |
|---|---|
| Official | IDs normally begin with r. |
| Customer | 26-character ULIDs; may arrive only in customerRecipeIds and require a detail lookup. |
Safe writes
Add, remove, and move without losing state.
Add
Mixed official and private IDs are de-duplicated, classified, and partitioned into Cookidoo’s source-specific calls.
Remove
The service uses a direct DELETE wrapper because deleting the final recipe from a day returns HTTP 200 with content: null, which the upstream library incorrectly tries to parse as a calendar day.
Move
The target is added first. The source is removed second. If source removal fails, the new target entry is rolled back.
Fetch the relevant window first, then call the mutation with dry_run=true. The returned JSON validates dates, recipe IDs, source inference, and operation order without changing the calendar. Repeat with dry_run=false only after reviewing it.
Example automation
From inspiration to a planned meal.
- Read or copy the recipe.
- Adapt and validate its content.
- Read the target seven-day window.
- Add the official or private recipe to the intended date.
- Read shopping-list ingredients grouped by recipe.
- Hand structured grocery data to the next authorized workflow.