Recurring Appointments
The Recurring Appointments API is used to access, create, and modify any recurring appointments on your business' account. The Recurring Appointments API is separate from the Recurring Class Schedule API, since TimeTap treats appointment time slots differently than class time slots as unlike in the case of classes only one customer can book each appointment. It is also separate from the Appointments API, as recurring appointments are set to repeat on a weekly or monthly basis.
Whenever you create a appointment object using a recurringcappointment update, that object will have the recurringAppointmentId property filled. On the TimeTap site these appointments are usually referred to as 'repeating appointments'.
Recurring Appointments API Endpoints
These are the endpoints that are available under the /recurringappointments path, which shows any appointments you have set up to repeat on a weekly or monthly basis.
Endpoint | Description |
|---|---|
GET /recurringappointments/{recurringAppointmentId} | Returns a JSON object for specified recurring appointment series. |
POST /recurringappointments | Creates a new recurringappointments object on an account. Request body/payload: Must pass a recurringappointments object in the request body/payload. For these calls, you need to pass a recurringappointments object with all required fields and any fields you want to set filled in the body of the payload. We have an example of a recurringappointments object in the responses section below and have indicated the required fields in the object values table at the bottom of this page. |
POST /recurringappointments/get/dates | Returns an array of dates in string format that match recurring appointment frequency. Request body/payload: Must pass a recurringappointments object in the request body/payload. |
PUT /recurringappointments/{recurringAppointmentId} | Updates an existing recurringappointments object. If you want to cancel a recurring appointment series you would use this endpoint to set the status property to "Cancelled". Request body/payload: Must pass a recurringappointments object with the desired changes made in the request body/payload. For these calls, you need to pass a recurringappointments object with all required fields and any fields you want to update filled in the body of the payload. We have an example of a recurringappointments object in the responses section below and have indicated the required fields in the object values table at the bottom of this page. |
PUT /recurringappointments/{recurringAppointmentId}/updateByAppt | Updates an existing recurringappointments object by comparing the original appointment to the updatedAppt passed in the body of the PUT call (see below) to see which fields were updated. Request body/payload: Must pass a recurringappointments object formatted as such: {
recurringAppt: recurringAppointment object to be updated
updatedAppt: appointment that got updated
} |
Recurring Appointments API Parameters
Data points passed on in the request URL portion of the API call that are used to filter the data that is being requested. To aid with page load time, we have included pageNumber and pageSize parameters for server side pagination.
Parameters | Type | Endpoints to be used with | Description |
|---|---|---|---|
dateSelected | string | PUT /recurrringappointments/{recurringAppointmentId}, PUT /recurringappointments/{recurringAppointmentId}/updateByAppt | Should be set to the start date of the recurring appointment series you are editing formatted as YYYY-MM-DD. |
effectiveFollowingThisDate | integer | PUT /recurringappointments/{recurringAppointmentId}, PUT /recurringappointments/{recurringAppointmentId}/updateByAppt |
|
resetStartDay | boolean | PUT /recurrringappointments/{recurringAppointmentId}, PUT /recurringappointments/{recurringAppointmentId}/updateByAppt | Flag for whether or not to send invites to waitlist registrants. If true then will see if anybody is waitlisted for the timeslots that are getting cancelled and will invite them automatically. |
sendWaitListInvites | boolean | PUT /recurrringappointments/{recurringAppointmentId}, PUT /recurringappointments/{recurringAppointmentId}/updateByAppt | Flag for whether or not to send invites to waitlist registrants. If true then will see if anybody is waitlisted for the timeslots that are getting cancelled and will invite them automatically. |
Recurring Appointments API Request Body/Payloads
The objects below represent the minimum viable objects to pass that are needed to create or update a recurringappointments object. Check whether or not a property can be written to by looking at the Object Values table below to see if the property is writable.
Recurring Appointments API Responses
Recurring Appointments Object Values
Property name | Type | Required | Writable | Description |
|---|---|---|---|---|
additionalStaffIdList | array |
| Yes | Displays as staff IDs for any additional staff connected to the specified recurring appointment. |
address | string |
| Yes | Displays as the address of the specified recurring appointment. |
adhoc |
|
|
|
|
blockStaffIdList | array |
| Yes | Displays staffIds for any additional staff members you have added so they cannot be otherwise booked for this time slot. Whatever IDs are added to the additionalStaffIdList are automatically added to the blockStaffIdList. The blockStaffIdList is used to automatically block off staff across child accounts in our enterprise set up model. |
blockedStaffList | array |
| Yes | Displays an array of staff objects for any additional staff members you have added in the blockStaffIdList or additionalStaffIdList. |
businessId | integer | Yes |
| Provides unique numeric ID of the business to which the specified recurring appointment belongs. |
cancelReason | string |
| Yes | Displays any reason given for cancelling the specified recurring appointment. |
changeReason | string |
| Yes | Displays any reason given for changing the specified recurring appointment. |
classScheduleIdList | array |
|
| Displays as a list of the IDs of any class schedules connected to the specified recurring appointment. |
classScheduleList | array |
| Yes | Displays an array of objects representing the available class schedules when adding a recurring appointment of reasonType CLASS. |
client | object |
| Yes | Displays the object of client who is connected to specified appointment - for more info, see Clients API page. |
clientEndTime | integer |
| Yes | Displays as time specified appointment is set to end displayed in military format. |
clientId | integer |
|
| Provides unique numeric ID of client who is connected to specified appointment. |
clientReminderHours | integer |
| Yes | Displays the number of hours before the appointment that an email reminder will be sent to the client. |
clientStartTime | integer |
| Yes | Displays as time specified appointment is set to begin displayed in military format. |
color | string |
|
| Displays any color chosen to override the specified recurring appointment in the backoffice calendar. |
coordinatorStaff | object |
| Yes | Displays staff object for the staff member that was the coordinator staff for specified appointment. The coordinator staff's schedule is not blocked. For more info, see Staff API page. |
createdBy | string |
|
| Displays as the username of the user that created the specified recurring appointment. |
customFieldData | string |
|
| Displays the label and value properties of any scheduler preference field objects that have the mode property set to APPT so that users can inject these into email templates with 1 centralized tag which is %CUSTOM_FIELDS% |
dateCreated | integer |
|
| Displays as the date the specified recurring appointment was created in milliseconds elapsed since January 1, 1970 00:00:00 UTC form. |
dateModified |
|
|
| Displays as the date the specified recurring appointment was last modified in milliseconds elapsed since January 1, 1970 00:00:00 UTC form. |
dates | array |
|
| Displays an array of dates that an appointment from the specified recurring appointment is scheduled on. |
discount | integer |
| Yes | This displays as the total dollar value that was taken off the price of specified appointment. |
endDate | string |
| Yes | Provides a string representation of the date the recurring class session ends written as YYYY-MM-DD; if set to null then the schedule will repeat indefinitely. |
endTime | integer | Yes | Yes | Provides the time specified class ends, displayed in military format. |
everyXMonths | integer |
| Yes | Displays as number of months class schedule is set to recurr on. (Required if type is set to "M") |
everyXWeeks | integer |
| Yes | Displays as number of weeks class schedule is set to recurr on. (Required if type is set to "W") |
fields | array |
| Yes | Displays an array of any custom field objects you have added during the class schedule setup - for more info, see Scheduler Field API page. |
fri | boolean |
|
| Indicates whether or not the recurring class schedule is set to repeat on Fridays. |
getSendConfirmationToClient | boolean |
|
|
|
location | object | Yes | Yes | Displays the location object assigned to the specified class session - for more info, see Locations API page. |
locationGroup | object |
| Yes | If you assign the class session to a specific location group, then this would be the object of that location group - for more info, see Groups API page. |
locationId | integer |
|
| Provides unique numeric ID for the location of the specified recurring appointment. |
locationSuperGroup | object |
| Yes | If you assign the class session to a specific location super group, then this would be the object of that location super group. |
modifiedBy | strong |
|
| Displays as the username of the user that last modified the specified recurring appointment. |
mon | boolean |
|
| Indicates whether or not the recurring class schedule is set to repeat on Mondays. |
note | string |
| Yes | Displays as note added to appointment profile in default comments field. |
paid | boolean |
|
| Indicates whether or not the specified recurring appointment has been paid for yet. |
price | string |
| Yes | Displays as the price set for the specified recurring appointment after adjusting for any coupons that may have been used. |
reason | object | Yes | Yes | Displays the reason object assigned to the specified class session - for more info, see Services API page. |
reasonId | integer |
|
| Provides unique numeric ID for reason of specified appointment. |
recurringAppointmentId | integer | Yes, on PUT calls |
| Provides a unique numeric ID for specified recurring appointment. |
recurringSchedule |
|
|
|
|
remindClientSmsHours | integer |
| Yes | Displays the number of hours before the appointment that an SMS reminder will be sent to the client. |
remindStaffSmsHours | integer |
| Yes | Displays the number of hours before the appointment that an SMS reminder will be sent to the staff. |
repeatStaffIds | integer |
|
| Displays as a list of IDs of staff connected to the specified recurring appointment. |
resource | object |
| Yes | Displays any resource object connected to the recurring appointment - for more info, see Resources API page. |
sat | boolean |
|
| Indicates whether or not the recurring appointment is set to repeat on Saturdays. |
seats | integer |
| Yes |