# Delete Meal

Deletes all meals within the specified dates. By default, the meals are deleted from the active meal plan, unless a `meal_plan_id` is specified.

## Delete Meals

<mark style="color:red;">`DELETE`</mark> `https://api.whisk.com/mealplan/v2`

#### Request Body

| Name            | Type    | Description                                                                                                                    |
| --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| period          | object  | An object with `from` and `to` dates representing the date range period of meals to be deleted.                                |
| meal\_plan\_id  | string  | The meal plan identifier from which meals are to be deleted. By default the active meal plan will be used to delete the meals. |
| generated\_only | boolean | Indicates that only automatically generated meals are to be deleted. Default value is `false`.                                 |

{% tabs %}
{% tab title="200 Upon success, the method returns an empty response." %}

```
```

{% endtab %}
{% endtabs %}

## Sample Request

```bash
curl "https://graph.whisk.com/mealplan/v2" \
    -H "Accept: application/json" \
    -H "Authorization: Token <Access-Token>" \
    -d '{
        "period": {
            "from": {
                "year": 2020,
                "month": 3,
                "day": 10
            },
            "to": {
                "year": 2020,
                "month": 3,
                "day": 17
            }
        },
        "generated_only": true
    }'
```

### Delete Meal from Meal Plan

Removes a single meal from a specified meal plan.

## Delete Meal from Meal Plan

<mark style="color:red;">`DELETE`</mark> `https://api.whisk.com/mealplan/v2/meal/:meal_id`

#### Path Parameters

| Name     | Type   | Description         |
| -------- | ------ | ------------------- |
| meal\_id | string | The meal identifier |

#### Request Body

| Name           | Type   | Description              |
| -------------- | ------ | ------------------------ |
| meal\_plan\_id | string | The meal plan identifier |

{% tabs %}
{% tab title="200 Upon successful deletion, the method returns an empty object." %}

```javascript
{}
```

{% endtab %}
{% endtabs %}

### Conflicts resolution

The `on_conflict` field allows meals to either replace or be inserted into daily meal slots when using the **Add Meal** or **Update Meal** endpoints. This helps the meal planner avoid any conflicting actions in case of adding or updating a meal into a daily slot which already is populated with a pre-existing meal.

Here are the following options for the `on_conflict` field:

* `DAY_SLOT_CONFLICT_ACTION_REPLACE` - the new meal will replace the existing one. **This is the default option.**
* `DAY_SLOT_CONFLICT_ACTION_INSERT` - the new meal will be inserted before the existing one, pushing it, along with all following meals, forward one daily slot. However, if you exceed the maximum number of daily meals (7), a 400 error response will be returned.
* `DAY_SLOT_CONFLICT_ACTION_FAIL` - the new meal will not be inserted into the daily slot, and a 400 error will be returned.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.whisk.com/api/meal-plans/meal/delete-meals.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
