---
title: "Update Capacity Exception"
method: PATCH
path: "/v2/users/capacity/exceptions/{userID}/{exceptionID}"
tags: ["Routes", "Users", "Capacity", "Exceptions"]
---

# Update Capacity Exception

`PATCH /v2/users/capacity/exceptions/{userID}/{exceptionID}`

This request updates an existing capacity exception and returns the updated resource.

`capacityMinutes` means the user's available capacity **per day** for each day in the exception date/range. It is **not** the total duration of the exception range.

Examples:
- `capacityMinutes: 0` => unavailable that day (or each day in the range).
- `capacityMinutes: 480` => 8 hours available per day.

Return data description

Property	Description
exceptionID	Unique ID for the capacity exception record.
userID	The user the exception applies to.
createdByUserID	The user who created the exception.
exceptionStartDate	The first date the exception applies (YYYY-MM-DD).
exceptionEndDate	The last date the exception applies (YYYY-MM-DD). Null when the exception is only for one day.
capacityMinutes	Allowed capacity in minutes **per day** for the exception date/range.
hoursPerDay	Derived whole-hour portion of capacityMinutes.
minutesPerDay	Derived minute remainder after hoursPerDay.
exceptionTitle	Optional short title for the exception.
exceptionNotes	Optional notes/details for the exception.
exceptionType	Structured planned/unplanned classification ('planned', 'unplanned', or null when unset).

## Request body

- object
  - `exceptionStartDate` string, date
  - `exceptionEndDate` string, date
  - `capacityMinutes` integer
  - `exceptionTitle` string
  - `exceptionNotes` string
  - `exceptionType` unknown

## Response `200`

Update Capacity Exception

- object
  - `exceptionID` integer
  - `userID` integer
  - `createdByUserID` integer
  - `exceptionStartDate` string, date
  - `exceptionEndDate` string, date
  - `capacityMinutes` integer
  - `hoursPerDay` integer
  - `minutesPerDay` integer
  - `exceptionTitle` string
  - `exceptionNotes` string
  - `exceptionType` unknown

## Other responses

- `400` — The request was malformed — either invalid JSON syntax or a validation failure (missing required field, wrong type, etc.).
- `401` — No `Authorization` header was provided on the request.
- `403` — The supplied credentials are invalid, the customer account is inactive, or the credentials do not have permission to perform this action.
- `404` — The referenced resource does not exist or is not visible to the authenticated customer.
- `409` — The request conflicts with the current state of the resource (e.g. a uniqueness constraint or a referenced parent that is in the wrong state).
- `429` — The per-minute or per-hour rate limit for this credential and method has been exhausted. Inspect the `X-RateLimit-*` headers to determine when to retry.
- `500` — An unhandled server-side error. The body message is generic (`System unavailable...`) when the underlying cause is a database fault; otherwise it reflects the raised error.

---

[API](https://skmtc.net/limblecmms/apis/limble-api-v2.md) · [All operations](https://skmtc.net/limblecmms/apis/limble-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/limblecmms/limble-api-v2/versions/20801e23f7f2/schema)
