# Quotes Schedules API



<EndpointIndex
  names={[
  	'fetchSchedules',
  	'fetchScheduleItems',
  	'uploadDeserializedScheduleItems',
  	'addScheduleItems',
  	'uploadScheduleItems',
  	'deleteScheduleItems',
  	'updateScheduleItems',
  ]}
  titles={{
  	fetchSchedules: 'Fetch Schedules for a quote',
  	fetchScheduleItems: 'Fetch a Schedule and items',
  	uploadDeserializedScheduleItems:
  		'Upload Quote Schedule Items for Deserialization',
  	addScheduleItems: 'Add items to schedule',
  	uploadScheduleItems: 'Upload a CSV of schedule items',
  	deleteScheduleItems: 'Delete an item from schedule',
  	updateScheduleItems: 'Update a schedule item',
  }}
/>

Fetch [#fetch]

Fetch Schedules for a quote [#fetch-schedules-for-a-quote]

<ApiEndpoint name="fetchSchedules" title="Fetch Schedules for a quote" />

<ApiSchema name="ElementScheduleResponse" />

Fetch a Schedule and items [#fetch-a-schedule-and-items]

<ApiEndpoint name="fetchScheduleItems" title="Fetch a Schedule and items" />

<ApiSchema name="ScheduleItemsResponse" />

Upload Quote Schedule Items for Deserialization [#upload-quote-schedule-items-for-deserialization]

<ApiEndpoint name="uploadDeserializedScheduleItems" title="Upload Quote Schedule Items for Deserialization" />

<ApiSchema name="DeserializationResponse" />

Updating [#updating]

Add items to schedule [#add-items-to-schedule]

<ApiEndpoint name="addScheduleItems" title="Add items to schedule" />

<ApiSchema name="AddScheduleItemRequest" />

<ApiSchema name="ScheduleItem" />

API requests to add items to a schedule are limited to 500 items

Upload a CSV of schedule items [#upload-a-csv-of-schedule-items]

<ApiEndpoint name="uploadScheduleItems" title="Upload a CSV of schedule items" />

CSV for bulk upload of schedule items only support flat item data structures
i.e. no nested objects in the schedule definition.

Delete an item from schedule [#delete-an-item-from-schedule]

<ApiEndpoint name="deleteScheduleItems" title="Delete an item from schedule" />

Delete individual items from a schedule by specifying their locator within the
string array of the request.

Update a schedule item [#update-a-schedule-item]

<ApiEndpoint name="updateScheduleItems" title="Update a schedule item" />

<ApiSchema name="PatchScheduleItemRequest" />

See Also [#see-also]

* [Schedules Feature Guide](/features/schedules)


## API Reference

GET /policy/{tenantLocator}/quotes/{locator}/schedules — fetchSchedules
Tags: quotes-controller
Permissions: read, schedule-read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 map<string, ElementScheduleResponse> — OK

GET /policy/{tenantLocator}/quotes/{locator}/schedules/{staticElementLocator} — fetchScheduleItems
Tags: quotes-controller
Permissions: read, schedule-read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
  lastSeenLocator (ulid, query)
Responses:
  200 ScheduleItemsResponse — OK

POST /policy/{tenantLocator}/quotes/{locator}/schedules/{staticElementLocator}/deserialize — uploadDeserializedScheduleItems
Tags: quotes-controller
Permissions: write, schedule-add
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
  params (map<string, string>, query, required)
Responses:
  200 DeserializationResponse — OK

PUT /policy/{tenantLocator}/quotes/{locator}/schedules/{staticElementLocator} — addScheduleItems
Tags: quotes-controller
Permissions: write, schedule-add
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Request body (AddScheduleItemRequest[]):
Responses:
  200 ValidationResult — OK

POST /policy/{tenantLocator}/quotes/{locator}/schedules/{staticElementLocator} — uploadScheduleItems
Tags: quotes-controller
Permissions: write, schedule-add
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Responses:
  200 ValidationResult — OK

DELETE /policy/{tenantLocator}/quotes/{locator}/schedules/{staticElementLocator} — deleteScheduleItems
Tags: quotes-controller
Permissions: write, schedule-delete
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Request body (ulid[]):
Responses:
  200 — OK

PATCH /policy/{tenantLocator}/quotes/{locator}/schedules/{staticElementLocator} — updateScheduleItems
Tags: quotes-controller
Permissions: write, schedule-update
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Request body (PatchScheduleItemRequest[]):
Responses:
  200 ValidationResult — OK

ElementScheduleResponse
Properties:
  staticElementLocator (ulid, required)
  elementType (string, required)
  scheduleItemType (string, required)
  complexData (boolean, required)
  maxValidationErrors (integer, required)

ScheduleItemsResponse
Properties:
  items (ScheduleItem[], required)
  lastSeenLocator (ulid, required)

DeserializationResponse
Properties:
  jobLocator (ulid, required)

AddScheduleItemRequest
Properties:
  data (map<string, object>, required)

ScheduleItem
Properties:
  locator (ulid, required)
  staticElementLocator (ulid, required)
  type (string, required)
  data (map<string, object>, required)
  createdAt (datetime, required)
  createdBy (uuid, required)

PatchScheduleItemRequest
Properties:
  locator (ulid, required)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)