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

# Bookings

> How to create, manage, and invoice resource bookings in Nexudus — including pricing, credits, products, attendees, and payment workflows.

## Overview

The **Bookings** section lets you manage reservations for your bookable resources — meeting rooms, hot desks, private offices, event spaces, and any other resources you offer. You can create bookings on behalf of customers, track availability in real time, apply pricing rates, use credits, add products (e.g., catering), and manage the full billing lifecycle from charge to invoice.

Bookings integrate with your calendar, access control, and notification systems to provide a complete reservation experience for both operators and customers.

## How to access

Navigate to **Operations → Bookings** in the left sidebar.

<Note>
  Requires the **booking** role.
</Note>

## Key concepts

| Term                  | Meaning                                                                                                                                                   |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Resource**          | A bookable item — meeting room, hot desk, private office, parking space, etc.                                                                             |
| **Resource type**     | A category of resources (e.g., "Meeting rooms", "Hot desks") used to group pricing rates.                                                                 |
| **Rate**              | A pricing rule that determines how much a booking costs. Rates are linked to resource types and can vary by time of day, customer plan, or charge period. |
| **Charge period**     | How a rate calculates cost — by the minute, day, week, month, or per use.                                                                                 |
| **Time credit**       | Pre-paid usage time included in a customer's plan (e.g., "4 hours of meeting room time per month"). Deducted from the booking duration.                   |
| **Money credit**      | A monetary balance that can be used to pay for bookings (e.g., "£50 booking credit per month"). Deducted from the booking cost.                           |
| **Booking product**   | An additional product added to a booking (e.g., projector, catering, whiteboard markers).                                                                 |
| **Tentative booking** | A booking that holds a calendar slot but is not yet confirmed and will not be charged.                                                                    |
| **Booking charge**    | The line item posted to the customer's account representing the cost of the booking.                                                                      |

***

## The booking form

### Tabs

| Tab                 | Contents                                                                      |
| ------------------- | ----------------------------------------------------------------------------- |
| **Booking details** | Resource, time, customer, pricing, repeat options, and availability calendar  |
| **Products**        | Additional products linked to this booking (from the resource's product list) |
| **Attendees**       | Visitors/guests attending this booking                                        |
| **Notes**           | Internal conversation thread about this booking (visible to staff only)       |
| **Charges**         | Posted charges and associated invoices for this booking                       |

***

## Creating a booking

<Steps>
  <Step title="Select a customer (optional)">
    Choose the customer making the booking. If left empty, this is an "anonymous" booking (no billing).
  </Step>

  <Step title="Select a resource">
    Choose the resource to book. Only resources in your current location are shown.
  </Step>

  <Step title="Choose a desk/unit (if applicable)">
    If the resource has a floor plan with individual desks or units, you can select a specific one or leave it on "Automatically assign next available".
  </Step>

  <Step title="Set start and end times">
    Use the date/time pickers or the duration shortcuts (1h, 2h, 4h, 8h). The availability calendar on the right shows existing bookings for that day so you can spot conflicts.
  </Step>

  <Step title="Add customer and internal notes (optional)">
    **Customer notes** are visible to the customer. **Internal notes** are only visible to staff.
  </Step>

  <Step title="Configure pricing">
    The system automatically calculates the best rate. You can override the price, select a specific rate, apply a discount code, or disable credit usage.
  </Step>

  <Step title="Choose billing options">
    * **Calculate cost and post charges now** — posts the charge immediately on save.
    * **Invoice this booking when saved** — creates an invoice immediately.
    * **Invoice this customer directly** — bypasses team merged billing.
  </Step>

  <Step title="Set repeat options (optional)">
    For recurring bookings, configure repetition (daily, weekly, specific days) and an end date.
  </Step>

  <Step title="Save">
    Click **Save**. The booking appears on the calendar and the customer is notified (if configured).
  </Step>
</Steps>

***

## Booking details fields

### Resource and time

| Field                 | Description                                                                               |
| --------------------- | ----------------------------------------------------------------------------------------- |
| **Customer**          | The customer making the booking (optional — leave empty for anonymous bookings)           |
| **Resource**          | The resource being booked (required)                                                      |
| **Desk / unit**       | Specific desk or unit on the resource's floor plan (shown only if the resource has desks) |
| **Start / end times** | Booking start and end in your location's timezone                                         |
| **Tentative**         | Marks the booking as unconfirmed — it holds the slot but won't be charged                 |

### Price and billing

| Field                                       | Description                                                                                                                      |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Price**                                   | The calculated price for the booking. You can override this with a custom amount.                                                |
| **Rate**                                    | The pricing rate used to calculate cost. Defaults to "Best rate available" (cheapest valid rate). You can force a specific rate. |
| **Discount code**                           | A promotional code that reduces the booking price                                                                                |
| **Purchase Order number**                   | A reference number for the customer's purchase order                                                                             |
| **Do not use any available booking credit** | Prevents the system from deducting time or money credit for this booking                                                         |
| **Calculate cost and post charges now**     | Posts the booking charge to the customer's account on save (new bookings only)                                                   |
| **Invoice this booking when saved**         | Creates an invoice for this booking immediately (new bookings only)                                                              |
| **Invoice this customer directly**          | Bills this customer instead of their team's paying member (relevant for merged billing)                                          |

### Repeat booking

| Field                | Description                                            |
| -------------------- | ------------------------------------------------------ |
| **Repeat booking**   | Enable for recurring bookings                          |
| **Repeat every**     | Frequency (e.g., every 1 week)                         |
| **Repeat until**     | End date for the series                                |
| **Days of the week** | Which days the booking repeats on (Mon–Sun checkboxes) |

***

## The price breakdown panel

When a resource and customer are selected, a pricing panel appears showing:

| Line             | Meaning                                                                              |
| ---------------- | ------------------------------------------------------------------------------------ |
| **Base**         | The rate-calculated price before credits or adjustments                              |
| **Products**     | Total cost of any products added to the booking                                      |
| **Dynamic Adj.** | Price adjustment from demand-based or last-minute dynamic pricing (if enabled)       |
| **Credits**      | Amount offset by the customer's available time or money credit (shown as a negative) |
| **Total**        | Final amount to be charged                                                           |

***

## How pricing works

### Rates and resource types

Each resource belongs to a **resource type** (e.g., "Meeting rooms"). Rates are configured per resource type and define how much time in that resource costs. The system finds the cheapest valid rate for the selected resource, customer, and time slot.

A rate specifies:

* **Price** — cost per charge period
* **Charge period** — how cost is calculated: per minute, per day, per week, per month, or per use
* **Resource types** — which resource categories this rate applies to
* **Plans** — optionally restrict the rate to customers on specific plans
* **Time restrictions** — optionally apply only during specific hours
* **Fixed cost** — optionally charge a flat fee for an initial period (e.g., £10 for the first hour, then £5/hour after)

### Charge period logic

| Charge period  | How cost is calculated                                                         |
| -------------- | ------------------------------------------------------------------------------ |
| **Per minute** | Price × (booking duration in minutes ÷ 60). Calculated in 15-minute intervals. |
| **Per day**    | Price × number of days                                                         |
| **Per week**   | Price × number of weeks                                                        |
| **Per month**  | Price × number of months                                                       |
| **Per use**    | A fixed fee regardless of duration                                             |
| **Per night**  | Special variant that counts nights instead of days                             |

The system evaluates all valid rates across charge periods and selects the **cheapest** option for the customer.

<Info>
  If a booking spans more than 24 hours, per-minute pricing is automatically excluded from consideration — only daily, weekly, or monthly rates apply.
</Info>

### Rate selection priority

1. If a specific rate is selected on the booking form, that rate is always used.
2. Otherwise, all valid rates for the resource type, customer plan, and time slot are evaluated.
3. Default rates (marked as "default price") are preferred when multiple rates match.
4. The cheapest valid result wins.

If no valid rate can be found for the combination of resource, customer, and time, the system shows a warning: "We could not find a valid rate for the selected resource, customer and booking times."

***

## Credits

Credits reduce the cost of bookings either by offsetting time (time credit) or money (money credit). Credits are typically included as benefits of a customer's plan.

### Time credit

Time credits represent pre-paid usage hours for a resource type. For example, a plan might include "4 hours of meeting room time per month."

* Measured in the same charge period as the rate (minutes, days, etc.)
* Deducted from the booking duration before calculating the price
* If the booking is shorter than or equal to the available credit, the booking is free
* If the booking exceeds available credit, only the excess is charged

### Money credit

Money credits represent a monetary balance that can be applied to booking costs. For example, "£100 booking credit per month."

* Deducted from the final price after time credit has been applied
* Can be restricted to specific resource types, plans, or passes
* Can optionally be used to pay for booking products too (controlled by the setting "Use available money credit to pay for products")
* If the credit covers the full cost, no invoice is generated
* A separate charge line is created showing the credit offset

### Credit priority

When a booking is charged:

1. **Time credit** is applied first (reduces the number of billable units)
2. **Money credit** is applied second (reduces the monetary cost of remaining units)
3. The remaining balance (if any) is the charge posted to the customer's account

<Warning>
  Credits are consumed **when the booking charge is processed**, not when the booking is placed. Because the system charges bookings up to the earliest credit expiration date (see "When charges are posted" above), a customer with credit expiring on June 15 will have all their bookings through June 15 charged — and credit consumed — as soon as a booking change triggers the charge process (within minutes). This is by design: it ensures credits are used before they expire.

  If "Always calculate price and/or use credit as bookings are requested" is enabled, the system includes credits that may not be fully active yet (e.g., from a future renewal period) when evaluating which credits to consume.
</Warning>

***

## Booking products

You can attach additional products to a booking — items that the customer is ordering alongside the resource reservation (e.g., catering, AV equipment, flip charts).

### How it works

1. Products must first be linked to the resource via **resource products** (configured on the resource detail page).
2. When creating or editing a booking for that resource, the **Products** tab shows available products.
3. Select products and set quantities.
4. Product costs are added to the booking total (shown in the "Products" line of the price panel).
5. When the booking is charged, products are posted as separate line items on the customer's account.

### Product pricing

* Each resource product can have a **custom price** that overrides the product's default price.
* Products can be set to **invoice in minutes** — meaning their cost scales with the booking duration.
* If money credit is available and the "Use credit to pay for booking products" setting is enabled, credit is applied to products as well.

***

## Attendees (booking visitors)

The **Attendees** tab lets you add guests who will attend the booking. Each attendee becomes a visitor record linked to both the booking and the host.

* Attendees receive a visitor code for self-check-in
* If "Send booking confirmation to every guest" is enabled, each attendee receives a confirmation email
* Attendees appear in the Visitors list with a "Booking guest" badge
* The booking host (customer) is shown as the visitor's host

<Tip>
  Adding attendees to bookings creates visitor records automatically. You don't need to create them separately in the Visitors section.
</Tip>

***

## Booking lifecycle and billing

A booking moves through these billing states:

```
Tentative → Confirmed → Charged → Invoiced → Paid
```

### State definitions

| State         | Meaning                                                                  |
| ------------- | ------------------------------------------------------------------------ |
| **Tentative** | Holds a calendar slot. Not charged, not confirmed.                       |
| **Confirmed** | The booking is confirmed but not yet charged.                            |
| **Charged**   | Charges have been posted to the customer's account but not yet invoiced. |
| **Invoiced**  | An invoice has been generated that includes this booking's charges.      |
| **Paid**      | The invoice has been paid.                                               |

### When charges are posted

Booking charges are not simply posted "at invoice renewal." Multiple independent processes determine when a booking is charged, depending on settings and the customer's credit situation.

#### Charge pathways

<AccordionGroup>
  <Accordion title="1. Credit-horizon charging (most common)">
    Triggered **5 minutes after any booking is created, updated, or deleted** for that customer (debounced to once every 15 minutes per customer).

    The system calculates a "horizon" — the **earliest expiration date** among the customer's active time credits and money credits. It then charges **all uncharged bookings** from the past 30 days up to that horizon date, in chronological order.

    **Why?** This ensures credits are consumed before they expire. If a customer has credit expiring on June 15 and makes a booking for June 10, the system charges the June 10 booking immediately so the credit is used while still valid.

    If the customer has no credits, the horizon is "now" — meaning only past bookings get charged.
  </Accordion>

  <Accordion title="2. Recurring background task (every 23 minutes)">
    A background job runs every 23 minutes and finds bookings that are "due for charging." A booking is due when:

    * It ended more than 5 minutes ago, **OR**
    * It ends before the customer's earliest credit expiration date (same horizon logic as above)

    Additionally, it only charges bookings that end before the customer's next invoice date (to avoid charging bookings for a billing period that hasn't been processed yet).

    The system gives up trying to auto-charge a booking after 5 days.
  </Accordion>

  <Accordion title="3. Up-front payment (cancel if not paid)">
    When "Require up-front payment" is enabled for the customer type (member or contact), online bookings are flagged with `CancelIfNotPaid`.

    A background task (every 15 minutes) finds these bookings and:

    1. Posts the charge immediately
    2. Creates an invoice
    3. Attempts payment collection

    If payment isn't received within the configured window (default: 30 minutes, configurable via `Bookings.CancelUnPaidBookingsAfter`), the booking is **automatically cancelled** and charges are reverted.

    This only applies to **online bookings** (those made by the customer through the portal or calendar). Bookings created by administrators are not affected.
  </Accordion>

  <Accordion title="4. Manual charge ('Post charges now')">
    When the "Calculate cost and post charges to customer account when this booking is saved" checkbox is enabled on the booking form, the charge is posted **immediately** when the booking is saved.

    The due date is set to now, meaning it will appear on the very next invoice.
  </Accordion>
</AccordionGroup>

#### Auto-invoicing after booking ends

Separately from charging, the system can also **automatically invoice** bookings after they end. When "Invoice and collect payment as bookings end" is enabled (for members or contacts), the system:

1. Waits until the booking ended at least 15 minutes ago
2. Creates an invoice containing the booking charges
3. Attempts to collect payment via the customer's payment method

This runs as part of the same 23-minute background task and only processes bookings from the last 3 days.

### Due date strategies

The charge **due date** determines when the charge becomes eligible for inclusion on an invoice. It's set based on the following priority:

| Priority | Condition                                           | Due date                                                            |
| -------- | --------------------------------------------------- | ------------------------------------------------------------------- |
| 1        | "Post charges now" is checked                       | Now (immediate)                                                     |
| 2        | Up-front payment required for customer type         | Now (immediate)                                                     |
| 3        | "Invoice as bookings end" enabled for customer type | Booking end time                                                    |
| 4        | Plan uses "Next Nth of month" strategy              | Next occurrence of that day (e.g., 1st of month after booking ends) |
| 5        | Plan uses "Booking end date" strategy               | Booking end time                                                    |
| 6        | Plan uses "Booking creation date" strategy          | When the booking was created                                        |
| 7        | Plan uses "Renewal date" strategy (default)         | Customer's next contract renewal / invoice date                     |
| 8        | Fallback (no plan, no settings)                     | Booking start time                                                  |

<Info>
  The due date is evaluated at the time the charge is posted. If a customer has multiple active plans with different strategies, the system uses the first matching strategy found across all active contracts.
</Info>

### Team billing and shared credits

When a customer belongs to a team with shared credits:

* The **paying member's** credit expiration dates are also considered when calculating the charge horizon
* If the team shares time credits or money credits, those are included in the charging eligibility window
* This means a booking for a team member may be charged earlier than expected if the paying member's credits are about to expire

### Cancelling a booking

When a booking is cancelled:

* If not yet charged: no financial impact
* If charged but not invoiced: charges are reverted automatically
* If invoiced: the invoice is not affected (you must handle refunds manually)

***

## Booking settings

Booking settings are found under **Settings → Billing & products → Bookings** (charges & payments section) and **Settings → Billing & products → Bookings → General** (behavior settings).

### Payment settings

| Setting                                                    | Effect                                                                                                                                                                                                                              |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Require up-front payment for contacts**                  | Online bookings made by contacts are charged immediately. If not paid within the configured window (default 30 minutes), the booking is cancelled automatically. Only affects online bookings, not those created by administrators. |
| **Require up-front payment for members**                   | Same as above, but for customers with an active plan.                                                                                                                                                                               |
| **Cancel for all payment methods**                         | When enabled, up-front payment applies regardless of payment method. When disabled, customers paying via GoCardless, Forte, or Stripe direct debit are exempt.                                                                      |
| **Invoice and collect payment as bookings end (contacts)** | Automatically creates an invoice and attempts payment 15 minutes after a contact's booking ends.                                                                                                                                    |
| **Invoice and collect payment as bookings end (members)**  | Same as above, but for customers with an active plan.                                                                                                                                                                               |
| **Always calculate price / use credit immediately**        | Makes credits from future renewal periods eligible for use when evaluating booking costs. Does not change when charges are posted — that is controlled by the credit-horizon process.                                               |
| **Use money credit to pay for booking products**           | Allows money credit to offset product costs, not just the resource rate.                                                                                                                                                            |
| **Reject bookings if no credit available**                 | Prevents bookings if the customer has no credit or rate to cover the cost.                                                                                                                                                          |
| **Ignore products when calculating due dates**             | Only considers contract renewals (not product renewals) when determining the customer's next invoice date for due date calculation.                                                                                                 |
| **Cancellation policy for invoiced bookings**              | Controls whether customers can cancel or change bookings that have already been invoiced.                                                                                                                                           |
| **Disable automatic charge processing**                    | Prevents the background charge processes from running. Bookings must be charged manually.                                                                                                                                           |

### General settings

| Setting                                                          | Effect                                                                     |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **Allow new customers to register and book from the calendar**   | Lets unregistered users create an account and book directly.               |
| **Register contacts as visitors when booking**                   | Automatically creates a visitor record for contacts who make bookings.     |
| **Register known customers as visitors when added as attendees** | Creates visitor records for existing customers added as booking attendees. |
| **Require attendees to check in (NexBoard)**                     | Cancels bookings if attendees don't check in within the first 15 minutes.  |
| **Bookings by members require confirmation**                     | Member bookings are tentative until an administrator confirms them.        |
| **Bookings by contacts require confirmation**                    | Contact bookings are tentative until an administrator confirms them.       |
| **Customers can request a quote**                                | Allows customers to request a price quote instead of confirming a booking. |

### Notification settings

| Setting                               | Effect                                                                 |
| ------------------------------------- | ---------------------------------------------------------------------- |
| **Send booking confirmation email**   | Sends a confirmation to the customer after a booking is placed.        |
| **Send confirmation to guests**       | Sends a confirmation to every attendee added to the booking.           |
| **Send booking reminder email**       | Sends a reminder before the booking starts.                            |
| **Reminder email (X minutes before)** | How many minutes before a booking the reminder is sent.                |
| **Include Internet Access Token**     | Adds a temporary WiFi access code to confirmation and reminder emails. |

***

## The booking calendar

In addition to the list view, bookings can be managed from the **Booking Calendar** (Operations → Calendar → Bookings). The calendar provides:

* **Day, week, and month views** showing all bookings across resources
* **Drag-and-drop** to move or resize bookings
* **Click to create** new bookings directly on the calendar
* **Resource filtering** to show specific resources or resource types
* **Conflict highlighting** showing overlapping bookings

***

## Repeat bookings

Repeat bookings create a series of bookings at regular intervals.

### Configuration

* **Repeat every** — frequency (e.g., every 1 week, every 2 weeks)
* **Days** — which days of the week (Mon–Sun)
* **Until** — end date for the series

### Managing a series

When you edit a booking that belongs to a series, you're prompted to choose which bookings to update:

* **This booking only** — changes apply to the single occurrence
* **This and following bookings** — changes apply from this occurrence onwards
* **All bookings in the series** — changes apply to every occurrence

***

## Quick filter segments

The booking list provides these quick filters:

| Segment              | Shows                                          |
| -------------------- | ---------------------------------------------- |
| **Made by members**  | Bookings made by customers with an active plan |
| **Made by contacts** | Bookings made by customers without a plan      |
| **Upcoming**         | Future bookings                                |
| **This week**        | Bookings starting this week                    |
| **Last week**        | Bookings from last week                        |
| **This month**       | Bookings starting this month                   |
| **Last month**       | Bookings from last month                       |
| **Tentative**        | Unconfirmed bookings                           |
| **Confirmed**        | Confirmed but not yet charged                  |
| **Charged**          | Charges posted but not yet invoiced            |
| **Unpaid**           | Invoiced but not yet paid                      |
| **Paid**             | Fully paid                                     |
| **Anonymous**        | Bookings with no customer assigned             |

***

## Dynamic pricing

If dynamic pricing is enabled for your location, booking prices can adjust automatically based on demand and timing:

### Demand-based pricing

Prices increase or decrease based on predicted demand for the time slot:

* **High demand** — price increases by a configured percentage
* **Average demand** — price may adjust slightly or stay the same
* **Low demand** — price decreases by a configured percentage

Demand is predicted using historical booking patterns for each resource.

### Last-minute pricing

Prices can adjust for bookings made close to the start time:

* **Fixed** — a set percentage discount/surcharge for all last-minute bookings
* **Gradual** — the adjustment scales linearly as the booking approaches (bigger discount the closer to the start time)

Dynamic adjustments are shown as "Dynamic Adj." in the price panel.

***

## Commands

On existing bookings, the following commands are available:

| Command                    | Action                                            |
| -------------------------- | ------------------------------------------------- |
| **Remove booking charges** | Reverts posted charges (only if not yet invoiced) |
| **Invoice booking**        | Creates an invoice for the booking charges        |

***

## Best practices

* **Use tentative bookings** for holds that aren't confirmed — they won't be charged and can be easily removed.
* **Let the system choose rates** unless you have a specific reason to override — it always picks the cheapest valid option for the customer.
* **Configure up-front payment for contacts** to avoid no-shows from non-members who haven't committed financially.
* **Use time credits on plans** to give members included booking hours — it's the most transparent way to show value in a membership.
* **Add products to resources** for commonly requested extras (projectors, coffee, etc.) — this keeps everything on one invoice.
* **Use the "Invoice this customer directly" checkbox** when a team member is booking for personal use and shouldn't charge the team.
* **Review the "Charged" segment** regularly to ensure bookings are being invoiced on schedule.

***

## Related pages

<CardGroup cols={2}>
  <Card title="Resources" icon="grid-2" href="/platform/billing/resources">
    Configure the bookable resources available at your location.
  </Card>

  <Card title="Time Credits" icon="clock" href="/platform/billing/time-credits">
    Manage time-based booking credits included in plans.
  </Card>

  <Card title="Visitors" icon="user-group" href="/platform/operations/visitors">
    Track attendees added to bookings as visitors.
  </Card>

  <Card title="Invoices" icon="file-invoice" href="/platform/finance/invoices">
    View and manage invoices generated from bookings.
  </Card>
</CardGroup>
