> ## Documentation Index
> Fetch the complete documentation index at: https://docs.softbooq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduling

> Resource bookings, availability and calendar management

The Scheduling module manages bookable resources — rooms, equipment, staff — and allows your team or customers to make reservations against available slots. All bookings are conflict-checked in real time and visible in unified calendar views.

## What Scheduling owns

* **Resources** — bookable assets or people with defined availability windows
* **Bookings** — confirmed reservations against a resource's schedule
* **Availability rules** — working hours, buffer times, and advance booking limits

***

## Common tasks

### Add a bookable resource

<Steps>
  <Step title="Open Scheduling → Resources → New Resource" />

  <Step title="Name the resource">
    Give it a specific, recognisable name (e.g. Meeting Room A — 10 Seats, Service Bay 2, John Smith – Senior Consultant).
  </Step>

  <Step title="Set the resource type">
    Choose: Room, Equipment, or Person. The type affects how the resource appears in booking interfaces and reports.
  </Step>

  <Step title="Set availability windows">
    Define the days and hours this resource is available (e.g. Mon–Fri, 09:00–17:00). You can set different hours per day if needed.
  </Step>

  <Step title="Set buffer time (optional)">
    Add a buffer between bookings (e.g. 15 minutes). This prevents back-to-back bookings with no time for setup, travel, or preparation.
  </Step>

  <Step title="Set booking rules">
    Choose the minimum and maximum booking duration, and how far in advance bookings can be made or cancelled.
  </Step>

  <Step title="Enable client portal booking (optional)">
    Toggle to allow customers to book this resource directly through the client portal without staff intervention.
  </Step>

  <Step title="Save">
    The resource is now bookable by your team and, if enabled, by clients via the client portal.
  </Step>
</Steps>

### Create a booking

<Steps>
  <Step title="Open Scheduling → Bookings → New Booking (or click a time slot directly on the calendar)" />

  <Step title="Select the resource">
    Choose the room, equipment, or person to book.
  </Step>

  <Step title="Choose date and time">
    The calendar shows available slots in real time. Unavailable times (blocked, already booked, or outside availability) are greyed out.
  </Step>

  <Step title="Set duration">
    Enter the start and end time or select from preset durations if configured.
  </Step>

  <Step title="Add booking details">
    Enter a title or purpose for the booking. Link to a CRM customer or HR employee for context and reporting.
  </Step>

  <Step title="Add attendees (optional)">
    For room or person bookings, list the attendees. They receive a confirmation notification.
  </Step>

  <Step title="Confirm">
    The booking is confirmed instantly. The resource calendar updates in real time and all attendees receive a confirmation notification.
  </Step>
</Steps>

### Block time on a resource

<Steps>
  <Step title="Open the resource calendar" />

  <Step title="Click on the time slot to block" />

  <Step title="Select Block Time">
    Enter a reason: Maintenance, Out of Office, Reserved, Public Holiday, or Custom.
  </Step>

  <Step title="Set duration">
    Block a specific slot, a full day, or a recurring period (e.g. every Monday morning for 4 weeks).
  </Step>

  <Step title="Save">
    The slot is blocked and cannot be booked by anyone. Existing bookings within a newly blocked period are flagged and their holders notified.
  </Step>
</Steps>

### Manage recurring bookings

<Steps>
  <Step title="Create a booking as normal" />

  <Step title="Toggle Recurring">
    Enable the recurring option and set the pattern: daily, weekly, bi-weekly, or monthly.
  </Step>

  <Step title="Set the end date or occurrence count">
    Choose when the series ends (e.g. after 10 occurrences, or on a specific date).
  </Step>

  <Step title="Save">
    All occurrences are created and visible on the calendar. You can cancel individual occurrences without affecting the rest of the series.
  </Step>
</Steps>

### View and manage the schedule calendar

<Steps>
  <Step title="Open Scheduling → Calendar">
    The calendar shows all resources in a unified view. Switch between Day, Week, and Month views.
  </Step>

  <Step title="Filter by resource or resource type">
    Show only specific rooms, only equipment, or only a specific person's calendar.
  </Step>

  <Step title="Drag to reschedule">
    Drag a booking block to a new time slot to reschedule it. The system checks availability in real time and prevents you from dropping into a conflicting slot.
  </Step>

  <Step title="Export the schedule">
    Download the schedule as PDF for distribution, or sync to an external calendar (Google Calendar, Outlook) using the iCal feed link.
  </Step>
</Steps>

### Cancel a booking

<Steps>
  <Step title="Open the booking from the calendar or Bookings list" />

  <Step title="Click Cancel Booking" />

  <Step title="Enter a cancellation reason">
    The reason is sent to all attendees in the cancellation notification.
  </Step>

  <Step title="Confirm">
    The slot is released immediately and becomes available for new bookings.
  </Step>
</Steps>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="A time slot appears available but I cannot book it">
    The slot may be within a buffer period from an adjacent booking. Check the resource's buffer time setting. If the slot appears immediately before or after another booking, the buffer is blocking it. You can either reduce the buffer time on the resource or find an alternative slot.
  </Accordion>

  <Accordion title="A customer tried to book via the portal but the resource was not visible">
    Client portal booking must be enabled per resource. Open the resource record and confirm that **Enable client portal booking** is toggled on. Also check that the customer has active portal access under **Settings → Users & Roles**.
  </Accordion>

  <Accordion title="I cannot delete a resource that has upcoming bookings">
    Resources with future bookings cannot be deleted — doing so would orphan the booking records. Cancel all upcoming bookings first, then delete the resource. Alternatively, archive the resource — it will be hidden from new bookings but historical records are preserved.
  </Accordion>

  <Accordion title="The calendar is not showing bookings I know exist">
    Check the calendar filter — it may be filtering to a specific resource or resource type that excludes the bookings you are looking for. Clear all filters to show all bookings across all resources.
  </Accordion>

  <Accordion title="A recurring booking was cancelled but only one occurrence was removed">
    When cancelling a recurring booking, you are prompted to choose: cancel only this occurrence, or cancel this and all future occurrences. If you chose **This occurrence only**, the rest of the series is unchanged. Open another occurrence to cancel the full series.
  </Accordion>
</AccordionGroup>

***

## FAQ

<AccordionGroup>
  <Accordion title="Can customers book resources directly without going through a staff member?">
    Yes. Enable client portal booking on each resource you want to make self-bookable. Customers with portal access will see a booking interface showing availability in real time. You can configure whether bookings require staff confirmation or are instantly confirmed.
  </Accordion>

  <Accordion title="Can I charge customers for bookings?">
    Yes. Set a booking rate on the resource (e.g. £50 per hour). When a booking is confirmed, a pending invoice is generated in Finance. The invoice is sent automatically or held for manual review depending on your billing settings.
  </Accordion>

  <Accordion title="Can I sync the schedule with Google Calendar or Outlook?">
    Yes. Each resource has a unique iCal feed URL under the resource settings. Add this URL to Google Calendar, Outlook, or any calendar application that supports iCal subscriptions. The feed is read-only — changes must still be made in Softbooq.
  </Accordion>

  <Accordion title="How does Scheduling prevent double-bookings?">
    Double-booking prevention is enforced in real time at the database level, not just in the UI. Two users cannot book the same slot simultaneously — the second request will be rejected and prompted to select a different slot.
  </Accordion>

  <Accordion title="Can I set different availability for a resource on public holidays?">
    Yes. Block time on the resource for each public holiday, or use the recurring block feature to mark annual dates. You can also set a custom availability calendar per resource under the resource's advanced settings.
  </Accordion>
</AccordionGroup>

***

## See also

<CardGroup cols={3}>
  <Card title="CRM" icon="handshake" href="/erp/crm">
    Bookings are linked to CRM customers for a full account view.
  </Card>

  <Card title="Online Storefront" icon="store" href="/portals/storefront">
    Customers can book services directly from your public storefront.
  </Card>

  <Card title="HR" icon="briefcase" href="/erp/hr">
    Staff leave and availability feeds into scheduling resource calendars.
  </Card>
</CardGroup>
