Scheduling: Glossary & Table Reference (Next-Gen)
Understanding the data model behind Knack Scheduling will help you configure your app accurately and troubleshoot issues as they arise. This reference covers the key terms and the purpose of each table that Knack automatically generates when you enable the Scheduling feature.
Glossary
Appointments
A single confirmed booking event. An appointment record captures the date, time, duration, the resource being used, and the end-user who made the booking. All bookings created through the Appointment Booking element in the Live App are stored here.
Appointment Types
A bookable offering with a defined duration. Appointment Types are the primary dimension end-users select when booking. Examples include "30-Minute Consultation," "Deep Cleaning," or "3-Day Equipment Rental." You define your Appointment Types by adding records to the Appointment Types table. Duration can be set in minutes, hours, days, weeks, or months.
Resource
The person, room, or piece of equipment being booked. A resource has a schedule (defined by Shifts), can have time off, and can be subject to holiday calendars. The scheduling engine checks a resource's availability to determine which time slots to offer. Examples: a Technician, a Treatment Room, a Rental Kayak.
Shifts
A recurring availability window for a resource — the hours during which that resource is open for bookings. Shifts are made up of one or more Shift Segments. The timezone for a resource's availability is set at the Shift record level.
Shift Segments
A single time block within a Shift. For example, a Shift might have two Segments: 9:00 am–12:00 pm and 1:00 pm–5:00 pm, representing a schedule with a lunch break.
Holiday Calendars
A named collection of holidays that blocks resource availability on specific calendar days. You assign a Holiday Calendar to a resource to prevent bookings on those dates. Knack provides pre-built calendars (e.g., US Holidays) and you can create custom ones.
Holiday Dates
An individual date record within a Holiday Calendar. Each Holiday Date represents a full single day or range of days the resource is unavailable due to a holiday.
Time Off Calendars
A collection of one-off time-off records for a specific resource. Unlike a Holiday Calendar (which applies broadly), a Time Off Calendar is personal to a resource and captures specific dates or partial days when that individual is unavailable.
Time Off Dates
An individual time-off record within a Time Off Calendar. A Time Off Date can represent a full day, date range, or a partial-day absence for a resource.
Continuous Open Time
The core rule governing multi-day and long-duration appointments. A time slot is only offered as a valid start time if the resource has an unbroken stretch of open availability for the entire duration of the appointment — with no closures, holidays, time off, or existing bookings within that span.
Related Tables
An existing table in your app that you optionally associate with Scheduling during setup. The Appointments table receives a connection field pointing to your related table, allowing you to use Record Actions to automatically create or update a related record (e.g., a Treatment Plan, Service Job, or Order) whenever an appointment is booked.
Minimum Booking Notice
A setting on the Appointment Booking element that defines how far in advance an appointment must be booked. Configured in hours or days (e.g., "12 Hours" means users cannot book anything starting within the next 12 hours).
Start Time
A specific time you enter in the Shift Segmenets table. The system calculates and offers as a valid place to begin an appointment. Available appointment slots are generated based on the resource's availability, existing bookings, holidays, and time off. Only valid, conflict-free slots are shown to end-users.
Auto-Generated Tables
When you enable Scheduling, Knack automatically creates the following eight tables. You do not need to build these manually — they are generated with the correct fields and connections already in place.
| Table | Purpose |
|---|---|
| Appointment Types | Stores the bookable offerings in your app. Each record represents one type of appointment (e.g., "60-Minute Session") with a defined Duration. This table drives the booking element — what end-users see and select. |
| Appointments | Stores every booking. Each record captures the appointment type, the resource, the scheduled date and time, status, and the end-user who booked it. Connected to your Resource table, your Related Table (if selected), and the Appointment Types table. The default Status field option is Pending. |
| Shifts | Stores the recurring availability schedules for your resources. Each Shift record is connected to a resource and defines the timezone for that resource's availability. |
| Shift Segments | Stores the individual time blocks that make up a Shift. A single Shift can have multiple Segments (e.g., morning and afternoon blocks separated by a break). |
| Time Off Calendars | Stores the personal time-off calendar for each resource. One Time Off Calendar is typically associated with one resource. |
| Time Off Dates | Stores individual time-off entries within a Time Off Calendar. Each record represents a specific date, date range, or partial-day period when a resource is unavailable. |
| Holiday Calendars | Stores named collections of holidays. A Holiday Calendar can be shared across multiple resources. Knack provides a pre-built example (e.g., US Holidays) and you can create custom ones. |
| Holiday Dates | Stores individual holiday entries within a Holiday Calendar. Each record represents a full single calendar day or date range on which connected resources are unavailable. |
How the Tables Connect
The tables work together as a layered availability engine. When the system calculates valid time slots for a booking, it evaluates the following in order:
- Shifts & Shift Segments define when the resource is generally open.
- Time Off Dates remove specific windows from that availability.
- Holiday Dates remove full calendar days from that availability.
- Existing Appointments remove already-booked slots.
What remains after all four layers are applied is the set of valid, conflict-free slots offered to the end-user.

