Settings Overview

Configure OnSched at company, location, service, and resource levels to control behavior, limits, and preferences.

Environment tip: All examples use v3.onsched.com for production. Replace the host with api-stage.onsched.com when calling the staging environment.

What Are Settings?

OnSched settings control how your scheduling system behaves. Settings exist at multiple levels and cascade down the hierarchy:

Company → Location → Service/Resource → Appointment

Each level can override settings from levels above, giving you flexibility to set global defaults while customizing where needed.

Setting Levels

Company-Level Settings

Apply to the entire organization unless overridden:

  • Timezone – Default timezone for all operations
  • Notification Type – Default notification method (EMAIL, SMS, ALL, NONE)
  • Branding – Company name, logo, contact information

See Companies Overview.

Location-Level Settings

Override company defaults for specific locations:

  • Timezone – Location-specific timezone
  • Operating Hours – Weekly availability schedules
  • Notification Settings – Customer notification preferences
  • Expiration Delay – How long holds last before auto-cancellation
  • Webhooks – Location-specific webhook configuration

Service-Level Settings

Control how individual services behave:

  • Duration – Service length
  • Padding – Buffer time after appointments
  • Operating Hours – Weekly availability schedules
  • Bookings Per Slot – How many simultaneous appointments can be booked for the same time slot (default: 1) Refer to Booking Limits
  • Advance Booking – How far ahead customers can book

See Services Overview and Booking Limits.

Resource-Level Settings

Customize individual resource behavior:

  • Timezone – Resource-specific timezone
  • Operating Hours – Weekly availability schedules
  • Notification Type – How resource receives alerts
  • Bookings Per Slot – How many simultaneous appointments can be booked for the same time slot (default: 1) Refer to Booking Limits

See Resources Overview and Booking Limits.

Common Settings

Timezone

Levels: Company, Location, Resource

Controls how times are interpreted and displayed:

# Company-wide
curl -X PUT https://v3.onsched.com/v3/company \
  -d '{"timezone": "America/New_York"}'

# Location override
curl -X PUT https://v3.onsched.com/v3/location/LOCATION_ID \
  -d '{"timezone": "America/Chicago"}'

# Resource override
curl -X PUT https://v3.onsched.com/v3/resource/RESOURCE_ID \
  -d '{"timezone": "America/Los_Angeles"}'

Cascade: Resource → Location → Company

If resource, location, or company has no timezone, uses UTC default. Service use Location or Company timezone based on its scope which can be set to LOCATION or COMPANY.

Notification Type

Levels: Company, Location (customer notifications), Resource

Controls notification delivery method:

  • EMAIL – Email only
  • SMS – Text message only
  • ALL – Both email and SMS
  • NONE – No notifications
# Company default
curl -X PUT https://v3.onsched.com/v3/company \
  -d '{"notificationType": "EMAIL"}'

# Location customer notification default
curl -X PUT https://v3.onsched.com/v3/location/LOCATION_ID \
  -d '{"customerNotificationType": "ALL"}'

# Customer-specific override
curl -X PUT https://v3.onsched.com/v3/customer/CUSTOMER_ID \
  -d '{"notificationType": "SMS"}'

See Customer SMS.

Operating Hours

Level: Location (via weekly schedules)

Define when locations are open for bookings. Set via weekly unavailability blocks (times when NOT available):

  • Monday-Friday 9am-5pm → Block all other hours
  • Saturday 10am-2pm → Block all other hours
  • Sunday → Block entire day (closed)

See Weekly Allocations.

Booking Controls

Hold Expiration

Level: Location

How long appointment holds last before auto-cancellation:

{
  "expirationDelay": 900
}
  • Value in seconds
  • Default: varies by configuration
  • Example: 900 = 15 minutes

When hold expires, appointment is auto-cancelled and slot becomes available again.

Advance Booking

Level: Service

How far in advance customers can book (COMING SOON):

{
  "bookInAdvance": 7200,
  "bookAheadUnit": 2,
  "bookAheadValue": 30
}
  • bookInAdvance – Minutes from now that booking window opens
  • bookAheadUnit – Time unit (1=minutes, 2=hours, 3=days, 4=weeks)
  • bookAheadValue – Number of units into the future customers can book

Example: bookAheadUnit: 3, bookAheadValue: 30 = customers can book up to 30 days ahead.

Booking Limits

Levels: Service, Resource

Restrict how many appointments can be booked:

  • bookingLimit – Total appointments allowed
  • dailyBookingLimitCount – Appointments per day (COMING SOON)
  • dailyBookingLimitMinutes – Minutes per day (COMING SOON)
  • maxBookingLimit – Maximum per customer (COMING SOON)
  • maxResourceBookingLimit – Maximum for a specific resource (COMING SOON)

See Booking Limits for detailed configuration.

Service Configuration

Duration and Padding

Level: Service

{
  "duration": 30,
  "padding": 10
}
  • duration – Service length in minutes
  • padding – Buffer time after appointment

Padding prevents back-to-back bookings and gives resources transition time.

Duration Selection

Level: Service

Allow customers to choose appointment length:

{
  "durationSelect": true,
  "durationMin": 30,
  "durationMax": 120,
  "durationInterval": 30
}

Customers can select 30, 60, 90, or 120-minute appointments.

Booking Interval

Level: Service

Control how often slots are offered:

{
  "bookingInterval": 60
}
  • 0 – Slots offered every duration minutes (default)
  • Other value – Slots offered at specified intervals

Example: 30-minute service with 60-minute interval offers slots at 9:00, 10:00, 11:00 (not 9:30, 10:30).

Resource Configuration

Capacity

Level: Resource

How many simultaneous appointments a resource can handle:

{
  "bookingsPerSlot": 1
}
  • 1 – One customer at a time (default)
  • Higher values – Multiple customers (group classes, shared equipment)

See Max Capacity.

Calendar Availability

Level: Resource

How many days ahead to check external calendar (DAYS AHEAD COMING SOON):

{
  "calendarAvailability": 90
}

Value in days. When syncing Google/Outlook calendars, only check this far ahead for external events.

Notification Settings

Email Templates

Level: Location

Customize email content for appointment notifications:

  • Create templates per event type (booking, reminder, cancellation)
  • Use template variables (customer name, appointment time, service)
  • Upload via dashboard or API

See email template endpoints in Swagger.

Reminder Timing

Level: Location

When to send appointment reminders (COMING SOON):

{
  "remindBefore": 1440
}

Value in minutes before appointment. Example: 1440 = 24 hours before.

Sender Information

Level: Location

Customize email sender:

{
  "senderEmail": "[email protected]",
  "senderName": "Your Business Name"
}

Appears as "From" in customer emails.

Display and Branding

Images

Levels: Company, Location, Service, Resource

{
  "imageUrl": "https://cdn.example.com/logo.png"
}

Used in:

  • Dashboard branding
  • Customer-facing booking pages
  • Email notifications
  • Marketing materials

URL Names

Level: Company, Location (if public booking pages supported)

{
  "urlName": "acme-scheduling"
}

Creates SEO-friendly URLs for public booking pages.

Show Online

Level: Service

Control visibility in public booking interfaces:

{
  "showOnline": true
}
  • true – Visible to customers
  • false – Hidden (internal use only)

Best Practices

Test Configuration Changes

Before applying setting changes:

  • Test in staging environment (if available)
  • Check impact on availability and booking flow

Review Settings Periodically

Quarterly:

  • Audit overrides—are they still necessary?
  • Check for outdated settings
  • Ensure consistency across similar entities

Use Custom Fields for Metadata

Don't overload settings. For business-specific data, use CustomFields:

{
  "CustomFields": {
    "region": "northeast",
    "manager": "Jane Doe",
    "costCenter": "CC-001"
  }
}

Troubleshooting

Setting not taking effect

Check:

  1. Cache needs clearing (some settings cache for performance)
  2. Change was saved successfully (check API response)

Conflicting settings

If behavior is unexpected:

  • Verify which setting actually applies

Settings reset unexpectedly

  • Settings don't reset automatically
  • Check audit logs (who updated?)
  • Verify no automated scripts are modifying settings

Common Questions

Can I set defaults for new locations?

Locations inherit company settings automatically. After creating a location, customize as needed.

How do I apply a setting to all services?

Set at company or location level if possible. For service-specific settings, update each service or write a script to bulk update.

Can customers modify settings?

No. Settings are managed by company administrators. Customers can only set personal preferences (notification type).

What if I accidentally change a critical setting?

  • Revert via PUT request with correct value
  • Contact support if unsure of previous value
  • Consider keeping configuration backups

Related Documentation

Settings give you control over OnSched's behavior at every level. Configure thoughtfully, document changes, and set sensible defaults while customizing where needed.