> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CalendarAgendaOperationInput

> One change to an event's agenda. Set exactly one of `add`, `update`, or `remove`.

<ResponseField name="add" type={<a href="/docs/api-reference/v3/reference/commerce-agent/calendar-agenda-item-input">CalendarAgendaItemInput</a>}>
  Append a new item to the end of the agenda.

  <Expandable title="fields" lazyRender>
    <ResponseField name="promotion" type={<a href="/docs/api-reference/v3/reference/commerce-agent/calendar-promotion-agenda-item-input">CalendarPromotionAgendaItemInput</a>}>
      A PROMOTION item.

      <Expandable title="fields" lazyRender>
        <ResponseField name="details" type="String">
          What is discounted, for whom, and any code shoppers should use, written the way the Commerce Agent should read it; the agent may repeat it to shoppers. Required when adding a promotion. At most 2000 characters.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="remove" type={<a href="/docs/api-reference/v3/reference/commerce-agent/calendar-agenda-item-remove-input">CalendarAgendaItemRemoveInput</a>}>
  Remove an existing item. A promotion Redo found on the brand's homepage returns DETECTED\_PROMOTION\_NOT\_REMOVABLE, since Redo would add it again; delete the event to dismiss it.

  <Expandable title="fields" lazyRender>
    <ResponseField name="id" type="ID!" required>
      The agenda item's `id`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="update" type={<a href="/docs/api-reference/v3/reference/commerce-agent/calendar-agenda-item-update-input">CalendarAgendaItemUpdateInput</a>}>
  Change fields on an existing item.

  <Expandable title="fields" lazyRender>
    <ResponseField name="id" type="ID!" required>
      The agenda item's `id`.
    </ResponseField>

    <ResponseField name="item" type={<a href="/docs/api-reference/v3/reference/commerce-agent/calendar-agenda-item-input">CalendarAgendaItemInput!</a>} required>
      The fields to change, under the item's own kind key. Omitted fields are unchanged. A different kind returns AGENDA\_ITEM\_KIND\_MISMATCH.

      <Expandable title="fields" lazyRender>
        <ResponseField name="promotion" type={<a href="/docs/api-reference/v3/reference/commerce-agent/calendar-promotion-agenda-item-input">CalendarPromotionAgendaItemInput</a>}>
          A PROMOTION item.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.