Staffing Calendar: Retrieving, Creating, and Booking Shifts via the API

In this article, you can read about retrieving staffing calendar shifts, creating new shifts, and booking shifts to a job via the API.

Get Shifts in the Staffing Calendar

GET

Retrieves information about the Staffing Calendar shifts for a project.

https://api.recman.io/v2/get/index.php?scope=staffingCalendar&key={{api_key}}&page=1&projectId=856623&fromDate=2018-10-01&toDate=
2026-10-01&booked=0&minStaffingCalendarId=9241963
FieldTypeRequiredDescription
scopestringRequiredMust be set to staffingCalendar
keystringRequiredYour API key
pageintegerRequiredPage number
projectIdintegerRequiredID of the related project
fromDatedateOptionalSearch parameter. Start of date range, format "YYYY-MM-DD"
toDatedateOptionalSearch parameter. End of date range, format "YYYY-MM-DD"
bookedintegerOptionalSearch parameter. 0 = only unbooked shifts, 1 = only booked (confirmed) shifts
minStaffingCalendarIdintegerOptionalSearch parameter. Only returns results with ID equal to or greater than the given value
candidateIdintegerOptionalSearch parameter. Retrieves shifts connected to a specific candidate ID
candidateIdsstringOptionalSearch parameter. Retrieves shifts connected to multiple candidate IDs, comma-separated (e.g. "5788046,5788047")

Note

Different search parameters can be combined to narrow down the fetch request more precisely.

Each returned shift includes the following fields:

FieldTypeDescription
staffingCalendarIdintegerThe ID of the shift
projectIdintegerThe ID of the related project
namestringName of the shift
startDtdate-timeStart date and time of the shift, 
format "Y-m-d H:i:s"
endDtdate-timeEnd date and time of the shift, 
format "Y-m-d H:i:s"
breakTimestringBreak time, format "H:i:s"
bookedintegerWhether the shift is booked (0 or 1)
jobIdintegerThe ID of the job the shift is booked to, if any
createUserIdintegerThe ID of the user who created the shift
updateUserIdintegerThe ID of the user who last updated the shift
createddate-timeCreation date, format "Y-m-d H:i:s"
updateddate-timeLast updated date, format "Y-m-d H:i:s"
invoiceNotestringNote which ends up on the invoice
employeeNotestringNote visible to the employee
internalNotestringNote visible internally in the system
hasCandidateOfferintegerWhether a candidate offer exists for the shift (0 or 1)
hasCompanyOfferintegerWhether a company offer exists for the shift (0 or 1)

Create Shift in the Staffing Calendar

POST

Creates a new shift in the staffing calendar. The operation must be set to insert and the scope to
staffingCalendar.

https://api.recman.io/v2/post/
FieldTypeRequiredDescription
namestringRequiredName of the shift
projectIdintegerRequiredID of the related project
startDtdate-timeRequiredStart date and time of the shift, 
format "yyyy-mm-dd hh:mm:ss"
endDtdate-timeRequiredEnd date and time of the shift, 
format "yyyy-mm-dd hh:mm:ss"
breakTimestringOptionalBreak time, format "hh:mm:ss"
invoiceNotestringOptionalNote which ends up on the invoice
employeeNotestringOptionalNote which becomes visible to the employee
internalNotestringOptionalNote visible internally in the system

Note

To create a "whole day shift", set startDt and endDt like this: 
"startDt": "2026-01-20 00:00:00", "endDt": "2026-01-20 24:00:00" 
(or alternatively "endDt": "2026-01-21 00:00:00").

Book Shift in the Staffing Calendar

POST

Books a shift to a job. The operation must be set to insert and the scope to bookStaffingCalendar.

https://api.recman.io/v2/post/
FieldTypeRequiredDescription
staffingCalendarIdintegerRequiredID of the shift to book
jobIdintegerRequiredID of the job being booked
projectIdintegerRequiredID of the related project
validatebooleanOptional"0" or "1". Default is 1 if not defined. If set to 0, it ignores the AML check (validation of working hours / working too much warning)
Was this article helpful?
0 out of 0 found this helpful