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

# Bookings

> Reserving an asset, a tool, a place or a person for a window, and saying who pays for it.

A booking holds something for a window of time — a generator for a hire, a meeting room for an
afternoon, a technician on secondment — and says who, if anyone, is charged for it.

## What a booking can hold

| Kind | How it's held | Notes |
| - | - | - |
| **Asset** | Exclusively — only what's free over the window is offered | Also reachable from the asset's own **Bookings** tab |
| **Tool** | Exclusively | Raised through the same tool-booking path as elsewhere in the product, so a job's tool requirement and a lapsed instrument are checked the same way |
| **Place** | Exclusively | A bookable room, bay or yard |
| **Person** | Not exclusively — somebody can be committed twice | Reported on the capacity plan rather than refused |
| **Parts** | Claimed against a balance, not a timeline | How much is left is checked at the moment of the claim |

Which of these five your organisation books at all, and what each **kind of booking** may hold, are
both configured — see [Configuring bookings](/config/bookings).

## Raising a booking

**New booking** asks for a kind, what it's for, a window, an optional site, and who pays. What it
holds is added on the same form — an asset, a tool, a place, a person or parts, as many as the kind
of booking allows — and it's raised as one call: a clash on the fourth line leaves no booking behind
at all. A booking can also be raised with nothing on it yet and given lines afterwards, from the
**Add** button on the register or on the booking's own page.

### Who pays

| Charged to | Meaning |
| - | - |
| **Nobody** | Internal use, not recharged — the booking accrues nothing |
| **A cost centre** | |
| **A department** | |
| **A business unit** | |
| **A project** | |
| **A customer** | |

Which of these a kind of booking may be charged to is configured per booking type, and a booking
charged to nobody never appears on the unpriced-charges list because nothing is ever priced against
it.

For a chargeable booking, **billing cycle** sets how often it's billed — every day, every week, every
month, or once on return. Leave it blank and each thing on the booking bills on its own rate card's
own rhythm; set it to put the whole booking on one rhythm regardless, which is what a hire agreed on
one set of terms usually needs.

## Status

| Status | Meaning |
| - | - |
| **Awaiting approval** | Raised where an approval [workflow](/config/workflows) is published for bookings |
| **Booked** | Raised where no approval workflow applies — or an awaiting-approval booking that cleared it |
| **Confirmed** | Confirmed and ready to go out |
| **Out** | Issued — the asset or part is in somebody's hands |
| **Back** | Returned, not yet settled |
| **Settled** | Closed |
| **Released** | Cancelled, with a reason |
| **Never collected** | No-show |

Whether a booking needs approving at all is a published workflow rather than a flag on the booking
type, so it can name who approves. **Confirm** is offered on an awaiting-approval or booked reservation
and runs that workflow if one is published.

<Note>
  A booking can't be confirmed with nothing on it. Add what it holds first.
</Note>

## Handing it over and taking it back

**Issue** hands an asset or a claimed quantity of parts to somebody named — custody has to name a
person, so this is required even for an administrator collecting on a technician's behalf. A hire
billed on the meter can't go out unread. **Receive** takes it back, asks for the closing reading where
one applies, and can flag damage — which raises a corrective work order against the asset.

**Extend** keeps something longer. It only ever moves the end date later: a hire that finished early
is taken back and settled rather than having its end pulled in. The extra days accrue on the same
rate card as the rest of the booking, so nothing here quotes a cost — the ledger below is where that
lands.

## Deposits and charges

A booking can hold a deposit against it. It isn't a charge and doesn't appear on the ledger unless
it's kept — released, it simply goes back with nothing recorded, because it was never a cost.

Every other charge against a booking appears on its ledger: what it is, the rate it was charged at,
the amount, and when. Where no rate card matched, the charge is still banked — with no amount rather
than nought, so it can't be mistaken for something priced at zero — and shows up as **charges nobody
could price** until [a rate card](/config/bookings) is fixed.

## What's free — the availability calendar

Switch the register from **List** to **Availability** to ask the question the list can't: what's
free, and when. Rows are classes of thing — an asset category, a tool type, a place, a role — rather
than individual machines, so a two-hundred-asset fleet still opens on a readable number. A cell is a
whole day; where a place is only booked for part of one, the day still shows as partly free and the
drill-down underneath gives the hours. Narrow the grid to one class, drag across the days you need,
and book straight from the selection — the reservation and what it holds are raised together, so a
refusal leaves nothing behind. The calendar exports to the same file formats as the list.

## On an asset

An asset's **Bookings** tab lists every booking line ever held against it — not just the upcoming
ones, because a finished hire is what a utilisation figure is made from — and offers **Book it**
directly, without a trip to this register first.

<Card title="Configuring bookings" icon="settings" href="/config/bookings">
  What your organisation books at all, what each booking type may hold and be charged to, and rate
  cards.
</Card>
