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": {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": null,
    "businessId": "43111",
    "classScheduleIdList": null,
    "domain": "timetap.com",
    "groupIdList": [],
    "handle": "biggerthanigly",
    "internalName": "Custom booking site for Titus Bigly",
    "locationIdList": [],
    "logoUrl": null,
    "publish": true,
    "reasonIdList": [],
    "schedulerType": "STAFF",
    "schedulerVersion": 4,
    "staffIdList": [81651],
    "vanity": false,
    "welcomeText": null,
    "welcomeTitle": null
}
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,
    "businessId": 43111,
    "classScheduleIdList": null,
    "createdDate": 1535556822353,
    "createdUser": "MORGANKEARNEY",
    "domain": "timetap.com",
    "groupIdList": [],
    "handle": "s8btm6dnae",
    "internalName": "Custom booking site for Class A",
    "labelJson": null,
    "labelMap": null,
    "locationIdList": [],
    "logoUrl": null,
    "modifiedDate": null,
    "modifiedUser": null,
    "privateUrl": "https://s8btm6dnae.timetap.com",
    "publish": true,
    "reasonIdList": [255178],
    "schedulerLinkId": 36697,
    "schedulerType": "REASON",
    "skipWelcome": false,
    "staffIdList": [],
    "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,
    "businessId": 43111,
    "classScheduleIdList": null,
    "createdDate": 1547240542396,
    "createdUser": "MORGANKEARNEY",
    "domain": "timetap.com",
    "groupIdList": [31289],
    "handle": "surfsup",
    "internalName": "Surfers Anonymous",
    "labelJson": null,
    "labelMap": null,
    "locationIdList": [81181],
    "logoUrl": null,
    "modifiedDate": null,
    "modifiedUser": null,
    "privateUrl": "https://surfsup.timetap.com",
    "publish": true,
    "reasonIdList": [177850],
    "schedulerLinkId": 86475,
    "schedulerType": "LINK",
    "skipWelcome": false,
    "staffIdList": 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.
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.
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.
domainstringYesDisplays as the domain of the specified scheduler link. For the purposes of TimeTap, this will be set to "timetap.com".
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.
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.
locationIdListarray
Displays as a list of the IDs of any locations connected to 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. 

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.
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.
reasonIdListarray
Displays as a list of the IDs of any reasons connected to the specified scheduler link.
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.
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. 
staffIdListarray
Displays as a list of the IDs of any staff connected to the specified scheduler link.
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.