Settings Overview
Configure OnSched at company, location, service, and resource levels to control behavior, limits, and preferences.
Environment tip: All examples use
v3.onsched.comfor production. Replace the host withapi-stage.onsched.comwhen 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 everydurationminutes (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 customersfalse– 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:
- Cache needs clearing (some settings cache for performance)
- 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
- Booking Limits – Detailed limit configuration
- Companies Overview – Company-level settings
- Services Overview – Service configuration
- Resources Overview – Resource settings
- Customers Overview – Customer preferences
Settings give you control over OnSched's behavior at every level. Configure thoughtfully, document changes, and set sensible defaults while customizing where needed.
Updated 4 days ago
