Scheduler Link

The Scheduler Link API is used to access, create, and modify the different scheduler link objects on your business' account. The Scheduler Link API is connected to the Staff API, Locations API, Groups API, and the Services API, though services are referred to as Reasons for these purposes. 

For the purposes of TimeTap, the schedulerLink objects represent the different custom booking sites on your business' account. On this page we will however refer to them as scheduler links to avoid confusion.

On this page




These are the endpoints that are available under the /schedulerLink path, which lists all the custom booking sites you have created on your business' account.

Endpoint

Description

GET /schedulerLinkReturns all schedulerLink objects on your business' account in array format.
GET /schedulerLink/{schedulerLinkId}Returns a JSON object for the specified scheduler link.
GET /schedulerLink/{objectType}/{objectId}Returns a JSON object for the scheduler link that corresponds to the specified objectType and objectId. Can have objectType values "STAFF", "LOCATION", "REASON", and "GROUP".
POST /schedulerLink

Creates a new schedulerLink object on your business' account.

Request body/payload:  Must pass a schedulerLink object in the request body/payload. 

For these calls, you need to pass a schedulerLink object with all required fields and any fields you want to set filled in the body of the payload - must include the schedulerType property that corresponds to where you created the specified scheduler link. We have an example of a schedulerLink object in the responses section below and have indicated the required fields in the object values table at the bottom of this page.

PUT /schedulerLink

Updates an existing schedulerLink object on your business' account.

Request body/payload:  Must pass a schedulerLink object in the request body/payload. 

For these calls, you need to pass a schedulerLink object with all required fields and any fields you want to update filled in the body of the payload - must include businessId and schedulerLinkId. We have an example of a schedulerLink object in the responses section below and have indicated the required fields in the object values table at the bottom of this page.

DELETE /schedulerLink/{schedulerLinkId}Removes a schedulerLink object from view by setting its active property to false.




There are no parameters associated with schedulerLink calls.





The objects below represent the minimum viable objects to pass that are needed to create or update a schedulerLink 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.

POST /schedulerLink
{
    "active": true,
    "allOrNoneSelect": {
        "locationGroups": {
            "label": "Select Location Groups",
            "value": "select"
        },
        "locations": {
            "label": "Select Locations",
            "value": "select"
        },
        "reasonGroups": {
            "label": "Select Reason Groups",
            "value": "select"
        },
        "reasons": {
            "label": "Select Services & Classes",
            "value": "select"
        },
        "staff": {
            "label": "Select Tutors",
            "value": "select"
    }},
    "appMode: null,
    "businessId": "43111",
    "classScheduleIdList": null,
    "domain": "timetap.com",
    "groupIdList": [
        "0": 31158,
        "1": 75774,
        "2": 36239
    ],
    "handle": "petzzz",
    "internalName": "petz",
    "locationGroupIdList": [
        "0": 31158
    ],
    "locationIdList": [
        "0": 81181,
        "1": 282639
    ],
    "logoUrl": null,
    "publish": true,
    "reasonGroupIdList": [
        "0": 75774,
        "1": 36239
    ],
    "reasonIdList": [
        "0": 240094,
        "1": 255109,
        "2": 546559
    ],
    "schedulerType": "LINK",
    "schedulerVersion": 5,
    "showPrivateGroup": true,
    "showPrivateLocation": true,
    "showPrivateReason": true,
    "showPrivateStaff": true,
    "showServiceGroup": true,
    "staffIdList": [
        "0": 298660,
        "1": 302120
    ],
    "vanity": false
}
PUT /schedulerLink
{
    "active": true,
    "allOrNoneSelect": {
        "locationGroups": {value: "all", label: "All Location Groups"},
        "locations": {value: "all", label: "All Locations"},
        "reasonGroups": {value: "all", label: "All Reason Groups"},
        "reasons": {value: "all", label: "All Services & Classes"},
        "staff": {value: "all", label: "All Staff"}
    },
    "appMode": 1,
    "appModeIncludes": ["LOCATION", "STAFF", "REASON"],
    "businessId": 43111,
    "classScheduleIdList": null,
    "createdDate": 1550166586055,
    "createdUser": "JoeSchmo",
    "domain": "timetap.com",
    "embedCode": "<iframe src='https://www.timetap.com/embed/biggerthanigly' frameborder='0' width='840' height='500'></iframe>",
    "groupIdList": [],
    "handle": "biggerthanigly",
    "internalName": "Custom booking site for Titus Bigly!",
    "labelJson": "(JSON text of scheduler link)",
    "labelMap": null,
    "locationAPIBeanList": [],
    "locationGroupAPIBeanList": [],
    "locationGroupIdList": null,
    "locationIdList": [],
    "logoUrl": null,
    "modifiedDate": null,
    "modifiedUser": null,
    "originalHandle": "biggerthanigly",
    "privateUrl": "https://biggerthanigly.timetap.com",
    "publish": true,
    "reasonAPIBeanList": [],
    "reasonGroupAPIBeanList": [],
    "reasonGroupIdList": null,
    "reasonIdList": [],
    "schedulerLinkId": 89629,
    "schedulerType": "STAFF",
    "schedulerVersion": 4,
    "showServiceGroup": true,
    "showServiceSuperGroup": true,
    "skipWelcome": false,
    "staffAPIBeanList": [{professionalId: 81651, fullName: "Titus Bigly", userName: null, email: null, phone: null,…}],
    "staffIdList": [81651],
    "vanity": true,
    "welcomeText": "(HTML text of welcome message)",
    "welcomeTextFormatted": {},
    "welcomeTitle": "Welcome"
}




GET /schedulerLink
[{
    "active": true,
    "appMode": null,
    "booleanJson": null,
    "booleanMap": null,
    "businessId": 43111,
    "classScheduleIdList": null,
    "clientSSO": null,
    "continueShoppingUrl": null,
    "createdDate": 1535556822353,
    "createdUser": "JoeSchmo",
    "defaultOnlyBusinessConfigProps": null,
    "defaultOnlyBusinessProps": null,
    "defaultOnlySchedPreferenceProps": null,
    "domain": "timetap.com",
    "googleAnalyticsCode": null,
    "googleTagManagerCode": null,
    "groupIdList": [],
    "handle": "s8btm6dnae",
    "hideFromBots": false,
    "internalName": "Custom booking site for Class A",
    "labelJson": null,
    "labelMap": null,
    "landingPageStylesJson": null,
    "locationGroupList": null,
    "locationIdList": [],
    "locationList": null,
    "locationSuperGroupList": null,
    "logoUrl": null,
    "miniWebRedirect": null,
    "modifiedDate": null,
    "modifiedUser": null,
    "numberJson": null,
    "numberMap": null,
    "privateUrl": "https://s8btm6dnae.timetap.com",
    "publish": true,
    "reasonGroupList": null,
    "reasonIdList": [255178],
    "reasonSuperGroupList": null,
    "schedulerLinkExclusions": null,
    "schedulerLinkId": 36697,
    "schedulerType": "REASON",
    "schedulerVersion": 5,
    "showPrivateGroup": true,
    "showPrivateLocation": false,
    "showPrivateReason": false,
    "showPrivateStaff": null,
    "showServiceGroup": null,
    "showServiceSuperGroup": null,
    "skipWelcome": false,
    "staffIdList": [],
    "staffList": null,
    "styleUrl": null,
    "vanity": false,
    "welcomeText": null,
    "welcomeTitle": null
    }],
GET /schedulerLink/{schedulerLinkId}
{
    "groupsList": [{
        "active": true,
        "allowOnline": true,
        "businessId": 43111,
        "groupId": 31289,
        "groupName": "Coastal Locations",
        "groupType": "LOCATION",
        "internalDisplayName": "Coastal Locations",
    }],
    "locationAPIBeanList": [{
        "active": true,
        "allowOnline": true,
        "businessId": 43111,
        "description": "",
        "internalDisplayName": "Beach Office",
        "internalName": "Beach Office",
        "locationId": 81181,
        "locationName": "Beach Office",
        "locationType": "PHYSICAL",
    }],
    "reasonAPIBeanList": [{
        "active": true,
        "allowOnline": true,
        "allowPrePay": false,
        "allowWaitList": false,
        "customWorkSchedule": 0,
        "internalDisplayName": "Surfing for Beginners",
        "personal": false,
        "reasonDesc": "Surfing for Beginners",
        "reasonId": 177850,
        "taxable": false,
        "visitMinutes": 60,
    }],
    "schedulerLink": {
        "active": true,
        "appMode": null,
        "businessId": 43111,
        "classScheduleIdList": null,
        "createdDate": 1540488717347,
        "createdUser": "MORGANKEARNEY",
        "domain": "timetap.com",
        "groupIdList": [31289],
        "handle": "sv9rfvaek2",
        "internalName": "Pets plus",
        "labelJson: "(JSON text of scheduler link)",
        "labelMap": "(JSON text of labels that have ben altered)",
        "locationIdList": [81181, 157670],
        "logoUrl": null,
        "modifiedDate": 1546619658025,
        "modifiedUser": "MORGANKEARNEY",
        "privateUrl: "https://sv9rfvaek2.timetap.com".
        "publish": true,
        "reasonIdList": [240127, 255109, 240094, 159330],
        "schedulerLinkId": 62833,
        "schedulerType": "LINK",
        "skipWelcome": false,
        "staffIdList": [82275, 80891],
        "vanity": false,
        "welcomeText": "(Welcome text of scheduler link)",
        "welcomeTitle": "Welcome to Pets Plus Scheduler"
    },
    "staffAPIBeanList": []
}
POST /schedulerLink
{
    "active": true,
    "appMode": null,
    "booleanJson": null,
    "booleanMap": null,
    "businessId": 43111,
    "classScheduleIdList": null,
    "clientSSO": null,
    "continueShoppingUrl": null,
    "createdDate": 1691440216874,
    "createdUser": "JoeSchmo",
    "defaultOnlyBusinessConfigProps": null,
    "defaultOnlyBusinessProps": null,
    "defaultOnlySchedPreferenceProps": null,
    "domain": "timetap.com",
    "googleAnalyticsCode": null,
    "googleTagManagerCode": null,
    "groupIdList": [
        "0": 31158,
        "1": 75774,
        "2": 36329
    ],
    "handle": "petzzz",
    "hideFromBots": null,
    "internalName": "petz",
    "labelJson": null,
    "labelMap": null,
    "landingPageStylesJSON": null,
    "locationGroupList": null,
    "locationIdList": [
        "0": 81181,
        "1": 282639
    ],
    "locationList": null,
    "locationSuperGroupList": null,
    "logoUrl": null,
    "miniWebRedirect": null,
    "modifiedDate": null,
    "modifiedUser": null,
    "numberJson": null,
    "numberMap": null,
    "privateUrl": "https://petzzz.timetap.com",
    "publish": true,
    "reasonGroupList": null,
    "reasonIdList": [
        "0": 240094,
        "1": 255109,
        "2": 546559
    ],
    "reasonList": null,
    "reasonSuperGroupList": null,
    "schedulerLinkExclusions": null,
    "schedulerLinkId": 262944,
    "schedulerType": "LINK",
    "schedulerVersion": 5,
    "showPrivateGroup": true,
    "showPrivateLocation": true,
    "showPrivateReason": true,
    "showPrivateStaff": true,
    "showServiceGroup": true,
    "showServiceSuperGroup": null,
    "skipWelcome": false,
    "staffIdList": [
        "0": 298660,
        "1": 302120
    ],
    "staffList": null,
    "styleUrl": null,
    "vanity": true,
    "welcomeText": null,
    "welcomeTitle": null
}
PUT /schedulerLink/{schedulerLinkId}
{
    "active": true,
    "appMode": 1,
    "businessId": 43111,
    "classScheduleIdList": null,
    "createdDate": 1535471045575,
    "createdUser": "MORGANKEARNEY",
    "domain": "timetap.com",
    "groupIdList": [31289, 36239],
    "handle": "8wruu5dok5",
    "internalName": "Beach Combers",
    "labelJson": "(JSON text of scheduler link)",
    "labelMap": null,
    "locationIdList": [81181, 157670],
    "logoUrl": null,
    "modifiedDate": 1547229165068,
    "modifiedUser": "MORGANKEARNEY",
    "privateUrl": "https://8wruu5dok5.timetap.com",
    "publish": true,
    "reasonIdList": [240127, 255109, 240094, 159330],
    "schedulerLinkId": 36235,
    "schedulerType": "LINK",
    "skipWelcome": false,
    "staffIdList": [154514, 80891, 81651],
    "vanity": false,
    "welcomeText": "({Welcome text of scheduler link)",
    "welcomeTitle": "Welcome"
}




Property nameTypeRequiredDescription
activebooleanYesIndicates whether or not the specified scheduler link is active.
appModeintegerYesDisplays as the appMode of the specified scheduler link - for more info on appMode and a table describing the different values, see the Scheduler Preference API page. If this property is left null, that means that the schedulerLink will pick up the values from the default scheduler on the account.
booleanJsonarray
Provides an array of various booleans to check any values set there to see if they override any values set on the pref_scheduler object.
booleanMaparray
Provides an array of boolean properties for the specified scheduler link. 
businessIdintegerYesProvides unique numeric ID for the business the specified scheduler link belongs to.
classScheduleIdListarray
Displays as a list of the IDs of any class schedules connected to the specified scheduler link.
clientSSOboolean
Indicates whether or not the specified scheduler link allows for client Single Sign On.
continueShoppingUrlstring
Displays what is set as the Button Redirect URL for the specified scheduler link.
createdDateinteger
Displays as date the specified scheduler link was created in milliseconds elapsed since January 1, 1970 00:00:00 UTC form.
createdUserstring
Displays the username of user who created the specified scheduler link.
defaultOnlyBusinessConfigPropsarray
Provides an array of settings set on the business_config table that apply to the default scheduler link.
defaultOnlyBusinessPropsarray
Provides an array of settings set on the business table that apply to the default scheduler link.
defaultOnlySchedPreferencePropsarray
Provides an array of settings set on the pref_scheduler table that apply to the default scheduler link.
domainstringYesDisplays as the domain of the specified scheduler link. For the purposes of TimeTap, this will be set to "timetap.com".
googleAnalyticsCodestring
Displays as the Google Analytics code for the specified scheduler link.
googleTagManagerCodestring
Displays as the Google Tag Manager code for the specified scheduler link.
groupIdListarray
Displays as a list of the IDs of any groups connected to the specified scheduler link.
handlestringYesDisplays as the what is set as the webhandle of the specified scheduler link. If nothing is set here, TimeTap will generate a unique alphanumeric string to fill it.
hideFromBotsboolean
Indicates whether or not the specified scheduler will be hidden from bots.
internalNamestring
Displays as what is set as the Internal Name of the specified scheduler link upon its creation.
labelJsonstring
Displays as a string representation of the JSON object describing the the labels used for the specified scheduler link.
labelMapobject
Should mimic the properties and values stored on labelJson, just using object representation instead of a string.
landingPageStylesJsonarray
Displays all changes that have been made to the default booking site's styles on the specified scheduler link.
locationGroupListstring
Displays as a list of the names of any location groups that are set to show on the specified scheduler link.
locationIdListarray
Displays as a list of the IDs of any locations that are set to show on the specified scheduler link.
locationListstring
Displays as a list of the names of any locations that are set to show on the specified scheduler link.
locationSuperGroupListsting
Displays as a list of the names of any location super groups that are set to show on the specified scheduler link.
logoUrlstring

if this property is left null, that means that the schedulerLink will pick up the values from the default scheduler on the account. 

miniWebRedirectstring

modifiedDateinteger
Displays as date the specified scheduler link was last modified in milliseconds elapsed since January 1, 1970 00:00:00 UTC form.
modifiedUserstring
Displays the username of user who last modified the specified scheduler link.
numberJsonstring
Displays as a property on the scheduler_link table where you can set overrides for several of the number based properties on the pref_scheduler table.
numberMapstring
Displays as a readable object that is equivalent to the numberJson property.
privateUrlstring
Displays as the URL of the specified scheduler link as set on the Webhandle - gets formed by combining the domain and handle of the specified scheduler link.
publishbooleanYesIndicates whether or not the box signifying Publish Booking Site is checked - acts as a way to temporarily disable the schedulerLink from being active to clients without deleting it entirely.
reasonGroupListstring
Displays as a list of the names of any reason groups that are set to show on the specified scheduler link.
reasonIdListarray
Displays as a list of the IDs of any reasons that are set to show on the specified scheduler link.
reasonListstring
Displays as a list of usernames of any reasons that are set to show on the specified scheduler link.
reasonSuperGroupListstring
Displays as a list of the names of any reason super groups that are set to show on the specified scheduler link.
schedulerLinkExclusionsarray

schedulerLinkIdintegerYes, on PUT callsProvides unique numeric ID of the specified scheduler link.
schedulerTypestringYesDisplays as the scheduler type of the specified scheduler link - this property will be set to LINK if you are creating a scheduler link object by choosing to "Add New Booking Site" on the TimeTap website under Custom Booking Sites. It could also be set to LOCATION, LOCATION_GROUP, STAFF, REASON, or REASON_GROUP if you are creating the scheduler link from a specific object profile of the corresponding object type.
schedulerVersioninteger
Displays the version of the scheduler used by the specified scheduler link - the newer scheduler is version 5, but a few older accounts still use version 4.
showPrivateGroupboolean
Indicates whether or not the specified scheduler link is set to show private location groups and reason groups in its scheduler flow.
showPrivateLocationboolean
Indicates whether or not the specified scheduler link is set to show private locations in its scheduler flow.
showPrivateReasonboolean
Indicates whether or not the specified scheduler link is set to show private services and classes in its scheduler flow.
showPrivateStaffboolean
Indicates whether or not the specified scheduler link is set to show private staff in its scheduler flow.
showServiceGroupboolean
Indicates whether or not the specified scheduler link is set to show reason super groups in its scheduler flow.
showServiceSuperGroupboolean
Indicates whether or not the specified scheduler link is set to show reason groups in its scheduler flow.
skipWelcomeboolean
Indicates whether or not the specified scheduler link is set to skip the welcome page - if this property is left null, that means that the schedulerLink will pick up the values from the default scheduler on the account. 
staffIdListinteger
Displays as a list of the IDs of any staff that are connected to the specified scheduler link.
staffListarray
Displays as a list of usernames of any staff that are set to show on the specified scheduler link.
styleUrlinteger
Optional stylesheet url that can be applied to header of scheduler to override default styles; must be set as an HTTPS URL.
vanitybooleanYesIndicates whether or not you chose to set your own individual handle - if you do not, TimeTap will generate a unique alphanumeric code automatically.
welcomeTextstring
Displays as what is set as the Welcome Text under Customizations in the specified scheduler link's profile - if this property is left null, that means that the schedulerLink will pick up the values from the default scheduler on the account.
welcomeTitlestring
Displays as what is set as the Welcome Title under Customizations in the specified scheduler link's profile - if this property is left null, that means that the schedulerLink will pick up the values from the default scheduler on the account.