---
title: "Create Location"
method: POST
path: "/setup/v1/locations"
tags: ["Locations"]
---

# Create Location

`POST /setup/v1/locations`

Use this endpoint to **Create** a new business location. The result is a business location object with a GUID assigned to the location.

The **name** and **timezoneName** fields are required. The **timezoneName** must be expressed as an IANA Timezone e.g., _America/New\_York_. Refer to: [Timezone Wiki](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a listing of IANA time zones.

**Business hours** are set by defining the **startTime** and **endTime** values for each day available/open. All days of the week must be provided when setting availability. Days are defined as **sun, mon, tue, wed, thu, fri and sat**. Start and End Times are entered in **military format. e.g., 800 is 8:00am, 2230 is 10:30pm**. If there is no physical location and the business hours are irrelevant, set the hours to open 24 hours by setting startTime=0 and endTime=2400. To set a whole day as unavailable, set both the startTime and endTime to 0.

**Settings** can be set here. Booking timer minutes, book ahead restrictions and customer bookings per day are all available here. Please read about the settings scope parameter before setting these values as it may simplify your process.

**Settings Scope** can be set to the company or the business location level. You can have all locations use the same company level settings or individual business locations can define their own, business location scope. If you want to use the company settings throughout all locations, do not pass in **settings element**. To create business location scoped settings, pass in the **settings element** with the field values defined in the post body.

**Appointment Reminders** Reminder values are used to define how many hours, days, or weeks (interval value) prior to the appointment to send the reminder. **Interval** values are used to define the reminder interval: **1 = Hours**, **2 = Days** and **3 = Weeks**. The reminder fields are numbers. If you are using the hours interval, use a number from 1 to 24.

Example 1: **emailFirstReminder: 1, emailFirstReminderInterval: 2** - results in 1st reminder being sent **1 Day before** the appointment time.

Example 2: **emailSecondReminder: 3, emailSecondReminderInterval: 1** - results in 2nd reminder being sent **3 Hours before** the appointment time.

**IMPORTANT DEPRECATION NOTICE**: The following online settings parameters were intended for internal use in our Portal application only. They will be deprecated on **OCTOBER 15, 2022**. These fields are currently part of the **SETTINGS** object in all location endpoints: **businessId, enabled, familyMembersEnabled, serviceLabel, resourceLabel, resourceAnyLabel, resourceSelection, liveMode, formFlow, availabilityForm, showServiceGroups, showOnSchedLogo, showBusinessLogo, disableAuthorization, hideNavBar, hideLocationNav, hideServiceGroupsNav, hideServicesNav, hideContinueBooking, returnToService, returnToAvailability, hideBreadCrumbNav.** If you are using these fields, please adjust your code to handle the deprecation or let us know by submitting a ticket to: **_support@onsched.com_** as we do not want to interrupt your existing workflows.

## Request body

- LocationInputModel
  - `name` string, nullable
  - `adminEmail` string, nullable — Field is required.
  - `adminName` string, nullable — This field is no longer required and has been deprecated.
  - `timezoneName` string, nullable — 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` string, nullable — Use the friendlyId as an alternative to the assigned locationId Choose something easy and meaningful. Must be unique within your company. FriendlyId's are limited to maximum of 64 characters.
  - `phone` string, nullable — GroupSize Limits the number of people that can come along on a single appointment
  - `fax` string, nullable
  - `website` string, nullable
  - `email` string, nullable
  - `regionId` string, nullable
  - `address` AddressInputModel
    - `addressLine1` string, nullable
    - `addressLine2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `country` string, nullable
    - `postalCode` string, nullable
  - `businessHours` BusinessHoursInputModel
    - `mon` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
    - `tue` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
    - `wed` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
    - `thu` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
    - `fri` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
    - `sat` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
    - `sun` BusinessHourInputModel
      - `startTime` integer — startTime is entered in military format. e.g. 0 = midnight start, 900 = 9am start
      - `endTime` integer — endTime is entered in military format. e.g. 1800 = 6pm end, 2400 = midnight end of day. For 24 hours enter startTime = 0 and endTime = 2400
      - `isOpen` boolean — If false, then not available entire day, starTime and endTime must both be zero. If true, then available between startTime and endTime.
      - `is24Hours` boolean — If true then available for 24 hours. startTime must be zero and endTime must be 2400.
  - `settings` OnlineSettingsInputModel
    - `bookAheadUnit` integer, nullable
    - `bookAheadValue` integer, nullable
    - `bookInAdvance` integer, nullable
    - `customerBookingsPerDay` integer, nullable
    - `enableWorldTimezones` boolean, nullable
    - `bookingTimerMins` integer, nullable
  - `defaults` BusinessDefaultsInputModel
    - `enableUtcTimezone` boolean, nullable
    - `customerState` boolean, nullable
    - `customerCity` boolean, nullable
    - `autoUpdateCustomer` boolean, nullable
    - `businessNotification` boolean, nullable
    - `emailInfo` boolean, nullable
  - `appointmentReminders` AppointmentRemindersInputModel
    - `emailFirstReminder` integer, nullable
    - `emailFirstReminderInterval` integer
    - `emailSecondReminder` integer, nullable
    - `emailSecondReminderInterval` integer
    - `smsFirstReminder` integer, nullable
    - `smsFirstReminderInterval` integer
    - `smsSecondReminder` integer, nullable
    - `smsSecondReminderInterval` integer

## Response `200`

Success

- LocationViewModel
  - `object` string, nullable
  - `id` string, nullable
  - `friendlyId` string, nullable
  - `companyId` string, nullable
  - `companyName` string, nullable
  - `name` string, nullable
  - `adminEmail` string, nullable
  - `adminName` string, nullable
  - `phone` string, nullable
  - `fax` string, nullable
  - `email` string, nullable
  - `website` string, nullable
  - `regionId` string, nullable
  - `logo` string, nullable
  - `imageUrl` string, nullable
  - `timezoneId` string, nullable
  - `timezoneIana` string, nullable
  - `timezoneOffset` integer, nullable
  - `primaryBusiness` boolean
  - `primaryCalendarId` string, nullable
  - `latitude` number, double
  - `longitude` number, double
  - `travel` TravelViewModel
    - `startAddress` string, nullable
    - `startLat` string, nullable
    - `startLon` string, nullable
    - `distance` string, nullable
    - `proximity` string, nullable
    - `units` string, nullable
  - `address` AddressViewModel
    - `addressLine1` string, nullable
    - `addressLine2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `country` string, nullable
    - `postalCode` string, nullable
  - `businessHours` BusinessHoursViewModel
    - `mon` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
    - `tue` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
    - `wed` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
    - `thu` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
    - `fri` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
    - `sat` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
    - `sun` BusinessHourViewModel
      - `isOpen` boolean
      - `startTime` integer
      - `endTime` integer
      - `is24Hours` boolean
  - `businessHolidays` BusinessHolidayViewModel[], nullable
    - `id` string, nullable
    - `holidayName` string, nullable
    - `businessClosed` boolean
    - `publicHolidayId` integer
  - `services` BusinessServiceViewModel[], nullable
    - `object` string, nullable
    - `id` integer
    - `serviceId` integer
    - `serviceName` string, nullable
  - `settings` OnlineSettingsViewModel
    - `object` string, nullable
    - `companyId` string, nullable
    - `businessId` string, nullable
    - `locationId` string, nullable
    - `enabled` boolean
    - `familyMembersEnabled` boolean
    - `customerVerification` boolean
    - `serviceLabel` string, nullable
    - `resourceSelection` boolean
    - `resourceLabel` string, nullable
    - `resourceAnyLabel` string, nullable
    - `id` integer
    - `defaultService` boolean, nullable
    - `liveMode` boolean, nullable
    - `firstAvailable` boolean, nullable
    - `formFlow` integer
    - `availabilityForm` integer
    - `showServiceGroups` boolean
    - `bookWithAccount` boolean
    - `bookingPolicy` string, nullable
    - `bookingMessage` string, nullable
    - `showOnSchedLogo` boolean
    - `showBusinessLogo` boolean
    - `enableWorldTimezones` boolean, nullable
    - `disableAuthorization` boolean, nullable
    - `hideNavBar` boolean, nullable
    - `hideLocationNav` boolean, nullable
    - `hideServiceGroupsNav` boolean, nullable
    - `hideServicesNav` boolean, nullable
    - `hideContinueBooking` boolean, nullable
    - `defaultToCustomerTimezone` boolean
    - `returnToService` boolean
    - `returnToAvailability` boolean
    - `hideBreadCrumbNav` boolean
    - `bookingTimerMins` integer
    - `bookAheadUnit` integer
    - `bookAheadValue` integer
    - `bookInAdvance` integer
    - `customerBookingsPerDay` integer
    - `lateCancelHours` integer
    - `lateCancelAction` integer
    - `lateRescheduleHours` integer
    - `lateRescheduleAction` integer
    - `bookingConfirmationMessage` string, nullable
  - `defaults` BusinessDefaultsViewModel
    - `object` string, nullable
    - `enableUtcTimezone` boolean, nullable
    - `customerState` boolean, nullable
    - `customerCity` boolean, nullable
    - `autoUpdateCustomer` boolean, nullable
    - `businessNotification` boolean, nullable
    - `emailInfo` boolean, nullable
  - `appointmentReminders` AppointmentReminderViewModel
    - `emailFirstReminder` integer
    - `emailFirstReminderInterval` integer
    - `emailSecondReminder` integer
    - `emailSecondReminderInterval` integer
    - `smsFirstReminder` integer
    - `smsFirstReminderInterval` integer
    - `smsSecondReminder` integer
    - `smsSecondReminderInterval` integer

---

[API](https://skmtc.net/onsched/apis/onsched-setup-api.md) · [All operations](https://skmtc.net/onsched/apis/onsched-setup-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/onsched/onsched-setup-api/versions/c5c023458a2f/schema)
