Resources Overview
Understand how resources (staff, equipment, rooms) work in OnSched and how to configure their availability and capabilities.
Environment tip: All examples use
v3.onsched.comfor production. Replace the host withapi-stage.onsched.comwhen calling the staging environment.
What Are Resources?
Resources are the people, equipment, or spaces that deliver services. They represent:
- Staff – Stylists, consultants, therapists, instructors, doctors
- Equipment – Vehicles, machines, tools, devices
- Spaces – Rooms, courts, studios, tables
- Virtual assets – Video licenses, phone lines, virtual meeting rooms
Every appointment requires at least one resource. Resources have schedules, connect to external calendars, and determine when services are available.
Core Properties
Name and Description
- name (required) – Display name ("Dr. Smith", "Conference Room A", "Bike #12")
- description (optional) – Additional details, specializations, or notes
Names appear in booking confirmations and customer notifications.
Contact Information
- email (optional) – Resource's email address
- phone (optional) – Phone number for SMS notifications
Used for:
- Sending appointment notifications
- Calendar sync (Google, Outlook)
- Staff communication
Notification Preferences
- notificationType (enum) – How the resource receives appointment alerts
EMAIL– Email notifications onlySMS– Text message notifications onlyALL– Both email and SMSNONE– No notifications
Configure per resource so staff get alerts their preferred way.
Timezone
- timezone (string) – IANA timezone (e.g.,
America/New_York)
Used to calculate:
- Resource's local working hours
- When to send notifications
- Availability in user's local time
Defaults to location or company timezone if not set.
Image
- imageUrl (string) – URL to resource photo or icon
Display in booking interfaces so customers know who they're booking with.
Capacity Settings
Bookings Per Slot
- bookingsPerSlot (integer) – How many simultaneous appointments this resource can handle (default:
1)
Most resources have capacity of 1 (can serve one customer at a time). Higher values allow:
- Group bookings (instructor teaches multiple students)
- Shared equipment (multiple people can use simultaneously)
- Pooled resources (multiple units of same equipment)
See Max Capacity for group booking details.
Booking Limit
- bookingLimit (integer) – Maximum appointments this resource can have within a time window (default:
0= unlimited)
Prevents overbooking even if schedule allows it. Use to:
- Limit staff workload
- Cap equipment usage
- Restrict bookings per day/week
See Booking Limits for configuration.
Availability Configuration
Resources can define availability using two models:
Schedule-Based Availability (Default)
Resource is available during:
- Weekly schedules – Recurring weekly hours (e.g., Mon-Fri 9am-5pm)
- Single allocations – One-time availability blocks (e.g., working Saturday this week only)
- Recurring blocks – Repeating time blocks with rules (e.g., first Monday of every month)
This is the most common model. Set availabilityType: schedule or leave default.
Allocation-Based Availability
Resource is unavailable by default UNLESS explicitly allocated:
- Only times defined in allocations are available
- Everything else is blocked
- Useful for resources that work irregular schedules
Set availabilityType: allocation.
Example:
A consultant works project-based hours:
- Week 1: Available Mon-Wed 10am-2pm
- Week 2: Not available
- Week 3: Available Fri 1pm-6pm
Use allocation-based availability and create allocations for each working period.
Creating a Resource
Basic Resource
curl -X POST https://v3.onsched.com/v3/resource \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Sarah Johnson",
"email": "[email protected]",
"phone": "+15550123",
"notificationType": "ALL",
"timezone": "America/New_York",
"CompanyId": "company-uuid"
}'Response:
{
"id": "resource-uuid",
"name": "Sarah Johnson",
"email": "[email protected]",
"phone": "+15550123",
"notificationType": "ALL",
"timezone": "America/New_York",
"bookingsPerSlot": 1,
"createdAt": "2025-11-25T10:00:00Z"
}Equipment Resource
curl -X POST https://v3.onsched.com/v3/resource \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Treadmill #5",
"description": "Located in cardio section",
"notificationType": "NONE",
"bookingsPerSlot": 1,
"CompanyId": "company-uuid"
}'Equipment typically doesn't need email/phone since it won't receive notifications.
Group Resource (Instructor)
curl -X POST https://v3.onsched.com/v3/resource \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Instructor Mike",
"email": "[email protected]",
"notificationType": "EMAIL",
"bookingsPerSlot": 20,
"CompanyId": "company-uuid"
}'This instructor can handle 20 customers simultaneously in group classes.
Updating Resources
Use PUT /v3/resource/:id:
curl -X PUT https://v3.onsched.com/v3/resource/RESOURCE_ID \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "+15550999",
"notificationType": "SMS"
}'Changes apply to future appointments. Existing appointments retain original configuration.
Listing Resources
Retrieve resources with filtering:
# All company resources
curl https://v3.onsched.com/v3/resources?limit=50 \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# Resources at a specific location
curl https://v3.onsched.com/v3/resources?LocationId=LOCATION_ID \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# Resources for a service
curl https://v3.onsched.com/v3/service/SERVICE_ID/resources?LocationId=LOCATION_ID \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Response includes pagination and full resource details.
Deleting Resources
Resources use soft-delete:
curl -X DELETE https://v3.onsched.com/v3/resource/RESOURCE_ID \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Deleted resources:
- No longer appear in availability
- Remain linked to historical appointments
- Can be restored if needed
Best practice: Instead of deleting, mark inactive resources with custom fields or remove service links.
Resource Schedules
Resources need operating hours to appear in availability. Define schedules using:
Weekly Unavailability
Standard weekly hours (e.g., Monday-Friday 9am-5pm).
These define when a resource is NOT available. Everything else is considered available (within location operating hours).
Weekly Allocations
Explicit time blocks when resource is available (for allocation-based resources).
Single Allocations
One-time availability blocks (working extra hours, covering shifts).
Out of Office
Blocks of unavailability (vacation, sick days, training).
See:
External Calendar Sync
Resources can sync with Google Calendar or Outlook:
- Two-way sync – OnSched appointments appear in external calendar, external events block OnSched availability
- Real-time blocking – External meetings prevent double-booking
- Automatic updates – Cancellations and reschedules sync both ways
To enable:
- Resource must have email address
- Connect calendar via dashboard or API
- Authorize OnSched to access the calendar
- Events sync automatically
See External Calendar Sync for setup.
Custom Fields
Extend resources with additional data:
{
"name": "Dr. Martinez",
"CustomFields": {
"specialization": "orthodontics",
"languages": "en,es",
"yearsExperience": "15",
"licenseNumber": "12345"
}
}Use custom fields for:
- Staff credentials and certifications
- Equipment specifications
- Room amenities
- Integration metadata
Relationship with Other Entities
Resources ↔ Services
Resources link to services they can deliver. Without this link, services won't show availability.
See Linked Resources.
Resources ↔ Locations
Resources work at one or more locations. Use:
- Service links to associate resource with services at specific locations
- Allocations to define when resource is at each location
See Linked Locations.
Resources ↔ Appointments
Appointments assign resources to fulfill services:
- Automatically via round robin
- Manually via
ResourceIdsparameter
See Round Robin Booking.
Common Resource Types
Staff Members
Configuration:
- Name, email, phone
- notification Type:
ALLorEMAIL - Link to services they perform
- Weekly schedule or allocations
- Optional: Connect external calendar
Example: Hairstylist, consultant, instructor, therapist
Equipment
Configuration:
- Descriptive name (include unit number if multiple)
notificationType: NONE(equipment doesn't get notifications)bookingsPerSlotif multiple can use simultaneously- Link to services that require the equipment
Example: Treadmill, vehicle, projector, instrument
Rooms or Spaces
Configuration:
- Room name/number
notificationType: NONEbookingsPerSlot= room capacity (if multiple simultaneous bookings allowed)- Link to services held in that room
Example: Conference room, exam room, studio, court
Virtual Resources
Configuration:
- License or account name
- Email if applicable (for automated meeting links)
bookingsPerSlotbased on license limits- Link to virtual services
Example: Zoom license, phone line, video consultation slot
Resource Assignment Modes
When multiple resources can fulfill a service, OnSched uses round robin logic:
- RANDOM – Pick any available resource
- BALANCED – Choose resource with fewest bookings in search window
- NONE – Require specific resources (or all specified resources for multi-resource appointments)
See Round Robin Booking for details.
Multi-Location Resources
Resources can work at multiple locations with different schedules:
Example:
Consultant works:
- Monday/Tuesday: Location A
- Wednesday/Thursday: Location B
- Friday: Location C
Configuration:
- Create one resource record
- Link to services at all three locations
- Use weekly allocations to define when at each location
See Linked Locations.
Best Practices
Naming Conventions
- Staff: Use real names ("Dr. Alice Smith")
- Equipment: Include identifier ("Bike #5", "Treadmill 3")
- Rooms: Use clear labels ("Conference Room A", "Exam Room 2")
Avoid generic names like "Resource 1"—customers see these in confirmations.
Contact Information
- Always provide email for staff (enables notifications and calendar sync)
- Provide phone only if SMS notifications are desired
- Omit contact info for equipment/rooms
Timezone Accuracy
- Set resource timezone matching where they physically work
- Update timezone if resource relocates
- Use location timezone as fallback
Capacity Settings
- Most resources should have
bookingsPerSlot: 1 - Only increase for true simultaneous capacity (instructors, shared equipment)
- Don't confuse bookingsPerSlot with booking limits (see Booking Limits)
Regular Maintenance
- Review resource list quarterly
- Archive departed staff
- Update contact information
- Verify service links are current
Troubleshooting
Resource not appearing in availability
Check:
- Resource is linked to requested service at the location
- Resource has availability defined (weekly schedule or allocations)
- Resource isn't fully booked during search window
- Resource isn't marked out of office
- External calendar (if synced) isn't blocking all times
Notifications not sending to resource
Check:
- Resource has valid email/phone
notificationTypeis notNONE- Location has notifications enabled
- Email/SMS gateway is configured (check with support if needed)
Calendar sync not working
Check:
- Resource has email address
- External calendar is connected and authorized
- Calendar permissions include read/write
- No authentication errors (re-authorize if needed)
Resource showing availability when they shouldn't
Check:
- Resource doesn't have out-of-office block during that time
- Weekly unavailability is configured correctly
- Allocation model matches expectations (schedule vs allocation-based)
- Location operating hours aren't broader than intended
Common Questions
Can resources have different rates or prices?
OnSched doesn't directly handle pricing per resource. Options:
- Store pricing in
CustomFields - Use different services for different resource tiers
- Handle pricing in your application layer
Can a resource work at multiple locations?
Yes! Link the resource to services at multiple locations and use allocations to define when they're at each location.
How do I handle part-time staff?
- Create resource record
- Define limited weekly hours via unavailability
- Or use single allocations for specific shifts
Can I limit how many appointments a resource has?
Yes, use bookingLimit to cap total bookings. See Booking Limits.
What happens if a resource is double-booked?
OnSched prevents this through availability validation. If external calendar sync is enabled, external events also block availability automatically.
Related Documentation
- Round Robin Booking – Resource assignment strategies
- Linked Locations – Multi-location resource management
- Services Overview – Configuring bookable services
- External Calendar Sync – Google/Outlook integration
- Availability Guide – How resources affect slot generation
- Booking Limits – Restricting resource bookings
Resources are the operational backbone of OnSched. Configure them thoughtfully, keep them updated, and your availability and booking systems will run smoothly.
Updated 4 days ago
