{"files":{"SKILL.md":"---\nname: onsched-setup-api\ndescription: \"OnSched Setup API skill. Use when working with OnSched Setup for setup. Covers 139 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# OnSched Setup API\nAPI version: v1\n\n## Auth\nOAuth2\n\n## Base URL\nhttps://sandbox-api.onsched.com/\n\n## Setup\n1. Configure auth: OAuth2\n2. GET /setup/v1/appointments -- list appointments\n3. POST /setup/v1/businessusers -- create first businessuser\n\n## Endpoints\n139 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Setup\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /setup/v1/appointments | List Appointments |\n| GET | /setup/v1/appointments/{id} | Get Appointment |\n| PUT | /setup/v1/appointments/{id}/reassign/resource/{resourceId} | Reassign Appointment |\n| GET | /setup/v1/businessusers | List Users |\n| POST | /setup/v1/businessusers | Create User |\n| GET | /setup/v1/businessusers/{id} | Get User |\n| PUT | /setup/v1/businessusers/{id} | Update User |\n| DELETE | /setup/v1/businessusers/{id} | Delete User |\n| GET | /setup/v1/businessusers/permissions | List User Permissions |\n| GET | /setup/v1/businessusers/{email}/companies | List User Companies |\n| GET | /setup/v1/calendars | List Calendars |\n| POST | /setup/v1/calendars | DEPRECATING: Create |\n| GET | /setup/v1/calendars/{id} | Get Calendar |\n| PUT | /setup/v1/calendars/{id} | Update Calendar |\n| DELETE | /setup/v1/calendars/{id} | Delete Calendar |\n| PUT | /setup/v1/calendars/{id}/recover | Recover Calendar |\n| GET | /setup/v1/calendars/{id}/services | List Calendar Services |\n| GET | /setup/v1/calendars/{id}/blocks | List Calendar Blocks |\n| GET | /setup/v1/calendars/blocks/{id} | Get Calendar Block |\n| POST | /setup/v1/calendars/{id}/block | Create Calendar Block |\n| PUT | /setup/v1/calendars/block/{id} | Update Calendar Block |\n| DELETE | /setup/v1/calendars/block/{id} | Delete Calendar Block |\n| GET | /setup/v1/companies | Get Company |\n| PUT | /setup/v1/companies | Update Company |\n| POST | /setup/v1/companies | Create Company |\n| GET | /setup/v1/companies/domains | List Company Domains |\n| POST | /setup/v1/companies/domains | Create Company Domain |\n| GET | /setup/v1/companies/domains/{id} | Get Company Domain |\n| PUT | /setup/v1/companies/domains/{id} | Update Company Domain |\n| DELETE | /setup/v1/companies/domains/{id} | Delete Company Domain |\n| GET | /setup/v1/companies/regions | List Regions |\n| POST | /setup/v1/companies/regions | Create Region |\n| GET | /setup/v1/companies/regions/{id} | Get Region |\n| PUT | /setup/v1/companies/regions/{id} | Update Region |\n| DELETE | /setup/v1/companies/regions/{id} | Delete Region |\n| GET | /setup/v1/companies/email/templates | List Email Templates |\n| GET | /setup/v1/companies/email/templates/{templateName} | Get Email Template |\n| GET | /setup/v1/companies/email/templates/master | Get Master Template Settings |\n| POST | /setup/v1/companies/email/templates/master | Create Master Template Settings |\n| DELETE | /setup/v1/companies/email/templates/master | Delete Master Template Settings |\n| GET | /setup/v1/companies/timezones/{date} | List Time Zones |\n| GET | /setup/v1/customers | List Customers |\n| GET | /setup/v1/customers/{id} | Get Customer |\n| GET | /setup/v1/customers/{id}/privacy | Get Customer Data |\n| GET | /setup/v1/locations | List Locations |\n| POST | /setup/v1/locations | Create Location |\n| GET | /setup/v1/locations/{id} | Get Location |\n| PUT | /setup/v1/locations/{id} | Update Location |\n| DELETE | /setup/v1/locations/{id} | Delete Location |\n| POST | /setup/v1/locations/bulk | Create Locations Bulk |\n| PUT | /setup/v1/locations/{id}/settings/scope/{settingsScope} | Update Location Scope |\n| PUT | /setup/v1/locations/{id}/holidays/{holidayId}/{closed} | Update Location Holidays |\n| PUT | /setup/v1/locations/{id}/recover | Recover Location |\n| GET | /setup/v1/locations/{id}/services | List Location Linked Services |\n| POST | /setup/v1/locations/{id}/services | Create Linked Service |\n| DELETE | /setup/v1/locations/{id}/services | Delete Linked Services |\n| GET | /setup/v1/locations/services/{id} | Get Linked Service |\n| DELETE | /setup/v1/locations/services/{id} | Unlink Service |\n| POST | /setup/v1/locations/{id}/uploadimage | Upload Location Image |\n| DELETE | /setup/v1/locations/{id}/deleteimage | Delete Location Image |\n| DELETE | /setup/v1/locations/{id}/deleteallimages | Delete All Location Images |\n| GET | /setup/v1/locations/{id}/email/templates | List Email Templates |\n| POST | /setup/v1/locations/{id}/email/templates | Create Custom Template |\n| GET | /setup/v1/locations/{id}/email/templates/{templateName} | Get Email Template |\n| DELETE | /setup/v1/locations/{id}/email/templates/{templateName} | Delete Custom Template |\n| GET | /setup/v1/locations/{id}/email/templates/master | Get Master Template Settings |\n| POST | /setup/v1/locations/{id}/email/templates/master | Create Master Template Settings |\n| DELETE | /setup/v1/locations/{id}/email/templates/master | Delete Master Template Settings |\n| GET | /setup/v1/locations/{id}/google/service/account | Google Service Account Info |\n| POST | /setup/v1/locations/{id}/google/service/account | Create Google Cal Access |\n| DELETE | /setup/v1/locations/{id}/google/service/account | Delete Google Cal Access |\n| GET | /setup/v1/locations/{id}/appointmentreminders | Get Reminders |\n| PUT | /setup/v1/locations/{id}/appointmentreminders | Update Reminders |\n| GET | /setup/v1/resourcegroups | List Resource Groups |\n| POST | /setup/v1/resourcegroups | Create Resource Group |\n| GET | /setup/v1/resourcegroups/{id} | Get Resource Group |\n| PUT | /setup/v1/resourcegroups/{id} | Update Resource Group |\n| DELETE | /setup/v1/resourcegroups/{id} | Delete Resource Group |\n| PUT | /setup/v1/resourcegroups/{id}/recover | Recover Resource Group |\n| GET | /setup/v1/resources | List Resources |\n| POST | /setup/v1/resources | Create Resource |\n| GET | /setup/v1/resources/{id} | Get Resource |\n| PUT | /setup/v1/resources/{id} | Update Resource |\n| DELETE | /setup/v1/resources/{id} | Delete Resource |\n| GET | /setup/v1/resources/{id}/calendar/auth/google/{googleEmailAddress} | Get Resource Google URL |\n| GET | /setup/v1/resources/{id}/calendar/auth/outlook/{outlookEmailAddress} | Get Resource Outlook URL |\n| GET | /setup/v1/resources/timezones | Get Time Zones |\n| POST | /setup/v1/resources/bulk | Create Resources Bulk |\n| PUT | /setup/v1/resources/bulk | Update Resources Bulk |\n| PUT | /setup/v1/resources/{id}/reassign/appointments/{resourceId} | Reassign Resource |\n| PUT | /setup/v1/resources/{id}/recover | Recover Resource |\n| GET | /setup/v1/resources/{id}/availability | List Weekly Availability |\n| PUT | /setup/v1/resources/{id}/availability | Update Weekly Availability |\n| GET | /setup/v1/resources/{id}/allocations | List Resource Allocations |\n| POST | /setup/v1/resources/{id}/allocations | Create Allocation |\n| GET | /setup/v1/resources/allocations/{id} | Get Allocation |\n| PUT | /setup/v1/resources/allocations/{id} | Update Allocation |\n| DELETE | /setup/v1/resources/allocations/{id} | Delete Allocation |\n| GET | /setup/v1/resources/{id}/blocks | List Resource Blocks |\n| GET | /setup/v1/resources/blocks/{id} | Get Block |\n| POST | /setup/v1/resources/{id}/block | Create Block |\n| PUT | /setup/v1/resources/block/{id} | Update Block |\n| DELETE | /setup/v1/resources/block/{id} | Delete Block |\n| POST | /setup/v1/resources/{id}/services | Create Linked Services |\n| PUT | /setup/v1/resources/{id}/services | Update Linked Services |\n| DELETE | /setup/v1/resources/{id}/services | Delete Linked Services |\n| POST | /setup/v1/resources/{id}/uploadimage | Upload Resource Image |\n| DELETE | /setup/v1/resources/{id}/deleteimage | Delete Resource Image |\n| GET | /setup/v1/servicegroups | List Service Groups |\n| POST | /setup/v1/servicegroups | Create Service Group |\n| GET | /setup/v1/servicegroups/{id} | Get Service Group |\n| PUT | /setup/v1/servicegroups/{id} | Update Service Group |\n| DELETE | /setup/v1/servicegroups/{id} | Delete Service Group |\n| PUT | /setup/v1/servicegroups/{id}/recover | Recover Service Group |\n| GET | /setup/v1/services | List Services |\n| POST | /setup/v1/services | Create Service |\n| GET | /setup/v1/services/{id} | Get Service |\n| PUT | /setup/v1/services/{id} | Update Service |\n| DELETE | /setup/v1/services/{id} | Delete Service |\n| GET | /setup/v1/services/{id}/resources | List Resources for Service |\n| PUT | /setup/v1/services/{id}/recover | Recover Service |\n| GET | /setup/v1/services/{id}/blocks | List Service Blocks |\n| GET | /setup/v1/services/blocks/{id} | Get Block |\n| POST | /setup/v1/services/{id}/block | Create Block |\n| PUT | /setup/v1/services/block/{id} | Update Block |\n| DELETE | /setup/v1/services/block/{id} | Delete Block |\n| GET | /setup/v1/services/{id}/calendar | Get Linked Calendar |\n| POST | /setup/v1/services/calendar | Link Service to Calendar |\n| DELETE | /setup/v1/services/calendar/{id} | Delete Service Links |\n| GET | /setup/v1/services/{id}/availability | Get Weekly Availability |\n| PUT | /setup/v1/services/{id}/availability | Update Weekly Availability |\n| GET | /setup/v1/services/{id}/allocations | List Service Allocations |\n| POST | /setup/v1/services/{id}/allocations | Create Allocation |\n| GET | /setup/v1/services/allocations/{id} | Get Allocation |\n| PUT | /setup/v1/services/allocations/{id} | Update Allocation |\n| DELETE | /setup/v1/services/allocations/{id} | Delete Allocation |\n| POST | /setup/v1/services/{id}/allocations/bulk | Create Allocations Bulk |\n| POST | /setup/v1/services/{id}/uploadimage | Upload Service Image |\n| DELETE | /setup/v1/services/{id}/deleteimage | Delete Service Image |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all appointments?\" -> GET /setup/v1/appointments\n- \"Get appointment details?\" -> GET /setup/v1/appointments/{id}\n- \"Update a resource?\" -> PUT /setup/v1/appointments/{id}/reassign/resource/{resourceId}\n- \"List all businessusers?\" -> GET /setup/v1/businessusers\n- \"Create a businessuser?\" -> POST /setup/v1/businessusers\n- \"Get businessuser details?\" -> GET /setup/v1/businessusers/{id}\n- \"Update a businessuser?\" -> PUT /setup/v1/businessusers/{id}\n- \"Delete a businessuser?\" -> DELETE /setup/v1/businessusers/{id}\n- \"List all permissions?\" -> GET /setup/v1/businessusers/permissions\n- \"List all companies?\" -> GET /setup/v1/businessusers/{email}/companies\n- \"List all calendars?\" -> GET /setup/v1/calendars\n- \"Create a calendar?\" -> POST /setup/v1/calendars\n- \"Get calendar details?\" -> GET /setup/v1/calendars/{id}\n- \"Update a calendar?\" -> PUT /setup/v1/calendars/{id}\n- \"Delete a calendar?\" -> DELETE /setup/v1/calendars/{id}\n- \"List all services?\" -> GET /setup/v1/calendars/{id}/services\n- \"List all blocks?\" -> GET /setup/v1/calendars/{id}/blocks\n- \"Get block details?\" -> GET /setup/v1/calendars/blocks/{id}\n- \"Create a block?\" -> POST /setup/v1/calendars/{id}/block\n- \"Update a block?\" -> PUT /setup/v1/calendars/block/{id}\n- \"Delete a block?\" -> DELETE /setup/v1/calendars/block/{id}\n- \"Create a company?\" -> POST /setup/v1/companies\n- \"List all domains?\" -> GET /setup/v1/companies/domains\n- \"Create a domain?\" -> POST /setup/v1/companies/domains\n- \"Get domain details?\" -> GET /setup/v1/companies/domains/{id}\n- \"Update a domain?\" -> PUT /setup/v1/companies/domains/{id}\n- \"Delete a domain?\" -> DELETE /setup/v1/companies/domains/{id}\n- \"List all regions?\" -> GET /setup/v1/companies/regions\n- \"Create a region?\" -> POST /setup/v1/companies/regions\n- \"Get region details?\" -> GET /setup/v1/companies/regions/{id}\n- \"Update a region?\" -> PUT /setup/v1/companies/regions/{id}\n- \"Delete a region?\" -> DELETE /setup/v1/companies/regions/{id}\n- \"List all templates?\" -> GET /setup/v1/companies/email/templates\n- \"Get template details?\" -> GET /setup/v1/companies/email/templates/{templateName}\n- \"List all master?\" -> GET /setup/v1/companies/email/templates/master\n- \"Create a master?\" -> POST /setup/v1/companies/email/templates/master\n- \"Get timezone details?\" -> GET /setup/v1/companies/timezones/{date}\n- \"List all customers?\" -> GET /setup/v1/customers\n- \"Get customer details?\" -> GET /setup/v1/customers/{id}\n- \"List all privacy?\" -> GET /setup/v1/customers/{id}/privacy\n- \"List all locations?\" -> GET /setup/v1/locations\n- \"Create a location?\" -> POST /setup/v1/locations\n- \"Get location details?\" -> GET /setup/v1/locations/{id}\n- \"Update a location?\" -> PUT /setup/v1/locations/{id}\n- \"Delete a location?\" -> DELETE /setup/v1/locations/{id}\n- \"Create a bulk?\" -> POST /setup/v1/locations/bulk\n- \"Update a scope?\" -> PUT /setup/v1/locations/{id}/settings/scope/{settingsScope}\n- \"Update a holiday?\" -> PUT /setup/v1/locations/{id}/holidays/{holidayId}/{closed}\n- \"Create a service?\" -> POST /setup/v1/locations/{id}/services\n- \"Get service details?\" -> GET /setup/v1/locations/services/{id}\n- \"Delete a service?\" -> DELETE /setup/v1/locations/services/{id}\n- \"Create a uploadimage?\" -> POST /setup/v1/locations/{id}/uploadimage\n- \"Create a template?\" -> POST /setup/v1/locations/{id}/email/templates\n- \"Delete a template?\" -> DELETE /setup/v1/locations/{id}/email/templates/{templateName}\n- \"List all account?\" -> GET /setup/v1/locations/{id}/google/service/account\n- \"Create a account?\" -> POST /setup/v1/locations/{id}/google/service/account\n- \"List all appointmentreminders?\" -> GET /setup/v1/locations/{id}/appointmentreminders\n- \"List all resourcegroups?\" -> GET /setup/v1/resourcegroups\n- \"Create a resourcegroup?\" -> POST /setup/v1/resourcegroups\n- \"Get resourcegroup details?\" -> GET /setup/v1/resourcegroups/{id}\n- \"Update a resourcegroup?\" -> PUT /setup/v1/resourcegroups/{id}\n- \"Delete a resourcegroup?\" -> DELETE /setup/v1/resourcegroups/{id}\n- \"List all resources?\" -> GET /setup/v1/resources\n- \"Create a resource?\" -> POST /setup/v1/resources\n- \"Get resource details?\" -> GET /setup/v1/resources/{id}\n- \"Delete a resource?\" -> DELETE /setup/v1/resources/{id}\n- \"Get google details?\" -> GET /setup/v1/resources/{id}/calendar/auth/google/{googleEmailAddress}\n- \"Get outlook details?\" -> GET /setup/v1/resources/{id}/calendar/auth/outlook/{outlookEmailAddress}\n- \"List all timezones?\" -> GET /setup/v1/resources/timezones\n- \"Update a appointment?\" -> PUT /setup/v1/resources/{id}/reassign/appointments/{resourceId}\n- \"List all availability?\" -> GET /setup/v1/resources/{id}/availability\n- \"List all allocations?\" -> GET /setup/v1/resources/{id}/allocations\n- \"Create a allocation?\" -> POST /setup/v1/resources/{id}/allocations\n- \"Get allocation details?\" -> GET /setup/v1/resources/allocations/{id}\n- \"Update a allocation?\" -> PUT /setup/v1/resources/allocations/{id}\n- \"Delete a allocation?\" -> DELETE /setup/v1/resources/allocations/{id}\n- \"List all servicegroups?\" -> GET /setup/v1/servicegroups\n- \"Create a servicegroup?\" -> POST /setup/v1/servicegroups\n- \"Get servicegroup details?\" -> GET /setup/v1/servicegroups/{id}\n- \"Update a servicegroup?\" -> PUT /setup/v1/servicegroups/{id}\n- \"Delete a servicegroup?\" -> DELETE /setup/v1/servicegroups/{id}\n- \"Update a service?\" -> PUT /setup/v1/services/{id}\n- \"List all calendar?\" -> GET /setup/v1/services/{id}/calendar\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api OnSched Setup API\n@base https://sandbox-api.onsched.com/\n@version v1\n@auth OAuth2\n@endpoints 139\n@hint download_for_search\n@toc setup(139)\n\n@endpoint GET /setup/v1/appointments\n@desc List Appointments\n@optional {locationId: str # id of business location, defaults to primary business location, email: str # Filter appointments by email address, lastname: str # Filter appointments by lastname or part of, serviceId: str # Filter appointments by service, calendarId: str # Filter appointments by calendar, resourceId: str # Filter appointments by resource, customerId: str # Filter appointments by customer, serviceAllocationId: str # Filter appointments by service allocation, startDate: str(date-time) # Format YYYY-MM-DD: Filter appointments by on/after startDate, endDate: str(date-time) # Format YYYY-MM-DD: Filter appointments on/before endDate, status: str # Filter appointments by status: IN, BK, CN, RE, RS, bookedBy: str # Filter appointments by user email who booked, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint GET /setup/v1/appointments/{id}\n@desc Get Appointment\n@required {id: str # id of appointment object}\n@returns(200) {object: str?, id: str?, locationId: str?, businessName: str?, calendarId: str?, serviceId: str?, serviceName: str?, serviceImageUrl: str?, resourceId: str?, resourceName: str?, resourceGroupId: str?, resourceGroupName: str?, resourceImageUrl: str?, resourceEmail: str?, customerId: str?, serviceAllocationId: str?, rescheduledId: str?, createDate: str?, startDateTime: str?, endDateTime: str?, dateInternational: str?, date: str?, time: int(int32), duration: int(int32), timezone: int(int32)?, timezoneId: str?, timezoneIana: str?, ipAddress: str?, status: str?, confirmationNumber: str?, downloadIcsUrl: str?, bookedBy: str?, onlineBooking: bool?, confirmed: bool, email: str?, name: str?, lastname: str?, firstname: str?, phone: str?, phoneType: str?, phoneExt: str?, customerMessage: str?, notes: str?, groupSize: int(int32)?, lastModifiedOn: str?, lastModifiedBy: str?, emailConfirmationSent: str?, emailReminderSent: str?, smsConfirmationSent: str?, smsReminderSent: str?, location: str?, latitude: str?, longitude: str?, stripeChargeId: str?, stripeRefundId: str?, paymentStatus: int(int32), resources: [map]?, customers: [map]?, customFields: map?, auditTrail: [map]?} # Success\n\n@endpoint PUT /setup/v1/appointments/{id}/reassign/resource/{resourceId}\n@desc Reassign Appointment\n@required {id: str # id of appointment object, resourceId: str # id of target resource}\n@returns(200) {object: str?, id: str?, locationId: str?, businessName: str?, calendarId: str?, serviceId: str?, serviceName: str?, serviceImageUrl: str?, resourceId: str?, resourceName: str?, resourceGroupId: str?, resourceGroupName: str?, resourceImageUrl: str?, resourceEmail: str?, customerId: str?, serviceAllocationId: str?, rescheduledId: str?, createDate: str?, startDateTime: str?, endDateTime: str?, dateInternational: str?, date: str?, time: int(int32), duration: int(int32), timezone: int(int32)?, timezoneId: str?, timezoneIana: str?, ipAddress: str?, status: str?, confirmationNumber: str?, downloadIcsUrl: str?, bookedBy: str?, onlineBooking: bool?, confirmed: bool, email: str?, name: str?, lastname: str?, firstname: str?, phone: str?, phoneType: str?, phoneExt: str?, customerMessage: str?, notes: str?, groupSize: int(int32)?, lastModifiedOn: str?, lastModifiedBy: str?, emailConfirmationSent: str?, emailReminderSent: str?, smsConfirmationSent: str?, smsReminderSent: str?, location: str?, latitude: str?, longitude: str?, stripeChargeId: str?, stripeRefundId: str?, paymentStatus: int(int32), resources: [map]?, customers: [map]?, customFields: map?, auditTrail: [map]?} # Success\n\n@endpoint GET /setup/v1/businessusers\n@desc List Users\n@optional {locationId: str # id of business location, defaults to primary business location, email: str # Filter by email address, role: str # Filter user role, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/businessusers\n@desc Create User\n@optional {locationId: str, name: str, email: str, resourceId: str, role: str, sendRegistrationInvite: bool}\n@returns(200) {object: str?, id: str?, accountId: str(uuid)?, locationId: str?, businessName: str?, email: str?, role: str?, name: str?, identityAccount: bool, resourceId: str?, resourceName: str?, permissions: [map]?} # Success\n\n@endpoint GET /setup/v1/businessusers/{id}\n@desc Get User\n@required {id: str # id of businessUser object}\n@returns(200) {object: str?, id: str?, accountId: str(uuid)?, locationId: str?, businessName: str?, email: str?, role: str?, name: str?, identityAccount: bool, resourceId: str?, resourceName: str?, permissions: [map]?} # Success\n\n@endpoint PUT /setup/v1/businessusers/{id}\n@desc Update User\n@required {id: str}\n@optional {name: str, email: str, resourceId: str, role: str, sendRegistrationInvite: bool}\n@returns(200) {object: str?, id: str?, accountId: str(uuid)?, locationId: str?, businessName: str?, email: str?, role: str?, name: str?, identityAccount: bool, resourceId: str?, resourceName: str?, permissions: [map]?} # Success\n\n@endpoint DELETE /setup/v1/businessusers/{id}\n@desc Delete User\n@required {id: str}\n@returns(200) Success\n\n@endpoint GET /setup/v1/businessusers/permissions\n@desc List User Permissions\n@optional {role: str # Filter permissions by role, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint GET /setup/v1/businessusers/{email}/companies\n@desc List User Companies\n@required {email: str # Email of business user}\n@optional {searchText: str # All or partial company name, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?, email: str?} # Success\n\n@endpoint GET /setup/v1/calendars\n@desc List Calendars\n@optional {locationId: str # id of business location, defaults to primary business location, deleted: bool # Filter by deleted status, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/calendars\n@desc DEPRECATING: Create\n@optional {locationId: str, name: str, type: str, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str, availability: map{sun: map, mon: map, tue: map, wed: map, thu: map, fri: map, sat: map}}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, type: str?, primary: bool, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str?, deletedStatus: bool, deletedTime: str(date-time)?, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}} # Success\n\n@endpoint GET /setup/v1/calendars/{id}\n@desc Get Calendar\n@required {id: str # id of calendar object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, type: str?, primary: bool, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str?, deletedStatus: bool, deletedTime: str(date-time)?, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}} # Success\n\n@endpoint PUT /setup/v1/calendars/{id}\n@desc Update Calendar\n@required {id: str # id of calendar object}\n@optional {locationId: str, name: str, type: str, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str, availability: map{sun: map, mon: map, tue: map, wed: map, thu: map, fri: map, sat: map}}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, type: str?, primary: bool, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str?, deletedStatus: bool, deletedTime: str(date-time)?, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}} # Success\n\n@endpoint DELETE /setup/v1/calendars/{id}\n@desc Delete Calendar\n@required {id: str # id of calendar object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, type: str?, primary: bool, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str?, deletedStatus: bool, deletedTime: str(date-time)?, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}} # Success\n\n@endpoint PUT /setup/v1/calendars/{id}/recover\n@desc Recover Calendar\n@required {id: str # id of calendar object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, type: str?, primary: bool, interval: int(int32), bookingsPerSlot: int(int32), resourceGroupId: str?, deletedStatus: bool, deletedTime: str(date-time)?, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}} # Success\n\n@endpoint GET /setup/v1/calendars/{id}/services\n@desc List Calendar Services\n@required {id: str # id of calendar object}\n@optional {offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint GET /setup/v1/calendars/{id}/blocks\n@desc List Calendar Blocks\n@required {id: str # id of calendar to list blocks}\n@optional {offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Valid response\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Resource was not found}\n\n@endpoint GET /setup/v1/calendars/blocks/{id}\n@desc Get Calendar Block\n@required {id: str # id of calendarBlock object}\n@returns(200) {object: str?, id: str?, locationId: str?, calendarId: str?, startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint POST /setup/v1/calendars/{id}/block\n@desc Create Calendar Block\n@required {id: str # id of calendar object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint PUT /setup/v1/calendars/block/{id}\n@desc Update Calendar Block\n@required {id: str # id of calendarBlock object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, calendarId: str?, startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint DELETE /setup/v1/calendars/block/{id}\n@desc Delete Calendar Block\n@required {id: str # id of a calendarBlock object}\n@returns(200) {object: str?, id: str?, locationId: str?, calendarId: str?, startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint GET /setup/v1/companies\n@desc Get Company\n@returns(200) {object: str?, id: str?, name: str?, registrationDate: str?, registrationEmail: str?, deletedStatus: bool, deletedTime: str?, addressLine1: str?, addressLine2: str?, city: str?, state: str?, postalCode: str?, country: str?, phone: str?, fax: str?, email: str?, website: str?, timezoneId: str?, timezoneName: str?, notificationFromEmailAddress: str?, notificationFromName: str?, clientId: str?, clientSecret: str?, bookingWebhookUrl: str?, customerWebhookUrl: str?, reminderWebhookUrl: str?, resourceWebhookUrl: str?, webhookSignatureHash: str?, disableEmailAndSmsNotifications: bool} # Success\n\n@endpoint PUT /setup/v1/companies\n@desc Update Company\n@optional {name: str, registrationEmail: str, addressLine1: str, addressLine2: str, city: str, state: str, postalCode: str, country: str, phone: str, fax: str, email: str, website: str, timezoneName: str, notificationFromEmailAddress: str, notificationFromName: str, bookingWebhookUrl: str, customerWebhookUrl: str, reminderWebhookUrl: str, resourceWebhookUrl: str, webhookSignatureHash: str, disableEmailAndSmsNotifications: bool}\n@returns(200) {object: str?, id: str?, name: str?, registrationDate: str?, registrationEmail: str?, deletedStatus: bool, deletedTime: str?, addressLine1: str?, addressLine2: str?, city: str?, state: str?, postalCode: str?, country: str?, phone: str?, fax: str?, email: str?, website: str?, timezoneId: str?, timezoneName: str?, notificationFromEmailAddress: str?, notificationFromName: str?, clientId: str?, clientSecret: str?, bookingWebhookUrl: str?, customerWebhookUrl: str?, reminderWebhookUrl: str?, resourceWebhookUrl: str?, webhookSignatureHash: str?, disableEmailAndSmsNotifications: bool} # Success\n\n@endpoint POST /setup/v1/companies\n@desc Create Company\n@optional {name: str, registrationEmail: str, addressLine1: str, addressLine2: str, city: str, state: str, postalCode: str, country: str, phone: str, fax: str, email: str, website: str, timezoneName: str, notificationFromEmailAddress: str, notificationFromName: str, bookingWebhookUrl: str, customerWebhookUrl: str, reminderWebhookUrl: str, resourceWebhookUrl: str, webhookSignatureHash: str, disableEmailAndSmsNotifications: bool}\n@returns(200) {object: str?, id: str?, name: str?, registrationDate: str?, registrationEmail: str?, deletedStatus: bool, deletedTime: str?, addressLine1: str?, addressLine2: str?, city: str?, state: str?, postalCode: str?, country: str?, phone: str?, fax: str?, email: str?, website: str?, timezoneId: str?, timezoneName: str?, notificationFromEmailAddress: str?, notificationFromName: str?, clientId: str?, clientSecret: str?, bookingWebhookUrl: str?, customerWebhookUrl: str?, reminderWebhookUrl: str?, resourceWebhookUrl: str?, webhookSignatureHash: str?, disableEmailAndSmsNotifications: bool} # Success\n\n@endpoint GET /setup/v1/companies/domains\n@desc List Company Domains\n@returns(200) {object: str?, url: str?, data: [map]?} # Success\n\n@endpoint POST /setup/v1/companies/domains\n@desc Create Company Domain\n@optional {domain: str}\n@returns(200) {object: str?, id: str?, domain: str?} # Success\n\n@endpoint GET /setup/v1/companies/domains/{id}\n@desc Get Company Domain\n@required {id: str # id of companyDomain object}\n@returns(200) {object: str?, id: str?, domain: str?} # Success\n\n@endpoint PUT /setup/v1/companies/domains/{id}\n@desc Update Company Domain\n@required {id: str # id of companyDomain object}\n@optional {domain: str}\n@returns(200) {object: str?, id: str?, domain: str?} # Success\n\n@endpoint DELETE /setup/v1/companies/domains/{id}\n@desc Delete Company Domain\n@required {id: str # id of companyDomain object}\n@returns(200) {object: str?, id: str?, domain: str?} # Success\n\n@endpoint GET /setup/v1/companies/regions\n@desc List Regions\n@optional {offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # region object's\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Resource was not found}\n\n@endpoint POST /setup/v1/companies/regions\n@desc Create Region\n@optional {name: str}\n@returns(200) {object: str?, id: str?, name: str?} # Success\n\n@endpoint GET /setup/v1/companies/regions/{id}\n@desc Get Region\n@required {id: str # id of a region object}\n@returns(200) {object: str?, id: str?, name: str?} # Success\n\n@endpoint PUT /setup/v1/companies/regions/{id}\n@desc Update Region\n@required {id: str # id of Region}\n@optional {name: str}\n@returns(200) {object: str?, id: str?, name: str?} # Success\n\n@endpoint DELETE /setup/v1/companies/regions/{id}\n@desc Delete Region\n@required {id: str # id of Region}\n@returns(200) {object: str?, id: str?, name: str?} # Success\n\n@endpoint GET /setup/v1/companies/email/templates\n@desc List Email Templates\n@returns(200) {object: str?, url: str?, total: int(int32), data: [map]?} # Success\n\n@endpoint GET /setup/v1/companies/email/templates/{templateName}\n@desc Get Email Template\n@required {templateName: str # Email template name}\n@returns(200) {content: str?, contentType: str?, statusCode: int(int32)?} # Success\n\n@endpoint GET /setup/v1/companies/email/templates/master\n@desc Get Master Template Settings\n@returns(200) {version: str?, headerLogoHeight: str?, footerLogoHeight: str?, headerLogoPadding: str?, footerLogoPadding: str?, emailBackgroundColor: str?, emailColor: str?, emailLinkColor: str?, panelBackgroundColor: str?, panelColor: str?, panelLinkColor: str?, contentBackgroundColor: str?, contentColor: str?, contentLinkColor: str?, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str?, privacyPolicyLink: str?, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool} # Success\n\n@endpoint POST /setup/v1/companies/email/templates/master\n@desc Create Master Template Settings\n@optional {headerLogoHeight: str, footerLogoHeight: str, headerLogoPadding: str, footerLogoPadding: str, emailBackgroundColor: str, emailColor: str, emailLinkColor: str, panelBackgroundColor: str, panelColor: str, panelLinkColor: str, contentBackgroundColor: str, contentColor: str, contentLinkColor: str, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str, privacyPolicyLink: str, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool}\n@returns(200) {version: str?, headerLogoHeight: str?, footerLogoHeight: str?, headerLogoPadding: str?, footerLogoPadding: str?, emailBackgroundColor: str?, emailColor: str?, emailLinkColor: str?, panelBackgroundColor: str?, panelColor: str?, panelLinkColor: str?, contentBackgroundColor: str?, contentColor: str?, contentLinkColor: str?, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str?, privacyPolicyLink: str?, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool} # Success\n\n@endpoint DELETE /setup/v1/companies/email/templates/master\n@desc Delete Master Template Settings\n@returns(200) {version: str?, headerLogoHeight: str?, footerLogoHeight: str?, headerLogoPadding: str?, footerLogoPadding: str?, emailBackgroundColor: str?, emailColor: str?, emailLinkColor: str?, panelBackgroundColor: str?, panelColor: str?, panelLinkColor: str?, contentBackgroundColor: str?, contentColor: str?, contentLinkColor: str?, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str?, privacyPolicyLink: str?, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool} # Success\n\n@endpoint GET /setup/v1/companies/timezones/{date}\n@desc List Time Zones\n@required {date: str(date-time) # \"YYYY-MM-DD: Date for timezone info\"}\n@returns(200) {object: str?, regions: [str]?, timezones: [map]?} # Success\n\n@endpoint GET /setup/v1/customers\n@desc List Customers\n@optional {locationId: str # id of business location, defaults to primary business location, groupId: str # Filter by groupId, email: str # Filter by email address., lastname: str # Search by lastname., deleted: bool # Filter by deleted status., offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint GET /setup/v1/customers/{id}\n@desc Get Customer\n@required {id: str # id of customer object}\n@returns(200) {object: str?, id: str?, locationId: str?, businessName: str?, email: str?, name: str?, lastname: str?, firstname: str?, companyName: str?, gender: str?, birthdate: str?, lastVisitDate: str?, groupId: str?, resourceId: str?, createdOn: str?, createdBy: str?, registeredBy: str?, verifiedBy: str?, modifiedBy: str?, modifiedOn: str?, verificationDate: str?, registrationDate: str?, emailInfo: bool?, emailPromotion: bool?, disabled: bool?, inviteEmailSent: str?, welcomeEmailSent: str?, deletedStatus: bool, deletedTime: str?, notificationType: str?, subscriptionId: str?, latitude: str?, longitude: str?, stripeCustomerId: str?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, customFields: map?} # Success\n\n@endpoint GET /setup/v1/customers/{id}/privacy\n@desc Get Customer Data\n@required {id: str # id of customer object}\n@returns(200) {customer: map{object: str?, id: str?, locationId: str?, businessName: str?, email: str?, name: str?, lastname: str?, firstname: str?, companyName: str?, gender: str?, birthdate: str?, lastVisitDate: str?, groupId: str?, resourceId: str?, createdOn: str?, createdBy: str?, registeredBy: str?, verifiedBy: str?, modifiedBy: str?, modifiedOn: str?, verificationDate: str?, registrationDate: str?, emailInfo: bool?, emailPromotion: bool?, disabled: bool?, inviteEmailSent: str?, welcomeEmailSent: str?, deletedStatus: bool, deletedTime: str?, notificationType: str?, subscriptionId: str?, latitude: str?, longitude: str?, stripeCustomerId: str?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, customFields: map?}, appointments: [map]?} # Success\n\n@endpoint GET /setup/v1/locations\n@desc List Locations\n@optional {name: str # Location name(full or partial) to filter on, serviceId: str # Find locations that offer this service, friendlyId: str # friendlyId of location, deleted: bool # Filter locations on deleted status, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/locations\n@desc Create Location\n@optional {name: str, adminEmail: str # Field is required., adminName: str # This field is no longer required and has been deprecated., timezoneName: str # Field is required. It is in Iana format. e.g. America/New_York. Use moment.js in your client for ease of timezone detection and selection, friendlyId: str # Use the friendlyId as an alternative to the assigned locationId\r Choose something easy and meaningful. Must be unique within your company.\r FriendlyId's are limited to maximum of 64 characters., phone: str # GroupSize Limits the number of people that can come\r along on a single appointment, fax: str, website: str, email: str, regionId: str, address: map{addressLine1: str, addressLine2: str, city: str, state: str, country: str, postalCode: str}, businessHours: map{mon: map, tue: map, wed: map, thu: map, fri: map, sat: map, sun: map}, settings: map{bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), enableWorldTimezones: bool, bookingTimerMins: int(int32)}, defaults: map{enableUtcTimezone: bool, customerState: bool, customerCity: bool, autoUpdateCustomer: bool, businessNotification: bool, emailInfo: bool}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint GET /setup/v1/locations/{id}\n@desc Get Location\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint PUT /setup/v1/locations/{id}\n@desc Update Location\n@required {id: str}\n@optional {removeRegion: bool, name: str, adminEmail: str, adminName: str, timezoneName: str, friendlyId: str, phone: str, fax: str, website: str, email: str, regionId: str, address: map{addressLine1: str, addressLine2: str, city: str, state: str, country: str, postalCode: str}, businessHours: map{mon: map, tue: map, wed: map, thu: map, fri: map, sat: map, sun: map}, settings: map{bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), enableWorldTimezones: bool, bookingTimerMins: int(int32)}, defaults: map{enableUtcTimezone: bool, customerState: bool, customerCity: bool, autoUpdateCustomer: bool, businessNotification: bool, emailInfo: bool}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}\n@desc Delete Location\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint POST /setup/v1/locations/bulk\n@desc Create Locations Bulk\n@optional {locations: [map{name: str, adminEmail: str, adminName: str, timezoneName: str, friendlyId: str, phone: str, fax: str, website: str, email: str, regionId: str, address: map, businessHours: map, settings: map, defaults: map, appointmentReminders: map}]}\n@returns(200) Success\n\n@endpoint PUT /setup/v1/locations/{id}/settings/scope/{settingsScope}\n@desc Update Location Scope\n@required {id: str, settingsScope: str}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint PUT /setup/v1/locations/{id}/holidays/{holidayId}/{closed}\n@desc Update Location Holidays\n@required {id: str, holidayId: str, closed: bool}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint PUT /setup/v1/locations/{id}/recover\n@desc Recover Location\n@required {id: str}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint GET /setup/v1/locations/{id}/services\n@desc List Location Linked Services\n@required {id: str # id of business location, defaults to primary business location}\n@optional {offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # location service objects\n@errors {400: Missing or invalid values in the request, 401: Authorization error, 404: Location was not found}\n\n@endpoint POST /setup/v1/locations/{id}/services\n@desc Create Linked Service\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}/services\n@desc Delete Linked Services\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint GET /setup/v1/locations/services/{id}\n@desc Get Linked Service\n@required {id: str # id of locationService object}\n@returns(200) {object: str?, id: int(int32), serviceId: int(int32), serviceName: str?} # location service objects\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Location was not found}\n\n@endpoint DELETE /setup/v1/locations/services/{id}\n@desc Unlink Service\n@required {id: str # id of locationService object}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint POST /setup/v1/locations/{id}/uploadimage\n@desc Upload Location Image\n@required {id: str # id of business location, defaults to primary business location}\n@optional {imageFileName: str, imageFileData: str}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}/deleteimage\n@desc Delete Location Image\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}/deleteallimages\n@desc Delete All Location Images\n@required {id: str}\n@optional {uppercase: bool}\n@returns(200) Success\n\n@endpoint GET /setup/v1/locations/{id}/email/templates\n@desc List Email Templates\n@required {id: str}\n@returns(200) {object: str?, url: str?, total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/locations/{id}/email/templates\n@desc Create Custom Template\n@required {id: str # id of business location, defaults to primary business location}\n@optional {templateName: str, templateContent: str}\n@returns(200) {content: str?, contentType: str?, statusCode: int(int32)?} # Success\n\n@endpoint GET /setup/v1/locations/{id}/email/templates/{templateName}\n@desc Get Email Template\n@required {id: str # id of business location, templateName: str # name of the email template}\n@returns(200) {content: str?, contentType: str?, statusCode: int(int32)?} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}/email/templates/{templateName}\n@desc Delete Custom Template\n@required {id: str # id of business location, defaults to primary business location, templateName: str # Name of the email template}\n@returns(200) {content: str?, contentType: str?, statusCode: int(int32)?} # Success\n\n@endpoint GET /setup/v1/locations/{id}/email/templates/master\n@desc Get Master Template Settings\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {version: str?, headerLogoHeight: str?, footerLogoHeight: str?, headerLogoPadding: str?, footerLogoPadding: str?, emailBackgroundColor: str?, emailColor: str?, emailLinkColor: str?, panelBackgroundColor: str?, panelColor: str?, panelLinkColor: str?, contentBackgroundColor: str?, contentColor: str?, contentLinkColor: str?, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str?, privacyPolicyLink: str?, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool} # Success\n\n@endpoint POST /setup/v1/locations/{id}/email/templates/master\n@desc Create Master Template Settings\n@required {id: str # id of business location, defaults to primary business location}\n@optional {headerLogoHeight: str, footerLogoHeight: str, headerLogoPadding: str, footerLogoPadding: str, emailBackgroundColor: str, emailColor: str, emailLinkColor: str, panelBackgroundColor: str, panelColor: str, panelLinkColor: str, contentBackgroundColor: str, contentColor: str, contentLinkColor: str, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str, privacyPolicyLink: str, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool}\n@returns(200) {version: str?, headerLogoHeight: str?, footerLogoHeight: str?, headerLogoPadding: str?, footerLogoPadding: str?, emailBackgroundColor: str?, emailColor: str?, emailLinkColor: str?, panelBackgroundColor: str?, panelColor: str?, panelLinkColor: str?, contentBackgroundColor: str?, contentColor: str?, contentLinkColor: str?, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str?, privacyPolicyLink: str?, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}/email/templates/master\n@desc Delete Master Template Settings\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {version: str?, headerLogoHeight: str?, footerLogoHeight: str?, headerLogoPadding: str?, footerLogoPadding: str?, emailBackgroundColor: str?, emailColor: str?, emailLinkColor: str?, panelBackgroundColor: str?, panelColor: str?, panelLinkColor: str?, contentBackgroundColor: str?, contentColor: str?, contentLinkColor: str?, showHeaderLogo: bool, showFooterLogo: bool, footerFontSize: str?, privacyPolicyLink: str?, showHeaderPanel: bool, showFooterPanel: bool, showContentPanel: bool, centerEmailContent: bool, centerEmailContentPanel: bool, centerEmailFooter: bool, footerPanelEmailContact: bool, footerPanelPhoneContact: bool, footerPanelWebsiteContact: bool} # Success\n\n@endpoint GET /setup/v1/locations/{id}/google/service/account\n@desc Google Service Account Info\n@required {id: str # id of business location, defaults to primary business location}\n@optional {verify: bool # When true, verifies each Resource in this location with Google Calendar Enabled using the Google API}\n@returns(200) {type: str?, project_id: str?, private_key_id: str?, private_key_hash: str?, client_email: str?, client_id: str?, auth_uri: str?, token_uri: str?, auth_provider_x509_cert_url: str?, client_x509_cert_url: str?, verified_with_google: bool, messages: [str]?, errors: [str]?} # Success\n\n@endpoint POST /setup/v1/locations/{id}/google/service/account\n@desc Create Google Cal Access\n@required {id: str # id of business location, defaults to primary business location}\n@optional {type: str, project_id: str, private_key_id: str, private_key: str, client_email: str, client_id: str, auth_uri: str, token_uri: str, auth_provider_x509_cert_url: str, client_x509_cert_url: str}\n@returns(200) {type: str?, project_id: str?, private_key_id: str?, private_key: str?, client_email: str?, client_id: str?, auth_uri: str?, token_uri: str?, auth_provider_x509_cert_url: str?, client_x509_cert_url: str?} # Success\n\n@endpoint DELETE /setup/v1/locations/{id}/google/service/account\n@desc Delete Google Cal Access\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) Success\n\n@endpoint GET /setup/v1/locations/{id}/appointmentreminders\n@desc Get Reminders\n@required {id: str # id of business location, defaults to primary business location}\n@returns(200) {emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)} # Success\n\n@endpoint PUT /setup/v1/locations/{id}/appointmentreminders\n@desc Update Reminders\n@required {id: str # id of business location, defaults to primary business location}\n@optional {emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}\n@returns(200) {object: str?, id: str?, friendlyId: str?, companyId: str?, companyName: str?, name: str?, adminEmail: str?, adminName: str?, phone: str?, fax: str?, email: str?, website: str?, regionId: str?, logo: str?, imageUrl: str?, timezoneId: str?, timezoneIana: str?, timezoneOffset: int(int32)?, primaryBusiness: bool, primaryCalendarId: str?, latitude: num(double), longitude: num(double), travel: map{startAddress: str?, startLat: str?, startLon: str?, distance: str?, proximity: str?, units: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, businessHours: map{mon: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, tue: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, wed: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, thu: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, fri: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sat: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}, sun: map{isOpen: bool, startTime: int(int32), endTime: int(int32), is24Hours: bool}}, businessHolidays: [map]?, services: [map]?, settings: map{object: str?, companyId: str?, businessId: str?, locationId: str?, enabled: bool, familyMembersEnabled: bool, customerVerification: bool, serviceLabel: str?, resourceSelection: bool, resourceLabel: str?, resourceAnyLabel: str?, id: int(int32), defaultService: bool?, liveMode: bool?, firstAvailable: bool?, formFlow: int(int32), availabilityForm: int(int32), showServiceGroups: bool, bookWithAccount: bool, bookingPolicy: str?, bookingMessage: str?, showOnSchedLogo: bool, showBusinessLogo: bool, enableWorldTimezones: bool?, disableAuthorization: bool?, hideNavBar: bool?, hideLocationNav: bool?, hideServiceGroupsNav: bool?, hideServicesNav: bool?, hideContinueBooking: bool?, defaultToCustomerTimezone: bool, returnToService: bool, returnToAvailability: bool, hideBreadCrumbNav: bool, bookingTimerMins: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), customerBookingsPerDay: int(int32), lateCancelHours: int(int32), lateCancelAction: int(int32), lateRescheduleHours: int(int32), lateRescheduleAction: int(int32), bookingConfirmationMessage: str?}, defaults: map{object: str?, enableUtcTimezone: bool?, customerState: bool?, customerCity: bool?, autoUpdateCustomer: bool?, businessNotification: bool?, emailInfo: bool?}, appointmentReminders: map{emailFirstReminder: int(int32), emailFirstReminderInterval: int(int32), emailSecondReminder: int(int32), emailSecondReminderInterval: int(int32), smsFirstReminder: int(int32), smsFirstReminderInterval: int(int32), smsSecondReminder: int(int32), smsSecondReminderInterval: int(int32)}} # Success\n\n@endpoint GET /setup/v1/resourcegroups\n@desc List Resource Groups\n@optional {locationId: str # id of business location, defaults to primary business location, deleted: bool # Filter results by deleted status, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/resourcegroups\n@desc Create Resource Group\n@optional {locationId: str, name: str, email: str, description: str}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, description: str?, email: str?, bookingNotification: int(int32), deletedStatus: bool, deletedTime: str(date-time)?} # Success\n\n@endpoint GET /setup/v1/resourcegroups/{id}\n@desc Get Resource Group\n@required {id: str # id of resourceGroup object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, description: str?, email: str?, bookingNotification: int(int32), deletedStatus: bool, deletedTime: str(date-time)?} # Success\n\n@endpoint PUT /setup/v1/resourcegroups/{id}\n@desc Update Resource Group\n@required {id: str # id of resourcGroup object}\n@optional {name: str, email: str, description: str}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, description: str?, email: str?, bookingNotification: int(int32), deletedStatus: bool, deletedTime: str(date-time)?} # Success\n\n@endpoint DELETE /setup/v1/resourcegroups/{id}\n@desc Delete Resource Group\n@required {id: str # id of resourceGroup object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, description: str?, email: str?, bookingNotification: int(int32), deletedStatus: bool, deletedTime: str(date-time)?} # Success\n\n@endpoint PUT /setup/v1/resourcegroups/{id}/recover\n@desc Recover Resource Group\n@required {id: str # id of resourceGroup object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/resources\n@desc List Resources\n@optional {locationId: str # id of business location, defaults to primary business location, resourceGroupId: str # Filter by group Id, email: str # Filter by email address, name: str # Search by name, deleted: bool # Show by deleted status, default is false, googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max is 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # resource object\n@errors {400: Missing or invalid values in the request, 404: Resource was not found}\n\n@endpoint POST /setup/v1/resources\n@desc Create Resource\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url, locationId: str, name: str, email: str, description: str, groupId: str, timezoneId: str, recurringAvailability: bool, serviceIds: [str], address: map{addressLine1: str, addressLine2: str, city: str, state: str, country: str, postalCode: str}, contact: map{preferredPhoneType: str, homePhone: str, mobilePhone: str, businessPhone: str, businessPhoneExt: str, skypeUsername: str, conferenceInfo: str}, availability: map{sun: map, mon: map, tue: map, wed: map, thu: map, fri: map, sat: map}, options: map{effectiveDate: str(date-time), notificationType: int(int32), displayColor: str, googleCalendarId: str, outlookCalendarId: str, ignoreBusinessHours: bool, gender: str, hourly: num(double), calendarAvailability: int(int32), bookingNotification: int(int32), sortKey: int(int32), bioLink: str} # Options for the new resource, customFields: map{field1: str, field2: str, field3: str, field4: str, field5: str, field6: str, field7: str, field8: str, field9: str, field10: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/resources/{id}\n@desc Get Resource\n@required {id: str # id of resource object}\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint PUT /setup/v1/resources/{id}\n@desc Update Resource\n@required {id: str # id of resource object}\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url, locationId: str, name: str, email: str, description: str, groupId: str, timezoneId: str, recurringAvailability: bool, serviceIds: [str], address: map{addressLine1: str, addressLine2: str, city: str, state: str, country: str, postalCode: str}, contact: map{preferredPhoneType: str, homePhone: str, mobilePhone: str, businessPhone: str, businessPhoneExt: str, skypeUsername: str, conferenceInfo: str}, availability: map{sun: map, mon: map, tue: map, wed: map, thu: map, fri: map, sat: map}, options: map{effectiveDate: str(date-time), notificationType: int(int32), displayColor: str, googleCalendarId: str, outlookCalendarId: str, ignoreBusinessHours: bool, gender: str, hourly: num(double), calendarAvailability: int(int32), bookingNotification: int(int32), sortKey: int(int32), bioLink: str}, customFields: map{field1: str, field2: str, field3: str, field4: str, field5: str, field6: str, field7: str, field8: str, field9: str, field10: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint DELETE /setup/v1/resources/{id}\n@desc Delete Resource\n@required {id: str # id of resource object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/resources/{id}/calendar/auth/google/{googleEmailAddress}\n@desc Get Resource Google URL\n@required {id: str # id of resource object, googleEmailAddress: str # Email address of Google Calendar}\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url}\n@returns(200) {object: str?, calendarId: str?, calendarAuthUrl: str?} # Success\n\n@endpoint GET /setup/v1/resources/{id}/calendar/auth/outlook/{outlookEmailAddress}\n@desc Get Resource Outlook URL\n@required {id: str # id of resource object, outlookEmailAddress: str # Email address of Outlook Calendar}\n@optional {outlookAuthReturnUrl: str # Outlook calendar authorization return url}\n@returns(200) {object: str?, calendarId: str?, calendarAuthUrl: str?} # Success\n\n@endpoint GET /setup/v1/resources/timezones\n@desc Get Time Zones\n@returns(200) {timezoneId: str?, standardName: str?, daylightName: str?, displayName: str?, timezoneIana: str?, baseUtcOffset: int(int32), supportsDaylightSavingTime: bool} # Success\n\n@endpoint POST /setup/v1/resources/bulk\n@desc Create Resources Bulk\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url, resources: [map{locationId: str, name: str, email: str, description: str, groupId: str, timezoneId: str, recurringAvailability: bool, serviceIds: [str], address: map, contact: map, availability: map, options: map, customFields: map}]}\n@returns(200) Success\n\n@endpoint PUT /setup/v1/resources/bulk\n@desc Update Resources Bulk\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url, resources: [map{id: str, name: str, email: str, description: str, groupId: str, timezoneId: str, recurringAvailability: bool, serviceIds: [str], address: map, contact: map, availability: map, options: map, customFields: map}]}\n@returns(200) Success\n\n@endpoint PUT /setup/v1/resources/{id}/reassign/appointments/{resourceId}\n@desc Reassign Resource\n@required {id: str # id of the original resource, resourceId: str # id of the target resource}\n@optional {startDate: str(date-time) # YYYY-MM-DD, Appt range start date, endDate: str(date-time) # YYYY-MM-DD, Appt range end date, calendarId: str # CalendarId of calendar containing appointments}\n@returns(200) Success\n\n@endpoint PUT /setup/v1/resources/{id}/recover\n@desc Recover Resource\n@required {id: str # id of resource object}\n@optional {googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/resources/{id}/availability\n@desc List Weekly Availability\n@required {id: str # id of resource object}\n@returns(200) {businessId: int(int32), resourceId: int(int32), resourceName: str?, resourceTzo: int(int32), ignoreBusinessHours: bool, weekdays: map{sun: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, mon: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, tue: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, wed: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, thu: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, fri: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, sat: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}}} # Success\n\n@endpoint PUT /setup/v1/resources/{id}/availability\n@desc Update Weekly Availability\n@required {id: str # id of resource object}\n@optional {sun: map{startTime: int(int32), endTime: int(int32)}, mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}}\n@returns(200) {businessId: int(int32), resourceId: int(int32), resourceName: str?, resourceTzo: int(int32), ignoreBusinessHours: bool, weekdays: map{sun: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, mon: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, tue: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, wed: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, thu: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, fri: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, sat: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}}} # Success\n\n@endpoint GET /setup/v1/resources/{id}/allocations\n@desc List Resource Allocations\n@required {id: str # id of resource to list allocations for}\n@optional {startDate: str(date-time) # yyyy-mm-dd, filter allocations on/after startDate, endDate: str(date-time) # yyyy-mm-dd, filter on/before endDate, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # resource allocation objects\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Resource was not found}\n\n@endpoint POST /setup/v1/resources/{id}/allocations\n@desc Create Allocation\n@required {id: str # id of resource object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint GET /setup/v1/resources/allocations/{id}\n@desc Get Allocation\n@required {id: str # id of resourceAllocation object}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint PUT /setup/v1/resources/allocations/{id}\n@desc Update Allocation\n@required {id: str # id of resourceAllocation object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint DELETE /setup/v1/resources/allocations/{id}\n@desc Delete Allocation\n@required {id: str # id of resourceAllocation object}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint GET /setup/v1/resources/{id}/blocks\n@desc List Resource Blocks\n@required {id: str # id of resource to list blocks for}\n@optional {startDate: str(date-time) # YYYY-MM-DD, filter blocks on/after startDate, endDate: str(date-time) # YYYY-MM-DD, filter on/before endDate, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # resource block object's\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Resource was not found}\n\n@endpoint GET /setup/v1/resources/blocks/{id}\n@desc Get Block\n@required {id: str # id of resourceBlock object}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint POST /setup/v1/resources/{id}/block\n@desc Create Block\n@required {id: str # id of resource object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, allDay: bool, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint PUT /setup/v1/resources/block/{id}\n@desc Update Block\n@required {id: str # id of resourceBlock object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, allDay: bool, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint DELETE /setup/v1/resources/block/{id}\n@desc Delete Block\n@required {id: str # id of resourceBlock object}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint POST /setup/v1/resources/{id}/services\n@desc Create Linked Services\n@required {id: str # id of resource object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint PUT /setup/v1/resources/{id}/services\n@desc Update Linked Services\n@required {id: str # id of resource object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint DELETE /setup/v1/resources/{id}/services\n@desc Delete Linked Services\n@required {id: str # id of resource object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint POST /setup/v1/resources/{id}/uploadimage\n@desc Upload Resource Image\n@required {id: str # id of resource object}\n@optional {imageFileName: str, imageFileData: str}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint DELETE /setup/v1/resources/{id}/deleteimage\n@desc Delete Resource Image\n@required {id: str # id of resource object}\n@returns(200) {object: str?, id: str?, locationId: str?, name: str?, email: str?, groupId: int(int32)?, description: str?, imageUrl: str?, deletedStatus: bool, deletedTime: str(date-time)?, notificationType: int(int32), bookingNotification: int(int32), googleCalendarId: str?, googleCalendarAuthorized: bool, googleCalendarAuthUrl: str?, outlookCalendarId: str?, outlookCalendarAuthUrl: str?, outlookCalendarAuthorized: bool, ignoreBusinessHours: bool, gender: str?, recurringAvailability: bool?, hourly: num(double)?, calendarAvailability: int(int32), sortKey: int(int32), skypeName: str?, bioLink: str?, timezoneOffset: int(int32)?, timezoneId: str?, timezoneIana: str?, effectiveDate: str(date-time)?, contact: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?, skypeUsername: str?, conferenceInfo: str?}, phone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, address: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}, availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, options: map{effectiveDate: str(date-time)?, notificationType: int(int32)?, displayColor: str?, googleCalendarId: str?, outlookCalendarId: str?, ignoreBusinessHours: bool?, gender: str?, hourly: num(double)?, calendarAvailability: int(int32)?, bookingNotification: int(int32)?, sortKey: int(int32)?, bioLink: str?}, services: [map]?, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/servicegroups\n@desc List Service Groups\n@optional {locationId: str # id of business location, defaults to primary business location, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/servicegroups\n@desc Create Service Group\n@optional {locationId: str, name: str, description: str, type: int(int32)}\n@returns(200) {object: str?, imageUrl: str?, id: str?, companyId: str?, locationId: str?, name: str?, type: int(int32), description: str?, isDeleted: bool} # Success\n\n@endpoint GET /setup/v1/servicegroups/{id}\n@desc Get Service Group\n@required {id: int(int32) # id of serviceGroup object}\n@returns(200) {object: str?, imageUrl: str?, id: str?, companyId: str?, locationId: str?, name: str?, type: int(int32), description: str?, isDeleted: bool} # Success\n\n@endpoint PUT /setup/v1/servicegroups/{id}\n@desc Update Service Group\n@required {id: int(int32) # id of serviceGroup object}\n@optional {locationId: str, name: str, description: str, type: int(int32)}\n@returns(200) {object: str?, imageUrl: str?, id: str?, companyId: str?, locationId: str?, name: str?, type: int(int32), description: str?, isDeleted: bool} # Success\n\n@endpoint DELETE /setup/v1/servicegroups/{id}\n@desc Delete Service Group\n@required {id: int(int32) # id of serviceGroup object}\n@returns(200) {object: str?, imageUrl: str?, id: str?, companyId: str?, locationId: str?, name: str?, type: int(int32), description: str?, isDeleted: bool} # Success\n\n@endpoint PUT /setup/v1/servicegroups/{id}/recover\n@desc Recover Service Group\n@required {id: int(int32) # id of serviceGroup object}\n@returns(200) {object: str?, imageUrl: str?, id: str?, companyId: str?, locationId: str?, name: str?, type: int(int32), description: str?, isDeleted: bool} # Success\n\n@endpoint GET /setup/v1/services\n@desc List Services\n@optional {locationId: str # id of business location, defaults to primary business location, serviceGroupId: int(int32) # Filter services by groupId, deleted: bool # Filter by deleted status, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint POST /setup/v1/services\n@desc Create Service\n@optional {locationId: str, name: str, description: str, type: str, duration: int(int32), bookingLimit: int(int32), bookingInterval: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), serviceGroupId: str, public: bool, mediaPageUrl: str, availability: map{sun: map, mon: map, tue: map, wed: map, thu: map, fri: map, sat: map}, settings: map{bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32)}, options: map{defaultService: bool, durationSelect: bool, durationInterval: int(int32), durationMin: int(int32), durationMax: int(int32), padding: int(int32), consumerPadding: bool}, fees: map{feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool}, customFields: map{field1: str, field2: str, field3: str, field4: str, field5: str, field6: str, field7: str, field8: str, field9: str, field10: str}}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/services/{id}\n@desc Get Service\n@required {id: int(int32) # id of service object}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint PUT /setup/v1/services/{id}\n@desc Update Service\n@required {id: str}\n@optional {locationId: str, name: str, description: str, type: str, duration: int(int32), bookingLimit: int(int32), bookingInterval: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), serviceGroupId: str, public: bool, mediaPageUrl: str, availability: map{sun: map, mon: map, tue: map, wed: map, thu: map, fri: map, sat: map}, settings: map{bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32)}, options: map{defaultService: bool, durationSelect: bool, durationInterval: int(int32), durationMin: int(int32), durationMax: int(int32), padding: int(int32), consumerPadding: bool}, fees: map{feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool}, customFields: map{field1: str, field2: str, field3: str, field4: str, field5: str, field6: str, field7: str, field8: str, field9: str, field10: str}}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint DELETE /setup/v1/services/{id}\n@desc Delete Service\n@required {id: str # id of service object}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/services/{id}/resources\n@desc List Resources for Service\n@required {id: str # id of service object}\n@optional {offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100, googleAuthReturnUrl: str # Google calendar authorization return url, outlookAuthReturnUrl: str # Outlook calendar authorization return url}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # Success\n\n@endpoint PUT /setup/v1/services/{id}/recover\n@desc Recover Service\n@required {id: str}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint GET /setup/v1/services/{id}/blocks\n@desc List Service Blocks\n@required {id: str # id of service to list blocks for}\n@optional {startDate: str(date-time) # Format YYYY-MM-DD. Filter blocks on/after startDate, endDate: str(date-time) # Format YYYY-MM-DD. Filter on/before endDate, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # service block object's\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Service was not found}\n\n@endpoint GET /setup/v1/services/blocks/{id}\n@desc Get Block\n@required {id: str # id of serviceBlock object}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint POST /setup/v1/services/{id}/block\n@desc Create Block\n@required {id: str # id of service object}\n@optional {locationId: str, startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, serviceId: str?, startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint PUT /setup/v1/services/block/{id}\n@desc Update Block\n@required {id: str # id of serviceBlock object}\n@optional {startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, serviceId: str?, startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint DELETE /setup/v1/services/block/{id}\n@desc Delete Block\n@required {id: str # id of serviceBlock object}\n@returns(200) {object: str?, id: int(int32), businessId: int(int32), resourceId: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), reason: str?, repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?} # Success\n\n@endpoint GET /setup/v1/services/{id}/calendar\n@desc Get Linked Calendar\n@required {id: str # id of service object}\n@optional {locationId: str # id of business location, defaults to primary business location}\n@returns(200) {id: str?, locationId: str?, calendarId: str?, calendarName: str?, serviceId: str?, serviceName: str?} # Success\n\n@endpoint POST /setup/v1/services/calendar\n@desc Link Service to Calendar\n@optional {locationId: str, serviceId: str, calendarId: str}\n@returns(200) {id: str?, locationId: str?, calendarId: str?, calendarName: str?, serviceId: str?, serviceName: str?} # Success\n\n@endpoint DELETE /setup/v1/services/calendar/{id}\n@desc Delete Service Links\n@required {id: str # id of calender to delete service links from}\n@returns(200) {id: str?, locationId: str?, calendarId: str?, calendarName: str?, serviceId: str?, serviceName: str?} # Success\n\n@endpoint GET /setup/v1/services/{id}/availability\n@desc Get Weekly Availability\n@required {id: str # id of service object}\n@returns(200) {serviceId: int(int32), serviceName: str?, ignoreBusinessHours: bool, weekdays: map{sun: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, mon: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, tue: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, wed: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, thu: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, fri: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, sat: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}}} # Success\n\n@endpoint PUT /setup/v1/services/{id}/availability\n@desc Update Weekly Availability\n@required {id: str # id of service object}\n@optional {sun: map{startTime: int(int32), endTime: int(int32)}, mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}}\n@returns(200) {serviceId: int(int32), serviceName: str?, ignoreBusinessHours: bool, weekdays: map{sun: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, mon: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, tue: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, wed: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, thu: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, fri: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}, sat: map{startTime: int(int32), endTime: int(int32), displayStartTime: str?, displayEndTime: str?}}} # Success\n\n@endpoint GET /setup/v1/services/{id}/allocations\n@desc List Service Allocations\n@required {id: str # id of  service to list allocations for, 0 for all}\n@optional {locationId: str # The id of the location. Defaults to the primary location, resourceId: str # The id of the resource to filter on, startDate: str(date-time) # Format YYYY-MM-DD. Filter appointments by on/after startDate, endDate: str(date-time) # Format YYYY-MM-DD. Filter appointments on/before endDate, offset: int(int32) # Starting row of page, default 0, limit: int(int32) # Page limit default 20, max 100}\n@returns(200) {object: str?, url: str?, hasMore: bool, count: int(int32), total: int(int32), data: [map]?} # service alloaction object\n@errors {400: Missing or invalid values in the request, 401: Authorization error., 404: Service was not found}\n\n@endpoint POST /setup/v1/services/{id}/allocations\n@desc Create Allocation\n@required {id: str # id of service object}\n@optional {locationId: str, resourceId: str, startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, bookingLimit: int(int32), repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, timezoneOffset: int(int32)?, timezoneName: str?, serviceId: str?, serviceName: str?, serviceDescription: str?, serviceImageUrl: str?, serviceDuration: int(int32), reason: str?, bookingLimit: int(int32), bookingCount: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?, resourceId: str?, resourceName: str?, resourceDescription: str?, resourceImageUrl: str?, resourcePhone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, resourceAddress: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}} # Success\n\n@endpoint GET /setup/v1/services/allocations/{id}\n@desc Get Allocation\n@required {id: str # id of serviceAllocation object}\n@returns(200) {object: str?, id: str?, locationId: str?, timezoneOffset: int(int32)?, timezoneName: str?, serviceId: str?, serviceName: str?, serviceDescription: str?, serviceImageUrl: str?, serviceDuration: int(int32), reason: str?, bookingLimit: int(int32), bookingCount: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?, resourceId: str?, resourceName: str?, resourceDescription: str?, resourceImageUrl: str?, resourcePhone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, resourceAddress: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}} # Success\n\n@endpoint PUT /setup/v1/services/allocations/{id}\n@desc Update Allocation\n@required {id: str # id of serviceAllocation object}\n@optional {locationId: str, resourceId: str, startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, bookingLimit: int(int32), repeats: bool, repeat: map{frequency: str, interval: int(int32), weekdays: str, monthDay: int(int32), monthType: str}}\n@returns(200) {object: str?, id: str?, locationId: str?, timezoneOffset: int(int32)?, timezoneName: str?, serviceId: str?, serviceName: str?, serviceDescription: str?, serviceImageUrl: str?, serviceDuration: int(int32), reason: str?, bookingLimit: int(int32), bookingCount: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?, resourceId: str?, resourceName: str?, resourceDescription: str?, resourceImageUrl: str?, resourcePhone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, resourceAddress: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}} # Success\n\n@endpoint DELETE /setup/v1/services/allocations/{id}\n@desc Delete Allocation\n@required {id: str # id of serviceAllocation object}\n@returns(200) {object: str?, id: str?, locationId: str?, timezoneOffset: int(int32)?, timezoneName: str?, serviceId: str?, serviceName: str?, serviceDescription: str?, serviceImageUrl: str?, serviceDuration: int(int32), reason: str?, bookingLimit: int(int32), bookingCount: int(int32), startDate: str?, endDate: str?, startTime: int(int32), endTime: int(int32), repeats: bool, repeat: map{frequency: str?, interval: int(int32), weekdays: str?, monthDay: str?, monthType: str?}, deletedStatus: bool, deletedTime: str?, resourceId: str?, resourceName: str?, resourceDescription: str?, resourceImageUrl: str?, resourcePhone: map{phoneType: str?, homePhone: str?, mobilePhone: str?, businessPhone: str?, businessPhoneExt: str?}, resourceAddress: map{addressLine1: str?, addressLine2: str?, city: str?, state: str?, country: str?, postalCode: str?}} # Success\n\n@endpoint POST /setup/v1/services/{id}/allocations/bulk\n@desc Create Allocations Bulk\n@required {id: str # id of service object}\n@optional {serviceAllocations: [map{locationId: str, resourceId: str, startDate: str(date), endDate: str(date), startTime: int(int32), endTime: int(int32), reason: str, bookingLimit: int(int32), repeats: bool, repeat: map}]}\n@returns(200) Success\n\n@endpoint POST /setup/v1/services/{id}/uploadimage\n@desc Upload Service Image\n@required {id: str # id of service object}\n@optional {imageFileName: str, imageFileData: str}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@endpoint DELETE /setup/v1/services/{id}/deleteimage\n@desc Delete Service Image\n@required {id: str # id of service object}\n@returns(200) {object: str?, id: str?, companyId: str?, locationId: str?, name: str?, description: str?, type: str?, imageUrl: str?, mediaPageUrl: str?, serviceGroupId: int(int32)?, serviceGroupName: str?, calendarId: str?, calendarResourceGroupId: str?, bookingLimit: int(int32), bookingInterval: int(int32), bookAheadUnit: int(int32), bookAheadValue: int(int32), bookInAdvance: int(int32), roundRobin: int(int32), showOnline: bool, defaultService: bool, duration: int(int32), durationSelect: bool, durationMin: int(int32), durationMax: int(int32), durationInterval: int(int32), padding: int(int32), consumerPadding: bool, feeAmount: num(double), feeTaxable: bool, cancellationFeeAmount: num(double), cancellationFeeTaxable: bool, nonRefundable: bool, dailyBookingLimitCount: int(int32), dailyBookingLimitMinutes: int(int32), maxBookingLimit: int(int32), maxResourceBookingLimit: int(int32), maxCapacity: int(int32), maxGroupSize: int(int32), availability: map{mon: map{startTime: int(int32), endTime: int(int32)}, tue: map{startTime: int(int32), endTime: int(int32)}, wed: map{startTime: int(int32), endTime: int(int32)}, thu: map{startTime: int(int32), endTime: int(int32)}, fri: map{startTime: int(int32), endTime: int(int32)}, sat: map{startTime: int(int32), endTime: int(int32)}, sun: map{startTime: int(int32), endTime: int(int32)}}, customFields: map{field1: str?, field2: str?, field3: str?, field4: str?, field5: str?, field6: str?, field7: str?, field8: str?, field9: str?, field10: str?}} # Success\n\n@end\n"}}