---
title: "Create a shift for a department. `startTime` and `endTime` are 24-hour HHmm times; an end time earlier than the start time is an overnight shift. Each `availableEquipment` entry must be equipment in the department and can be listed only once. The server fills `equipmentName` from the equipment, so a client value is ignored. Omitted optional fields take their defaults: no days, 0 simultaneous equipment, no maximum daily new jobs and no equipment."
method: POST
path: "/api/department-shifts"
tags: ["Department Shift"]
---

# Create a shift for a department. \`startTime\` and \`endTime\` are 24-hour HHmm times; an end time earlier than the start time is an overnight shift. Each \`availableEquipment\` entry must be equipment in the department and can be listed only once. The server fills \`equipmentName\` from the equipment, so a client value is ignored. Omitted optional fields take their defaults: no days, 0 simultaneous equipment, no maximum daily new jobs and no equipment.

`POST /api/department-shifts`

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/department-shifts`
- Auth: none declared

## Request body

- DepartmentShiftCreateDto: Details of a department shift to create. An omitted or null optional field is saved as its default.
  - `name` string, required: Name of the shift.
  - `startTime` string, required: Time the shift starts, as a four-digit 24-hour clock value in HHmm format, "0000" to "2359": "0000" is midnight, "0800" is 8:00 AM and "1730" is 5:30 PM.
  - `endTime` string, required: Time the shift ends, in the same HHmm format as `startTime`. An end time earlier than the start time means the shift runs overnight and ends on the next day. An end time equal to the start time is allowed.
  - `days` DepartmentShiftDaysSaveDto: The days of the week a shift is worked. An omitted or null day is saved as false.
    - `monday` boolean, nullable: Monday.
    - `tuesday` boolean, nullable: Tuesday.
    - `wednesday` boolean, nullable: Wednesday.
    - `thursday` boolean, nullable: Thursday.
    - `friday` boolean, nullable: Friday.
    - `saturday` boolean, nullable: Saturday.
    - `sunday` boolean, nullable: Sunday.
  - `simultaneousEquipment` DepartmentShiftDailyCountsSaveDto: A whole-number count of 0 or more for each day of the week. An omitted or null day is saved as 0.
    - `monday` integer, nullable: Count for Monday.
    - `tuesday` integer, nullable: Count for Tuesday.
    - `wednesday` integer, nullable: Count for Wednesday.
    - `thursday` integer, nullable: Count for Thursday.
    - `friday` integer, nullable: Count for Friday.
    - `saturday` integer, nullable: Count for Saturday.
    - `sunday` integer, nullable: Count for Sunday.
  - `unlimitedCapacity` boolean, nullable: When true, the shift has no limit on how many pieces of equipment can run at the same time, and `simultaneousEquipment` is not applied on any day. Omitted or null is saved as false.
  - `maxDailyNewJobs` integer, nullable: Maximum number of new jobs to schedule per shift, 0 or more. Omitted or null means no maximum.
  - `availableEquipment` DepartmentShiftEquipmentSaveDto[], nullable: The equipment available during the shift. Each `equipmentId` must be equipment in the shift's department and can be listed only once. The server fills each `equipmentName` from the equipment. Omitted or null means no equipment, so an update clears the list.
    - `equipmentId` string, required: Id of the equipment. It must be equipment in one of the shift's department's work centers, and it can be listed only once. Please reference the /api/equipment endpoint.
    - `monday` boolean, nullable: Available on Monday. Omitted or null is saved as false.
    - `tuesday` boolean, nullable: Available on Tuesday. Omitted or null is saved as false.
    - `wednesday` boolean, nullable: Available on Wednesday. Omitted or null is saved as false.
    - `thursday` boolean, nullable: Available on Thursday. Omitted or null is saved as false.
    - `friday` boolean, nullable: Available on Friday. Omitted or null is saved as false.
    - `saturday` boolean, nullable: Available on Saturday. Omitted or null is saved as false.
    - `sunday` boolean, nullable: Available on Sunday. Omitted or null is saved as false.
  - `departmentId` string, required: Id of the department that works this shift. The department must exist and not be deleted. It cannot be changed after the shift is created. Please reference the /api/departments endpoint.

## Response `200`

Department shift created; the body holds its id

- CreatedResponseDto: Response for a created record
  - `id` string, required: The id of the created record

## Other responses

- `400`: Validation issues with input, a department that does not exist or is deleted, or an `availableEquipment` entry that is null, repeated or not in the department

## Changes

- **2026-10-01** `6a28a0af3246`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/department-shifts/post.md)

---

[API](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi.md) - [All operations](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/llms.txt) - [OpenAPI document](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/revisions/c9e6f41852d1?raw)
