Calendar

Calendar

The Calendar API is used to access the different events that appear on the calendar of upcoming appointments on your business' account. 

You can either build your own calendar to display events or use a third-party plugin to make calls to the calendar API to show appointment, class session, and time off events in a calendar format

 


 

Calendar API Endpoints

These are the endpoints that are available under the /calendar path, which lists all the different events you have scheduled on your business' calendar.

Endpoint

Description

Endpoint

Description

GET /calendar/range/{staffIdList}

Return events as determined by the parameters that get passed in the URL in array format. The staffIdList is passed in the URL as a comma-separated list of staff IDs.

GET /calendar/event/{eventType}/{eventId}

Returns an array of 1 event object. Possible values for eventType include "APPOINTMENT", "CLASS", "TIME_OFF", and "VACATION".

 


 

Calendar API Parameters

Data points passed on in the request URL portion of the API call that are used to filter the data being requested. 

Parameter

Type

Required

Endpoints to be used with

Description

Parameter

Type

Required

Endpoints to be used with

Description

endDate

string

Yes

GET /calendar/range/{staffIdList}

Should be set as the end date of the calendar range to be displayed - formatted as YYYY-MM-DD. 

hideEmptyClasses

integer

 

GET /calendar/range/{staffIdList}

Can be set to 0 or 1; if set to 0 then classes with no attendees WILL return, if set to 0 then classes with no attendees WILL NOT return.

locationGroupIdList

integer array

 

GET /calendar/range/{staffIdList}

Should be set as a comma-separated list of locationGroupIds connected to the events you want returned.

locationIdList

integer array

 

GET /calendar/range/{staffIdList}

Should be set as a comma-separated list of locationIds connected to the events you want returned.

serviceIdList

integer array

 

GET /calendar/range/{staffIdList}

Should be set as a comma-separated list of reasonIds connected to the events you want returned.

showBuffer

boolean

 

GET /calendar/range/{staffIdList}, GET /calendar/{eventType}/{eventId}

If set to true, the GET call will return events that reflect the startTime and endTime properties. If set to false, the GET call will return events that reflect the clientStartTime and clientEndTime properties.

showPaid

integer

 

GET /calendar/range/{staffIdList}

Can be set to 0 or 1; if set to 0, the backend will check whether or not the appointment has been assigned to an invoice and if that invoice is closed which will set the paid boolean property of the calendar event object to true or false conditionally. If it is set to 0, then there is no check on the backend and the paid property will just always return as false.

showTimeOff

boolean

 

GET /calendar/range/{staffIdList}

If set to true, GET calls will return events of eventType = TIME_OFF. If set to false, GET calls will not return these events. 

startDate

string

 

GET /calendar/range/{staffIdList}

Should be set as the start date of the calendar range to be displayed - formatted as YYYY-MM-DD. 

statusList

string array

 

GET /calendar/range/{staffIdList}

Should be set as a comma-separated list of appointment subStatuses to be displayed. Should be sent to endpoint as they are directly stored in the database as retrieved from the GET status endpoint - for more info, see Status API page.

 


 

Calendar API Responses

[{ "allDay": false, "appointmentType": "CLASS", "attendees": ["Jonny Beok", "Simon Sez", "Jimmy Begood", "Jim Brown", "Jane Deer", "Jay Kay"], "color": "#668CD9", "end": "Thu Jan 31 2019 12:00:00 UTC+0000", "endDateTimeUTC": "Thu Jan 31 2019 12:00:00 UTC+0000", "id": 34432800, "paid": false, "readOnly": false, "recurringAppointmentId": null, "start": "Thu Jan 31 2019 09:00:00 UTC+0000", "startDateTimeUTC": "Thu Jan 31 2019 09:00:00 UTC+0000", "status": "OPEN", "subStatus": "OPEN", "title": "[6/8] Fox Taming Jonny Beok↵Simon Sez↵Jimmy Begood↵Jim Brown↵Jane Deer↵Jay Kay", "uninvoiced": false }]
[{ "allDay": false, "appointmentType": "APPOINTMENT", "attendees": null, "color": "#668CD9", "end": "Thu Jan 31 2019 11:00:00 UTC+0000", "endDateTimeUTC": "Thu Jan 31 2019 11:00:00 UTC+0000", "id": 18750296, "paid": false, "readOnly": false, "recurringAppointmentId": 148121, "start": "Thu Jan 31 2019 10:00:00 UTC+0000", "startDateTimeUTC": "Thu Jan 31 2019 10:00:00 UTC+0000", "status": "OPEN", "subStatus": "CHECKEDIN", "title": "Jane Deer for Dog Training with Mr. Biscuits", "uninvoiced": false }]

 


 

Calendar Object Values

Property name

Type

Description

Property name

Type

Description

allDay

boolean

Indicates whether or not the specified event is set as an all day event on your appointments calendar.

appointmentType

string

Displays as the appointment type of the specified event. Has available options "APPOINTMENT", "CLASS", "TIME_OFF", and "VACATION".

attendees

array

Displays as an array of all the class attendees for the specified event - this array only gets filled for events of appointmentType = CLASS.

color

string

Displays as the hexadecimal code representing the color used to show the specified event.

end

string

Displays as when the specified event is set to end - takes the form of a js date object.

endDateTimeUTC

string

Displays as when the specified event is set to end - takes the form of a js date object.

id

integer

Provides a unique numeric ID for the specified event.

paid

boolean

Indicates whether or not the specified event has been assigned to an invoice that is set to a status of CLOSED.

readOnly

boolean

Indicates whether or not the specified event is classified as read only and thus cannot be edited. This typically occurs when an event is created using one of the third-party plugins.

recurringAppointmentId

integer

If the specified event makes up part of a recurring appointment series, this property displays as the ID of that series.

start

string

Displays as when the specified event is set to start - takes the form of a js date object.

startDateTimeUTC

string

Displays as when the specified event is set to start - takes the form of a js date object.

status

string

Displays as the status of the specified event.

subStatus

string

Displays as the substatus of the specified event.

title

string

Displays as the title of the specified event - by default takes the form "(Client name) for (service name) with (staff name)".

uninvoiced

boolean

Indicates whether or not the specified event is uninvoiced.