API

Booked Scheduler Free Trial

Get started in seconds, completely free!

Getting Started with the API

The Booked API comes bundled with the Booked web application, though it is disabled by default.

To enable the API, open Application Configuration and set api enabled to true. Once the API is enabled it is available at http://<your-booked-url>/Web/Services

The complete, most up to date documentation on the API can be found on your local instance by simply opening http://<your-booked-url>/Web/Services in your browser.

API Basics

The Booked API is “REST-like”. All API methods are resource based and are accessible using plain HTTP requests sending and receiving JSON data.

When browsing the Booked live API documentation, each service description contains some important information.

Method Type – GET, POST, or DELETE
Name 
– This is the name of the service endpoint and the URL segment to use.

Description – A brief description of what the service does and any optional parameters.
Route – The full route and variables needed to invoke this endpoint. Any portion that begins with a : denotes a variable that must be provided. Pay attention to any trailing slashes – those are required when specified.
Response – An example JSON response (if applicable).
Request – An example JSON request (if applicable).

Authentication

Just like the web front end, most of the services that the API exposes
require an authenticated session. The documentation will note whether or
not a service is secure or not. Authentication for the API is straightforward:

  1. Make an Authenticate API request to /Authentication/Authenticate with your Booked credentials
  2. Capture the response as a local variable
  3. Send X-Booked-SessionToken and X-Booked-UserId headers on all subsequent requests, populated from the response in step 2

For example, an authentication flow that then pulls all reservations using jQuery would look something like this

const baseUrl = "http://your-booked-url/Web/Services/index.php";
let auth = {token: undefined, userId: undefined, headers: undefined};

$.ajax({
  type: "POST",
  url: baseUrl + "Authentication/Authenticate",
  data: JSON.stringify({username: "booked-username", password: "booked-password"}),
  dataType: "json"
})
.done(function (data) {
  if (data.isAuthenticated) {
    auth = {
      token: data.sessionToken,
      userId: data.userId,
      headers: {"X-Booked-SessionToken": data.sessionToken, "X-Booked-UserId": data.userId}
    };
  
    $.ajax({
      type: "GET",
      url: baseUrl + "Reservations/",
      dataType: "json",
      headers: auth.headers
    })
    .done(function (data) {
      alert(data.reservations);
    });
  }
  else {
    alert(data.message);
  }
});

Booked allows API-only users, as well. This is helpful if your instance uses SAML for authentication or if you want a limited access user just for API actions. API-only users can be set up by administrators in  Application Management > Users.

API Methods

This is the full documentation for the API as of Booked 2.10.1

The documentation specific to your version of Booked can be found on your local instance by simply opening http://<your-booked-url>/Web/Services in your browser.

Accessories

POST Services

None

GET Services

Name

GetAllAccessories

Description

Loads all accessories. CreditApplicability of 1 is per slot, 2 is per reservation

Route

/your-booked-url/Web/Services/index.php/Accessories/

This service is secure and requires authentication

Response

{“accessories”:[{“id”:1,”name”:”accessoryName”,”quantityAvailable”:3,”associatedResourceCount”:10,”creditCount”:1,”peakCreditCount”:2,”creditApplicability”:1,”creditsChargedAllSlots”:null,”links”:[],”message”:null}],”links”:[],”message”:null}

Name

GetAccessory

Description

Loads a specific accessory by id. CreditApplicability of 1 is per slot, 2 is per reservation

Route

/your-booked-url/Web/Services/index.php/Accessories/:accessoryId

This service is secure and requires authentication

Response

{“id”:1,”name”:”accessoryName”,”quantityAvailable”:10,”associatedResources”:[{“resourceId”:1,”minQuantity”:4,”maxQuantity”:10,”links”:[],”message”:null}],”creditCount”:1,”peakCreditCount”:2,”creditApplicability”:1,”links”:[],”message”:null}

DELETE Services

None

Accounts

POST Services

Name

CreateAccount

Description

Creates a user account. This does not authenticate

Route

/your-booked-url/Web/Services/index.php/Accounts/

Response

Unstructured response of type AccountCreatedResponse

Request

{“password”:”plaintextpassword”,”acceptTermsOfService”:true,”firstName”:”FirstName”,”lastName”:”LastName”,”emailAddress”:”email@address.com”,”userName”:”username”,”language”:”en_us”,”timezone”:”America\/New_York”,”phone”:”phone”,”organization”:”organization”,”position”:”position”,”customAttributes”:[{“attributeId”:1,”attributeValue”:”attribute value”}]}

Name

UpdateAccount

Description

Updates an existing user account

Route

/your-booked-url/Web/Services/index.php/Accounts/:userId

This service is secure and requires authentication

Response

Unstructured response of type AccountUpdatedResponse

Request

{“firstName”:”FirstName”,”lastName”:”LastName”,”emailAddress”:”email@address.com”,”userName”:”username”,”language”:”en_us”,”timezone”:”America\/New_York”,”phone”:”phone”,”organization”:”organization”,”position”:”position”,”customAttributes”:[{“attributeId”:1,”attributeValue”:”attribute value”}]}

Name

UpdatePassword

Description

Updates the password for an existing user

Route

/your-booked-url/Web/Services/index.php/Accounts/:userId/Password

This service is secure and requires authentication

Response

Unstructured response of type AccountUpdatedResponse

Request

{“currentPassword”:”plain.text.current.password”,”newPassword”:”plain.text.new.password”}

GET Services

Name

GetAccount

Description

Gets the currently authenticated users’s account information

Route

/your-booked-url/Web/Services/index.php/Accounts/:userId

This service is secure and requires authentication

Response

{“userId”:1,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”userName”:”username”,”language”:”en_us”,”timezone”:”America\/New_York”,”phone”:”phone”,”organization”:”organization”,”position”:”position”,”customAttributes”:[{“id”:123,”label”:”label”,”value”:”value”,”links”:[],”message”:null}],”icsUrl”:”webcal:\/\/path-to-calendar”,”links”:[],”message”:null}

DELETE Services

Attributes

POST Services

Name

CreateCustomAttribute

Description

Creates a new custom attribute. Allowed values for type: 1 (single line), 2 (multi line), 3 (select list), 4 (checkbox), 5 (datetime) Allowed values for categoryId: 1 (reservation), 2 (user), 4 (resource), 5 (resource type) appliesToIds only allowed for category 2, 4, 5 and must match the id of corresponding entities secondaryCategoryId and secondaryEntityIds only applies to category 1 and must match the id of the corresponding entities

Route

/your-booked-url/Web/Services/index.php/Attributes/

This service is secure and requires authentication

This service is only available to application administrators

Response

{“attributeId”:1,”links”:[{“href”:”http:\/\/url\/to\/attribute”,”title”:”get_custom_attribute”},{“href”:”http:\/\/url\/to\/update\/attribute”,”title”:”update_custom_attribute”}],”message”:null}

Request

{“label”:”attribute name”,”type”:1,”categoryId”:1,”regex”:”validation regex”,”required”:true,”possibleValues”:[“possible”,”values”,”only valid for select list”],”sortOrder”:100,”appliesToIds”:[10],”adminOnly”:true,”isPrivate”:true,”secondaryCategoryId”:1,”secondaryEntityIds”:[1,2]}

Name

UpdateCustomAttribute

Description

Updates and existing custom attribute Allowed values for type: 1 (single line), 2 (multi line), 3 (select list), 4 (checkbox), 5 (datetime) Allowed values for categoryId: 1 (reservation), 2 (user), 4 (resource), 5 (resource type) appliesToIds only allowed for category 2, 4, 5 and must match the id of corresponding entities secondaryCategoryId and secondaryEntityIds only applies to category 1 and must match the id of the corresponding entities

Route

/your-booked-url/Web/Services/index.php/Attributes/:attributeId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“attributeId”:1,”links”:[{“href”:”http:\/\/url\/to\/attribute”,”title”:”get_custom_attribute”},{“href”:”http:\/\/url\/to\/update\/attribute”,”title”:”update_custom_attribute”}],”message”:null}

Request

{“label”:”attribute name”,”type”:1,”categoryId”:1,”regex”:”validation regex”,”required”:true,”possibleValues”:[“possible”,”values”,”only valid for select list”],”sortOrder”:100,”appliesToIds”:[10],”adminOnly”:true,”isPrivate”:true,”secondaryCategoryId”:1,”secondaryEntityIds”:[1,2]}

GET Services

Name

GetCategoryAttributes

Description

Gets all custom attribute definitions for the requested category Categories are RESERVATION = 1, USER = 2, RESOURCE = 4

Route

/your-booked-url/Web/Services/index.php/Attributes/Category/:categoryId

This service is secure and requires authentication

Response

{“attributes”:[{“id”:1,”label”:”display label”,”type”:”Allowed values for type: 4 (checkbox), 2 (multi line), 3 (select list), 1 (single line)”,”categoryId”:”Allowed values for category: 1 (reservation), 4 (resource), 5 (resource type), 2 (user)”,”regex”:”validation regex”,”required”:true,”possibleValues”:[“possible”,”values”],”sortOrder”:100,”appliesToIds”:[10],”adminOnly”:true,”isPrivate”:true,”secondaryCategoryId”:1,”secondaryEntityIds”:[1,2],”links”:[],”message”:null}],”links”:[],”message”:null}

Name

GetAttribute

Description

Gets all custom attribute definitions for the requested attribute

Route

/your-booked-url/Web/Services/index.php/Attributes/:attributeId

This service is secure and requires authentication

Response

{“id”:1,”label”:”display label”,”type”:”Allowed values for type: 4 (checkbox), 2 (multi line), 3 (select list), 1 (single line)”,”categoryId”:”Allowed values for category: 1 (reservation), 4 (resource), 5 (resource type), 2 (user)”,”regex”:”validation regex”,”required”:true,”possibleValues”:[“possible”,”values”],”sortOrder”:100,”appliesToIds”:[10],”adminOnly”:true,”isPrivate”:true,”secondaryCategoryId”:1,”secondaryEntityIds”:[1,2],”links”:[],”message”:null}

DELETE Services

Name

DeleteCustomAttribute

Description

Deletes an existing custom attribute

Route

/your-booked-url/Web/Services/index.php/Attributes/:attributeId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“links”:[],”message”:”The item was deleted”}

Authentication

POST Services

Name

SignOut

Description

Missing Description

Route

/your-booked-url/Web/Services/index.php/Authentication/SignOut

Response

No response

Request

{“userId”:null,”sessionToken”:null}

Name

Authenticate

Description

Authenticates an existing Booked Scheduler user

Route

/your-booked-url/Web/Services/index.php/Authentication/Authenticate

Response

{“sessionToken”:”sessiontoken”,”sessionExpires”:”2021-04-22T11:59:54+0000″,”userId”:123,”isAuthenticated”:true,”version”:”1.0″,”links”:[],”message”:null}

Request

{“username”:null,”password”:null}

GET Services

DELETE Services

Groups

POST Services

Name

CreateGroup

Description

Creates a new group

Route

/your-booked-url/Web/Services/index.php/Groups/

This service is secure and requires authentication

This service is only available to application administrators

Response

{“attributeId”:1,”links”:[{“href”:”http:\/\/url\/to\/attribute”,”title”:”get_custom_attribute”},{“href”:”http:\/\/url\/to\/update\/attribute”,”title”:”update_custom_attribute”}],”message”:null}

Request

{“name”:”group name”,”isDefault”:true}

Name

UpdateGroup

Description

Updates and existing group

Route

/your-booked-url/Web/Services/index.php/Groups/:groupId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“groupId”:1,”links”:[{“href”:”http:\/\/url\/to\/group”,”title”:”get_group”},{“href”:”http:\/\/url\/to\/update\/group”,”title”:”update_group”},{“href”:”http:\/\/url\/to\/delete\/group”,”title”:”delete_group”}],”message”:null}

Request

{“name”:”group name”,”isDefault”:true}

Name

ChangeGroupRoles

Description

Updates the roles for an existing group roleIds : 1 (Group Administrator), 2 (Application Administrator), 3 (Resource Administrator), 4 (Schedule Administrator)

Route

/your-booked-url/Web/Services/index.php/Groups/:groupId/Roles

This service is secure and requires authentication

This service is only available to application administrators

Response

{“groupId”:1,”links”:[{“href”:”http:\/\/url\/to\/group”,”title”:”get_group”},{“href”:”http:\/\/url\/to\/update\/group”,”title”:”update_group”},{“href”:”http:\/\/url\/to\/delete\/group”,”title”:”delete_group”}],”message”:null}

Request

No request

Name

ChangeGroupPermissions

Description

Updates the permissions for an existing group

Route

/your-booked-url/Web/Services/index.php/Groups/:groupId/Permissions

This service is secure and requires authentication

This service is only available to application administrators

Response

{“groupId”:1,”links”:[{“href”:”http:\/\/url\/to\/group”,”title”:”get_group”},{“href”:”http:\/\/url\/to\/update\/group”,”title”:”update_group”},{“href”:”http:\/\/url\/to\/delete\/group”,”title”:”delete_group”}],”message”:null}

Request

No request

Name

ChangeGroupUsers

Description

Updates the permissions for an existing group

Route

/your-booked-url/Web/Services/index.php/Groups/:groupId/Users

This service is secure and requires authentication

This service is only available to application administrators

Response

{“groupId”:1,”links”:[{“href”:”http:\/\/url\/to\/group”,”title”:”get_group”},{“href”:”http:\/\/url\/to\/update\/group”,”title”:”update_group”},{“href”:”http:\/\/url\/to\/delete\/group”,”title”:”delete_group”}],”message”:null}

Request

No request

GET Services

Name

GetAllGroups

Description

Loads all groups

Route

/your-booked-url/Web/Services/index.php/Groups/

This service is secure and requires authentication

Response

{“groups”:[{“id”:1,”name”:”group name”,”isDefault”:true,”links”:[],”message”:null}],”links”:[],”message”:null}

Name

GetGroup

Description

Loads a specific group by id

Route

/your-booked-url/Web/Services/index.php/Groups/:groupId

This service is secure and requires authentication

Response

{“id”:123,”name”:”group name”,”adminGroup”:”http:\/\/url\/to\/group”,”permissions”:[“http:\/\/url\/to\/resource”],”viewPermissions”:[“http:\/\/url\/to\/resource”],”users”:[“http:\/\/url\/to\/user”],”roles”:[1,2],”isDefault”:true,”links”:[],”message”:null}

DELETE Services

Name

DeleteGroup

Description

Deletes an existing group

Route

/your-booked-url/Web/Services/index.php/Groups/:groupId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“links”:[],”message”:”The item was deleted”}

Reservations

POST Services

Name

CreateReservation

Description

Creates a new reservation

Route

/your-booked-url/Web/Services/index.php/Reservations/

This service is secure and requires authentication

Response

{“referenceNumber”:”referenceNumber”,”isPendingApproval”:true,”links”:[{“href”:”http:\/\/url\/to\/reservation”,”title”:”get_reservation”},{“href”:”http:\/\/url\/to\/update\/reservation”,”title”:”update_reservation”}],”message”:null}

Request

{“accessories”:[{“accessoryId”:1,”quantityRequested”:2}],”customAttributes”:[{“attributeId”:2,”attributeValue”:”some value”}],”description”:”reservation description”,”endDateTime”:”2021-04-22T11:59:54+0000″,”invitees”:[1,2,3],”participants”:[1,2],”participatingGuests”:[“participating.guest@email.com”],”invitedGuests”:[“invited.guest@email.com”],”recurrenceRule”:{“type”:”daily|monthly|none|weekly|yearly”,”interval”:3,”monthlyType”:”dayOfMonth|dayOfWeek|null”,”weekdays”:[0,1,2,3,4,5,6],”repeatTerminationDate”:”2021-04-22T11:59:54+0000″},”resourceId”:1,”resources”:[2,3],”startDateTime”:”2021-04-22T11:59:54+0000″,”title”:”reservation title”,”userId”:1,”startReminder”:{“value”:15,”interval”:”hours or minutes or days”},”endReminder”:null,”allowParticipation”:true,”retryParameters”:[{“name”:”name”,”value”:”value”}],”termsAccepted”:true}

Name

UpdateReservation

Description

Updates an existing reservation. Pass an optional updateScope query string parameter to restrict changes. Possible values for updateScope are this|full|future

Route

/your-booked-url/Web/Services/index.php/Reservations/:referenceNumber

This service is secure and requires authentication

Response

{“referenceNumber”:”referenceNumber”,”isPendingApproval”:true,”links”:[{“href”:”http:\/\/url\/to\/reservation”,”title”:”get_reservation”},{“href”:”http:\/\/url\/to\/update\/reservation”,”title”:”update_reservation”}],”message”:null}

Request

{“accessories”:[{“accessoryId”:1,”quantityRequested”:2}],”customAttributes”:[{“attributeId”:2,”attributeValue”:”some value”}],”description”:”reservation description”,”endDateTime”:”2021-04-22T11:59:54+0000″,”invitees”:[1,2,3],”participants”:[1,2],”participatingGuests”:[“participating.guest@email.com”],”invitedGuests”:[“invited.guest@email.com”],”recurrenceRule”:{“type”:”daily|monthly|none|weekly|yearly”,”interval”:3,”monthlyType”:”dayOfMonth|dayOfWeek|null”,”weekdays”:[0,1,2,3,4,5,6],”repeatTerminationDate”:”2021-04-22T11:59:54+0000″},”resourceId”:1,”resources”:[2,3],”startDateTime”:”2021-04-22T11:59:54+0000″,”title”:”reservation title”,”userId”:1,”startReminder”:{“value”:15,”interval”:”hours or minutes or days”},”endReminder”:null,”allowParticipation”:true,”retryParameters”:[{“name”:”name”,”value”:”value”}],”termsAccepted”:true}

Name

ApproveReservation

Description

Approves a pending reservation.

Route

/your-booked-url/Web/Services/index.php/Reservations/:referenceNumber/Approval

This service is secure and requires authentication

Response

{“referenceNumber”:”referenceNumber”,”isPendingApproval”:true,”links”:[{“href”:”http:\/\/url\/to\/reservation”,”title”:”get_reservation”},{“href”:”http:\/\/url\/to\/update\/reservation”,”title”:”update_reservation”}],”message”:null}

Request

No request

Name

CheckinReservation

Description

Checks in to a reservation.

Route

/your-booked-url/Web/Services/index.php/Reservations/:referenceNumber/CheckIn

This service is secure and requires authentication

Response

{“referenceNumber”:”referenceNumber”,”isPendingApproval”:true,”links”:[{“href”:”http:\/\/url\/to\/reservation”,”title”:”get_reservation”},{“href”:”http:\/\/url\/to\/update\/reservation”,”title”:”update_reservation”}],”message”:null}

Request

No request

Name

CheckoutReservation

Description

Checks out of a reservation.

Route

/your-booked-url/Web/Services/index.php/Reservations/:referenceNumber/CheckOut

This service is secure and requires authentication

Response

{“referenceNumber”:”referenceNumber”,”isPendingApproval”:true,”links”:[{“href”:”http:\/\/url\/to\/reservation”,”title”:”get_reservation”},{“href”:”http:\/\/url\/to\/update\/reservation”,”title”:”update_reservation”}],”message”:null}

Request

No request

GET Services

Name

GetReservations

Description

Gets a list of reservations for the specified parameters. Optional query string parameters: userId, resourceId, scheduleId, startDateTime, endDateTime. If no dates are provided, reservations for the next two weeks will be returned. If dates do not include the timezone offset, the timezone of the authenticated user will be assumed.

Route

/your-booked-url/Web/Services/index.php/Reservations/

This service is secure and requires authentication

Response

{“reservations”:[{“referenceNumber”:”refnum”,”startDate”:”2021-04-22T11:59:54+0000″,”endDate”:”2021-04-22T11:59:54+0000″,”firstName”:”first”,”lastName”:”last”,”resourceName”:”resourcename”,”title”:”reservation title”,”description”:”reservation description”,”requiresApproval”:true,”isRecurring”:true,”scheduleId”:22,”userId”:11,”resourceId”:123,”duration”:”1 hours 45 minutes”,”bufferTime”:”1 minutes”,”bufferedStartDate”:”2021-04-22T11:59:54+0000″,”bufferedEndDate”:”2021-04-22T11:59:54+0000″,”participants”:[“participant name”],”invitees”:[“invitee name”],”participatingGuests”:[],”invitedGuests”:[],”startReminder”:10,”endReminder”:10,”color”:”#FFFFFF”,”textColor”:”#000000″,”checkInDate”:”2021-04-22T11:59:54+0000″,”checkOutDate”:”2021-04-22T11:59:54+0000″,”originalEndDate”:”2021-04-22T11:59:54+0000″,”isCheckInEnabled”:true,”autoReleaseMinutes”:1,”resourceStatusId”:null,”creditsConsumed”:15,”links”:[],”message”:null}],”startDateTime”:null,”endDateTime”:null,”links”:[],”message”:null}

Name

GetReservation

Description

Loads a specific reservation by reference number

Route

/your-booked-url/Web/Services/index.php/Reservations/:referenceNumber

This service is secure and requires authentication

Response

{“referenceNumber”:”refnum”,”startDate”:”2021-04-22T11:59:54+0000″,”endDate”:”2021-04-22T11:59:54+0000″,”title”:”reservation title”,”description”:”reservation description”,”requiresApproval”:true,”isRecurring”:true,”scheduleId”:123,”resourceId”:123,”owner”:{“userId”:123,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”links”:[],”message”:null},”participants”:[{“userId”:123,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”links”:[],”message”:null}],”invitees”:[{“userId”:123,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”links”:[],”message”:null}],”customAttributes”:[{“id”:123,”label”:”label”,”value”:”value”,”links”:[],”message”:null}],”recurrenceRule”:{“type”:”daily|monthly|none|weekly|yearly”,”interval”:3,”monthlyType”:”dayOfMonth|dayOfWeek|null”,”weekdays”:[0,1,2,3,4,5,6],”repeatTerminationDate”:”2021-04-22T11:59:54+0000″},”attachments”:[{“url”:”http:\/\/example\/attachments\/url”}],”resources”:[{“id”:123,”name”:”resource name”,”type”:null,”groups”:null,”links”:[],”message”:null}],”accessories”:[{“id”:1,”name”:”Example”,”quantityAvailable”:12,”quantityReserved”:3,”links”:[],”message”:null}],”startReminder”:{“value”:15,”interval”:”hours or minutes or days”},”endReminder”:{“value”:15,”interval”:”hours or minutes or days”},”allowParticipation”:null,”checkInDate”:null,”checkOutDate”:null,”originalEndDate”:null,”isCheckInAvailable”:null,”isCheckoutAvailable”:null,”autoReleaseMinutes”:null,”links”:[],”message”:null}

DELETE Services

Name

DeleteReservation

Description

Deletes an existing reservation. Pass an optional updateScope query string parameter to restrict changes. Possible values for updateScope are this|full|future

Route

/your-booked-url/Web/Services/index.php/Reservations/:referenceNumber

This service is secure and requires authentication

Response

{“links”:[],”message”:”The item was deleted”}

Resources

POST Services

Name

CreateResource

Description

Creates a new resource

Route

/your-booked-url/Web/Services/index.php/Resources/

This service is secure and requires authentication

This service is only available to application administrators

Response

{“resourceId”:1,”links”:[{“href”:”http:\/\/url\/to\/resource”,”title”:”get_resource”},{“href”:”http:\/\/url\/to\/update\/resource”,”title”:”update_resource”}],”message”:null}

Request

{“name”:”resource name”,”location”:”location”,”contact”:”contact information”,”notes”:”notes”,”minLength”:”1d0h0m”,”maxLength”:”3600″,”requiresApproval”:true,”allowMultiday”:true,”maxParticipants”:100,”minNotice”:”86400″,”maxNotice”:”0d12h30m”,”description”:”description”,”scheduleId”:10,”autoAssignPermissions”:true,”customAttributes”:[{“attributeId”:1,”attributeValue”:”attribute value”}],”sortOrder”:1,”statusId”:1,”statusReasonId”:2,”autoReleaseMinutes”:15,”requiresCheckIn”:true,”color”:”#ffffff”,”credits”:3,”peakCredits”:6,”creditApplicability”:1,”creditsChargedAllSlots”:1,”maxConcurrentReservations”:1}

Name

UpdateResource

Description

Updates an existing resource

Route

/your-booked-url/Web/Services/index.php/Resources/:resourceId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“resourceId”:1,”links”:[{“href”:”http:\/\/url\/to\/resource”,”title”:”get_resource”},{“href”:”http:\/\/url\/to\/update\/resource”,”title”:”update_resource”}],”message”:null}

Request

{“name”:”resource name”,”location”:”location”,”contact”:”contact information”,”notes”:”notes”,”minLength”:”1d0h0m”,”maxLength”:”3600″,”requiresApproval”:true,”allowMultiday”:true,”maxParticipants”:100,”minNotice”:”86400″,”maxNotice”:”0d12h30m”,”description”:”description”,”scheduleId”:10,”autoAssignPermissions”:true,”customAttributes”:[{“attributeId”:1,”attributeValue”:”attribute value”}],”sortOrder”:1,”statusId”:1,”statusReasonId”:2,”autoReleaseMinutes”:15,”requiresCheckIn”:true,”color”:”#ffffff”,”credits”:3,”peakCredits”:6,”creditApplicability”:1,”creditsChargedAllSlots”:1,”maxConcurrentReservations”:1}

GET Services

Name

GetStatuses

Description

Returns all available resource statuses

Route

/your-booked-url/Web/Services/index.php/Resources/Status

Response

{“statuses”:[{“id”:0,”name”:”Hidden”},{“id”:1,”name”:”Available”},{“id”:2,”name”:”Unavailable”}],”links”:[],”message”:null}

Name

GetAllResources

Description

Loads all resources

Route

/your-booked-url/Web/Services/index.php/Resources/

This service is secure and requires authentication

Response

{“resources”:[{“resourceId”:123,”name”:”resource name”,”location”:”location”,”contact”:”contact”,”notes”:”notes”,”minLength”:”2 minutes”,”maxLength”:”2 minutes”,”requiresApproval”:true,”allowMultiday”:true,”maxParticipants”:10,”minNoticeAdd”:”2 minutes”,”minNoticeUpdate”:”2 minutes”,”minNoticeDelete”:”2 minutes”,”maxNotice”:”2 minutes”,”description”:”resource description”,”scheduleId”:123,”icsUrl”:null,”statusId”:1,”statusReasonId”:3,”customAttributes”:[{“id”:123,”label”:”label”,”value”:”value”,”links”:[],”message”:null}],”typeId”:2,”groupIds”:null,”bufferTime”:”1 hours 30 minutes”,”autoReleaseMinutes”:15,”requiresCheckIn”:true,”color”:”#ffffff”,”credits”:3,”peakCredits”:6,”creditApplicability”:1,”creditsChargedAllSlots”:true,”maxConcurrentReservations”:1,”links”:[],”message”:null}],”links”:[],”message”:null}

Name

GetStatusReasons

Description

Returns all available resource status reasons

Route

/your-booked-url/Web/Services/index.php/Resources/Status/Reasons

This service is secure and requires authentication

Response

{“reasons”:[{“id”:1,”description”:”reason description”,”statusId”:2}],”links”:[],”message”:null}

Name

GetAvailability

Description

Returns resource availability for the requested resource (optional). “availableAt” and “availableUntil” will include availability through the next 7 days Optional query string parameter: dateTime. If no dateTime is requested the current datetime will be used.

Route

/your-booked-url/Web/Services/index.php/Resources/Availability

This service is secure and requires authentication

Response

{“resources”:[{“available”:true,”resource”:{“resourceId”:1,”name”:”resource name”,”scheduleId”:2,”statusId”:1,”statusReasonId”:123,”links”:[{“href”:”http:\/\/get-resource-url”,”title”:”get_resource”},{“href”:”http:\/\/get-schedule-url”,”title”:”get_schedule”}],”message”:null},”availableAt”:”2021-04-22T11:59:54+0000″,”availableUntil”:”2021-04-22T11:59:54+0000″,”links”:[{“href”:”http:\/\/get-user-url”,”title”:”get_user”},{“href”:”http:\/\/get-reservation-url”,”title”:”get_reservation”}],”message”:null}],”links”:[],”message”:null}

Name

GetGroups

Description

Returns the full resource group tree

Route

/your-booked-url/Web/Services/index.php/Resources/Groups

This service is secure and requires authentication

Response

{“groups”:[{“id”:0,”name”:”Resource Group 1″,”label”:”Resource Group 1″,”parent”:null,”parent_id”:null,”children”:[{“type”:”resource”,”group_id”:0,”resource_name”:”Resource 1″,”id”:”resource-0-1″,”label”:”Resource 1″,”resource_id”:1,”resourceAdminGroupId”:null,”scheduleId”:2,”statusId”:1,”scheduleAdminGroupId”:null,”requiresApproval”:false,”isCheckInEnabled”:true,”isAutoReleased”:true,”autoReleaseMinutes”:30,”minLength”:10,”resourceTypeId”:1,”color”:”#ffffff”,”textColor”:”#000000″,”maxConcurrentReservations”:2,”requiredResourceIds”:[2],”resourcePublicId”:”publicid1″},{“id”:1,”name”:”Resource Group 2″,”label”:”Resource Group 2″,”parent”:null,”parent_id”:0,”children”:[{“type”:”resource”,”group_id”:1,”resource_name”:”Resource 2″,”id”:”resource-1-1″,”label”:”Resource 2″,”resource_id”:1,”resourceAdminGroupId”:null,”scheduleId”:2,”statusId”:1,”scheduleAdminGroupId”:null,”requiresApproval”:true,”isCheckInEnabled”:false,”isAutoReleased”:false,”autoReleaseMinutes”:null,”minLength”:null,”resourceTypeId”:2,”color”:”#000000″,”textColor”:”#FFFFFF”,”maxConcurrentReservations”:1,”requiredResourceIds”:[1],”resourcePublicId”:”publicid2″}],”type”:”group”}],”type”:”group”}],”links”:[],”message”:null}

Name

GetResource

Description

Loads a specific resource by id

Route

/your-booked-url/Web/Services/index.php/Resources/:resourceId

This service is secure and requires authentication

Response

{“resourceId”:123,”name”:”resource name”,”location”:”location”,”contact”:”contact”,”notes”:”notes”,”minLength”:”2 minutes”,”maxLength”:”2 minutes”,”requiresApproval”:true,”allowMultiday”:true,”maxParticipants”:10,”minNoticeAdd”:”2 minutes”,”minNoticeUpdate”:”2 minutes”,”minNoticeDelete”:”2 minutes”,”maxNotice”:”2 minutes”,”description”:”resource description”,”scheduleId”:123,”icsUrl”:null,”statusId”:1,”statusReasonId”:3,”customAttributes”:[{“id”:123,”label”:”label”,”value”:”value”,”links”:[],”message”:null}],”typeId”:2,”groupIds”:null,”bufferTime”:”1 hours 30 minutes”,”autoReleaseMinutes”:15,”requiresCheckIn”:true,”color”:”#ffffff”,”credits”:3,”peakCredits”:6,”creditApplicability”:1,”creditsChargedAllSlots”:true,”maxConcurrentReservations”:1,”links”:[],”message”:null}

Name

GetAvailability

Description

Returns resource availability for the requested resource (optional). “availableAt” and “availableUntil” will include availability through the next 7 days Optional query string parameter: dateTime. If no dateTime is requested the current datetime will be used.

Route

/your-booked-url/Web/Services/index.php/Resources/:resourceId/Availability

This service is secure and requires authentication

Response

{“resources”:[{“available”:true,”resource”:{“resourceId”:1,”name”:”resource name”,”scheduleId”:2,”statusId”:1,”statusReasonId”:123,”links”:[{“href”:”http:\/\/get-resource-url”,”title”:”get_resource”},{“href”:”http:\/\/get-schedule-url”,”title”:”get_schedule”}],”message”:null},”availableAt”:”2021-04-22T11:59:54+0000″,”availableUntil”:”2021-04-22T11:59:54+0000″,”links”:[{“href”:”http:\/\/get-user-url”,”title”:”get_user”},{“href”:”http:\/\/get-reservation-url”,”title”:”get_reservation”}],”message”:null}],”links”:[],”message”:null}

DELETE Services

Name

DeleteResource

Description

Deletes an existing resource

Route

/your-booked-url/Web/Services/index.php/Resources/:resourceId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“links”:[],”message”:”The item was deleted”}

Schedules

POST Services

GET Services

Name

GetAllSchedules

Description

Loads all schedules

Route

/your-booked-url/Web/Services/index.php/Schedules/

This service is secure and requires authentication

Response

{“schedules”:[{“daysVisible”:5,”id”:123,”isDefault”:true,”name”:”schedule name”,”timezone”:”timezone_name”,”weekdayStart”:0,”availabilityBegin”:”2021-04-22T11:59:54+0000″,”availabilityEnd”:”2021-05-12T11:59:54+0000″,”maxResourcesPerReservation”:10,”totalConcurrentReservationsAllowed”:0,”links”:[],”message”:null}],”links”:[],”message”:null}

Name

GetSchedule

Description

Loads a specific schedule by id

Route

/your-booked-url/Web/Services/index.php/Schedules/:scheduleId

This service is secure and requires authentication

Response

{“daysVisible”:5,”id”:123,”isDefault”:true,”name”:”schedule name”,”timezone”:”timezone_name”,”weekdayStart”:0,”icsUrl”:”webcal:\/\/url\/to\/calendar”,”availabilityStart”:”2021-04-22T11:59:54+0000″,”availabilityEnd”:”2021-04-22T11:59:54+0000″,”maxResourcesPerReservation”:10,”totalConcurrentReservationsAllowed”:0,”periods”:[[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}],[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}],[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}],[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}],[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}],[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}],[{“start”:”2021-04-22T11:59:54+0000″,”end”:”2021-04-22T11:59:54+0000″,”label”:”label”,”startTime”:”11:59:54″,”endTime”:”11:59:54″,”isReservable”:true}]],”links”:[],”message”:null}

Name

GetSlots

Description

Loads slots for a specific schedule Optional query string parameters: resourceId, startDateTime, endDateTime. If no dates are provided the default schedule dates will be returned. If dates do not include the timezone offset, the timezone of the authenticated user will be assumed.

Route

/your-booked-url/Web/Services/index.php/Schedules/:scheduleId/Slots

This service is secure and requires authentication

Response

{“dates”:[{“date”:”2021-04-22T11:59:54+0000″,”resources”:[{“slots”:[{“slotSpan”:4,”isReserved”:true,”label”:”username”,”isReservable”:false,”color”:”#ffffff”,”startDateTime”:”2021-04-22T11:59:54+0000″,”endDateTime”:”2021-04-22T11:59:54+0000″,”reservation”:{“referenceNumber”:”refnum”,”startDate”:”2021-04-22T11:59:54+0000″,”endDate”:”2021-04-22T11:59:54+0000″,”firstName”:”first”,”lastName”:”last”,”resourceName”:”resourcename”,”title”:”reservation title”,”description”:”reservation description”,”requiresApproval”:true,”isRecurring”:true,”scheduleId”:22,”userId”:11,”resourceId”:123,”duration”:”1 hours 45 minutes”,”bufferTime”:”1 minutes”,”bufferedStartDate”:”2021-04-22T11:59:54+0000″,”bufferedEndDate”:”2021-04-22T11:59:54+0000″,”participants”:[“participant name”],”invitees”:[“invitee name”],”participatingGuests”:[],”invitedGuests”:[],”startReminder”:10,”endReminder”:10,”color”:”#FFFFFF”,”textColor”:”#000000″,”checkInDate”:”2021-04-22T11:59:54+0000″,”checkOutDate”:”2021-04-22T11:59:54+0000″,”originalEndDate”:”2021-04-22T11:59:54+0000″,”isCheckInEnabled”:true,”autoReleaseMinutes”:1,”resourceStatusId”:null,”creditsConsumed”:15,”links”:[],”message”:null},”links”:[],”message”:null}],”resourceId”:1,”resourceName”:”resourcename”,”links”:[],”message”:null}],”links”:[],”message”:null}],”links”:[],”message”:null}

DELETE Services

Users

POST Services

Name

CreateUser

Description

Creates a new user

Route

/your-booked-url/Web/Services/index.php/Users/

This service is secure and requires authentication

This service is only available to application administrators

Response

{“userId”:null,”links”:[{“href”:”http:\/\/url\/to\/user”,”title”:”get_user”},{“href”:”http:\/\/url\/to\/update\/user”,”title”:”update_user”}],”message”:null}

Request

{“password”:”unencrypted password”,”language”:”en_us”,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”userName”:”username”,”timezone”:”America\/Chicago”,”phone”:”123-456-7989″,”organization”:”organization”,”position”:”position”,”customAttributes”:[{“attributeId”:99,”attributeValue”:”attribute value”}],”groups”:[1,2,4]}

Name

UpdateUser

Description

Updates an existing user

Route

/your-booked-url/Web/Services/index.php/Users/:userId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“userId”:null,”links”:[{“href”:”http:\/\/url\/to\/user”,”title”:”get_user”},{“href”:”http:\/\/url\/to\/update\/user”,”title”:”update_user”}],”message”:null}

Request

{“firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”userName”:”username”,”timezone”:”America\/Chicago”,”phone”:”123-456-7989″,”organization”:”organization”,”position”:”position”,”customAttributes”:[{“attributeId”:99,”attributeValue”:”attribute value”}],”groups”:[1,2,4]}

Name

UpdatePassword

Description

Updates the password for an existing user

Route

/your-booked-url/Web/Services/index.php/Users/:userId/Password

This service is secure and requires authentication

This service is only available to application administrators

Response

{“userId”:null,”links”:[{“href”:”http:\/\/url\/to\/user”,”title”:”get_user”},{“href”:”http:\/\/url\/to\/update\/user”,”title”:”update_user”}],”message”:null}

Request

{“password”:”plaintext password”}

GET Services

Name

GetAllUsers

Description

Loads all users that the current user can see. Optional query string parameters: username, email, firstName, lastName, phone, organization, position and any custom attributes. If searching on custom attributes, the query string parameter has to be in the format att#=value. For example, Users/?att1=ExpectedAttribute1Value

Route

/your-booked-url/Web/Services/index.php/Users/

This service is secure and requires authentication

Response

{“users”:[{“id”:1,”userName”:”username”,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”phoneNumber”:”phone”,”dateCreated”:”2021-04-22T11:59:54+0000″,”lastLogin”:”2021-04-22T11:59:54+0000″,”statusId”:”statusId”,”timezone”:”timezone”,”organization”:”organization”,”position”:”position”,”language”:”language_code”,”customAttributes”:[{“id”:123,”label”:”label”,”value”:”value”,”links”:[],”message”:null}],”currentCredits”:”2.50″,”reservationColor”:”#000000″,”links”:[],”message”:null}],”links”:[],”message”:null}

Name

GetUser

Description

Loads the requested user by Id

Route

/your-booked-url/Web/Services/index.php/Users/:userId

This service is secure and requires authentication

Response

{“id”:1,”userName”:”username”,”firstName”:”first”,”lastName”:”last”,”emailAddress”:”email@address.com”,”phoneNumber”:”phone”,”lastLogin”:”2021-04-22T11:59:54+0000″,”statusId”:”statusId”,”timezone”:”timezone”,”organization”:”organization”,”position”:”position”,”language”:”language_code”,”icsUrl”:”webcal:\/\/url\/to\/calendar”,”defaultScheduleId”:1,”currentCredits”:”2.50″,”reservationColor”:”#000000″,”customAttributes”:[{“id”:123,”label”:”label”,”value”:”value”,”links”:[],”message”:null}],”permissions”:[{“id”:123,”name”:”resource name”,”type”:null,”groups”:null,”links”:[],”message”:null}],”groups”:[{“id”:1,”name”:”group name”,”isDefault”:null,”roleIds”:null,”links”:[],”message”:null}],”links”:[],”message”:null}

DELETE Services

Name

DeleteUser

Description

Deletes an existing user

Route

/your-booked-url/Web/Services/index.php/Users/:userId

This service is secure and requires authentication

This service is only available to application administrators

Response

{“links”:[],”message”:”The item was deleted”}