CMS Tool API

CMS Tool API schema

Public API version 1.4.10.

Resource Calendar for Bookings

Bookings need to be made against a calendar. A resource might be a staff member, a room, a seat, or a hire item.

Endpoint URL

https://api.cms-tool.net/api/bookingresource

/api/bookingresource

Read and update bookable resources.

GET

List records, or retrieve one by appending its ID to the path.

Query parameters

NameTypeExampleNotes
idint123Filter results by id.
pidint123Filter results by pid.
resourcenametextexampleFilter results by resourcename.
resourceemailtextcustomer@example.comFilter results by resourceemail.
resourcetypetextexampleFilter results by resourcetype.
offsetint123Skip this many matching records before returning results.
pageSizeint123Limit the number of records returned.

POST

Create or update a record from a JSON object.

Request content type: application/json

Request body fields

NameTypeExampleNotes
idint123Set the id value.
resourcenametextexampleSet the resourcename value.
resourceemailtextcustomer@example.comSet the resourceemail value.
resourcetagstextexampleSet the resourcetags value.
pidint123Set the pid value.

Data definitions

FieldTypeDescriptionFormatExample
sat_starttimeFinish time for this resource if different to the business global timetable23:59:59
resourcetagstextTags to help associate staff that match service offerings.. eg which staff has which skills.
resource_uidintStaff User ID associated with this calendar. Not all calenders have a user ID
min_booking_noticeintervalMinimum booking notice (prior to booking) if different to global settings01:00:00
wed_starttimeStart time for this resource if different to the business global timetable23:59:59
min_booking_durationintervalMinimum booking duration if different to global settings01:00:00
calsynclasttimestampTimestamp of last sync2025-12-31 23:59:59
pidintFor hire items, each unique item had it's own calendar, and this ID links them to the product for hire
mon_finishtimeFinish time for this resource if different to the business global timetable23:59:59
max_booking_noticeintervalMax booking notice (prior to booking) if different to global settings01:00:00
wed_finishtimeFinish time for this resource if different to the business global timetable23:59:59
tue_starttimeStart time for this resource if different to the business global timetable23:59:59
sun_starttimeStart time for this resource if different to the business global timetable23:59:59
max_booking_durationintervalMax booking duration if different to global settings01:00:00
sun_finishtimeFinish time for this resource if different to the business global timetable23:59:59
availablefromdateBookings available from, eg when this resource becomes available, starts, back from holiday etc.2025-12-31
fri_starttimeStart time for this resource if different to the business global timetable23:59:59
sat_finishtimeFinish time for this resource if different to the business global timetable23:59:59
resourceidserialUnique ID for each calendar, system generated integer ID123456
fri_finishtimeFinish time for this resource if different to the business global timetable23:59:59
thu_finishtimeFinish time for this resource if different to the business global timetable23:59:59
calsync_calendar_idtextThe GUID of the external calendar to sync with
resourcetypetextLimited to: HireItem, Accommodation, Person, Seat
tue_finishtimeFinish time for this resource if different to the business global timetable23:59:59
availableuntildateBookings not allowed after this date, employee termination date?2025-12-31
mon_starttimeStart time for this resource if different to the business global timetable23:59:59
calsync_apitextCurrently only supports value: GOOGLE_CALENDAR
staff_booking_spacingintervalthe preferred interval between bookings for a rest/tidy/clean etc.01:00:00
thu_starttimeStart time for this resource if different to the business global timetable23:59:59
resourceemailtextEmail to send bookings to
resourcenametextName of calendar, eg staff name, or room number
calsync_last_outputtextLast output from the sync process for debug purposes

Usage instructions and examples

Add a new resource

You do not need to provide the id if you want to add a new resource. The rest of the information will be used to create the new resource.

Example

{

"calendar_increment": "01:00:00",

   "min_booking_duration": "00:05:00",

   "max_booking_duration": "01:00:00",

   "resourcename": "Test"

}
            

Update a resouce

Please provide the id of the resource you wish to update. Only provide the information you wish to update.

{ 

  "id": 123,

  "resourcename": "Test",

  "max_booking_duration": "01:00:00"

}
            

Sample object

{

      "sat_start": "09:00:00",

      "calendar_increment": "00:30:00",

      "min_booking_notice": "00:30:00",

      "wed_start": "09:00:00",

      "min_booking_duration": "02:00:00",

      "pid": 0,

      "mon_finish": "17:00:00",

      "max_booking_notice": "11 mons",

      "wed_finish": "17:00:00",

      "tue_start": "09:00:00",

      "sun_start": "09:00:00",

      "max_booking_duration": "02:00:00",

      "sun_finish": "17:00:00",

      "id": 2368,

      "fri_start": "09:00:00",

      "sat_finish": "17:00:00",

      "resourceid": 2368,

      "fri_finish": "17:00:00",

      "thu_finish": "17:00:00",

      "resourcetype": "Person",

      "tue_finish": "17:00:00",

      "mon_start": "09:00:00",

      "thu_start": "09:00:00",

      "resourcename": "Test Name",

      "cid": 1111

   }

Machine-readable documentation

This documentation is also available as JSON or Markdown at the same URL. Request JSON with Accept: application/json or Markdown with Accept: text/markdown.