Skip to content

Schedule binding

Schedules can be connected to the data model in two different ways.

These two mechanisms serve different purposes and operate on different column types:

  1. Schedule bound to a time span column Controls which time intervals a user can select.

  2. Schedule stored in a schedule column Describes recurring availability as data.

Although both involve schedules, they solve different problems and should be understood independently.

Schedule bound to a time span column

A schedule can be bound to a time span column.

A time span column stores a single interval value:

start_time
end_time

When no schedule is bound to the column, the user may enter any time interval.

Example:

2026-03-12 10:15 → 2026-03-12 11:45

Effect of binding a schedule

When a schedule is bound to the column, the schedule determines which intervals may be selected.

The schedule generates a sequence of slots, and the user can only select those slots when entering the time span.

Example schedule:

Weekdays
08:00–16:00
1 hour duration

Generated slots:

08:00–09:00
09:00–10:00
10:00–11:00
...
15:00–16:00

When this schedule is bound to the time span column:

  • the column still stores a normal time interval
  • the UI restricts the user to selecting generated slots

The final stored value remains simply:

start_time
end_time

The schedule only affects which values may be chosen, not how the value is stored.

Schedule stored in a schedule column

A different mechanism is the Schedule column type.

A column of this type stores a reference to a schedule.

Internally this is simply an identifier pointing to a schedule definition.

Example:

employee.schedule = "weekday_shift"

This means the row is associated with a schedule.

Meaning of a schedule column

A schedule column represents recurring availability.

The schedule generates a large set of intervals describing when something is available.

Example:

Employee: Kalle
Schedule: Weekdays 09:00–17:00

The generated slots represent Kalle’s working hours.

Mon 09:00–10:00
Mon 10:00–11:00
...
Fri 16:00–17:00

Unlike the time span column, this does not represent a single interval value. Instead it describes many possible intervals generated by the schedule.

Key difference

The two uses of schedules represent fundamentally different concepts.

Schedule bound to a time span column

Purpose: restrict input
Result: one stored interval

Example:

Booking.time

The schedule determines which slots may be selected.

Schedule column

Purpose: describe recurring availability
Result: many generated intervals

Example:

Employee.work_schedule

The schedule defines when the entity is available.

Conceptual comparison

Mechanism Column type Meaning
Schedule bound to column Time span Restricts selectable booking intervals
Schedule column Schedule reference Defines recurring availability

Summary

Schedules appear in two places in the system, but their roles are different.

Schedule bound to a time span column

  • restricts which intervals can be selected
  • affects user input
  • stores a single time interval

Schedule column

  • stores a reference to a schedule
  • represents recurring availability
  • generates many intervals from the schedule definition

Understanding this distinction is important because the two mechanisms operate independently and serve different purposes.

Understand the concept