Skip to content
English
  • There are no suggestions because the search field is empty.

How the Public Booking Diary Schedule Works

Source: schedules_controller.rb

  • Default schedules require a day_of_week_int (0=Sunday through 6=Saturday) and no specific date; non-default (override) schedules require a specific date plus start/end times
  • Schedule updates use an upsert pattern — if a schedule for that day/date does not exist, it is created; if it does, it is updated in place
  • Two calculation modes determine available booking slots: Manual mode uses per-day configured hours; Automatic mode sums all mechanic schedules for the day
  • When no appointment type is selected on the public diary, the default booking duration is 1 hour
  • In Automatic mode, the diary shows as full when booked hours reach the booking_diary_full_at_percent threshold (e.g., if set to 80%, the day shows full at 80% capacity)
  • Days with zero configured hours are automatically marked as unavailable on the public diary
  • The public diary always displays a full Monday-to-Sunday week regardless of the company's actual working days

Support scenarios

  • "The online diary shows a day as full but we still have availability" → In Automatic mode, the diary shows full when the booking_diary_full_at_percent threshold is reached, not at 100%. Check the threshold setting — it may be set lower than expected (e.g., 80%).
  • "Saturday shows as unavailable on the public diary but we work Saturdays" → Check that the Saturday schedule has hours configured. Zero-hour days are automatically marked unavailable. Create or update the schedule for Saturday with the correct hours.
  • "The default appointment length is wrong on the public diary" → When no appointment type is selected, the default is 1 hour. Create or configure appointment types with the correct durations to override this default.
  • "The public diary shows Sunday but we're closed" → The public diary always shows Monday through Sunday. Days with zero hours will show as unavailable, but the day itself will still appear in the calendar.