Realm9 Logo
Search documentation...

Bookings

Realm9's booking system lets teams reserve IT environments with configurable approval workflows, automatic conflict queuing, Terraform provisioning triggers, and encrypted access credentials.


Booking Keys

Every booking has a short, readable key of the form BKG-903. It appears next to the title in the bookings list and on the booking's own page, where clicking it copies it to your clipboard.

Keys are numbered per organisation and never reused. Environment requests and decommission requests have their own independent numbering (ENV-142, DEC-018), so the prefix tells you which list to look in.

You can find a booking by its key from the search box on the Bookings page, or from the global search bar in the header, where typing BKG-903 jumps straight to it. Approval and status emails carry the key in the subject line as [BKG-903] Approval Required: ....

Numbers are assigned in the order bookings are created. A number is occasionally skipped; that does not mean a booking is missing.


Creating a Booking

  1. Navigate to Bookings in the sidebar and click New Booking, or open an environment and click Book
  2. Fill in the booking details
  3. Submit — if the environment requires approval, approvers are notified automatically

Booking Form Fields

Required:

  • Environment — select the environment to book (only bookable, available environments are shown)
  • Title — a short name for this booking
  • Start Time — must be in the future
  • End Time — must be after start time and within the environment's maximum booking duration

Optional:

  • Description — additional context for approvers or team members
  • Purpose — select the intended use: Development, Testing, User Acceptance Testing, Performance Testing, Training, Demo, Maintenance, Emergency, or Other
  • Priority — Low, Medium, High, Critical, or Emergency. Setting it to Emergency is what makes a booking an emergency: it allows booking during maintenance windows and places the booking at the front of any queue. There is no separate emergency checkbox — one control, one answer
  • Emergency Justification — appears only when Priority is Emergency, and is required before you can submit; explains the urgency
  • Supporting Documents — attach relevant files (PDF, Word, PowerPoint, JPG, PNG, MSG, EML; drag-and-drop supported)

Your organisation may ask for more. The fields above are the built-in ones, and every Realm9 booking has them. An Admin can add organisation-specific fields — a change ticket number, a cost centre, a sign-off — in Settings → Fields → Booking, and they appear on this form alongside the built-in ones. They can also reorder the sections, group them under tabs, and show a field only when another answer calls for it. See Field Mapping.

Booking Details — the built-in section holding environment, title, purpose, description, start, end and priority — can be reordered and tabbed but not switched off, because a booking cannot be made without those answers. Supporting Documents, and the Provisioning, Access Info and Cost panels, can each be turned off.

Conflict Handling

Before submitting, the form checks for scheduling conflicts:

  • If the environment is free: booking is created normally
  • If there is a conflict with an existing APPROVED or ACTIVE booking: your booking is placed in a queue with a position number and an estimated start time
  • Emergency bookings jump to the front of the queue, pushing other queued bookings back
  • Bookings in the queue are automatically promoted when a conflicting booking ends or is cancelled

Maintenance windows are checked separately from booking-vs-booking conflicts: if your selected time overlaps one of the environment's scheduled maintenance windows, submission is blocked with a warning — unless the booking is marked Emergency, which bypasses the maintenance-window block (it does not bypass approval).


Saving a Draft

You don't have to finish a booking in one sitting. Once you've picked an Environment and entered a Title, the form saves itself as a Draft, automatically as you work. A status next to the buttons tells you when the last save happened. The start and end times are filled in for you, so they're never what's holding a save back.

A draft is yours alone:

  • Nobody else can see it — not admins, not approvers, not through search, and it never appears on the calendar or timeline
  • No approval workflow starts, so no approver is emailed and nothing appears in anyone's queue
  • No slot is held and no queue position is taken — the environment stays free for everyone else
  • No booking key is assigned — a discarded draft never leaves a gap in the BKG- sequence

Because a draft is private and unfinished, it's checked far more loosely than a submission. Anything you've typed still has to be valid — the title has to fit, the purpose and priority have to be real options — but the things that depend on when you submit are not checked at all:

Checked while you draftChecked only when you submit
Title lengthWhether the environment is still bookable
Purpose and priorityWhether the start time has fallen into the past
That the dates are readableWhether the window is longer than the environment allows
Whether it overlaps maintenance, or clashes with another booking

That split is deliberate. Whether an environment is bookable today, and whether a slot is still free, are facts about the world rather than about what you typed — refusing to save over one would cost you the rest of the form for something you can't fix from the form. It also means a draft left overnight keeps saving normally even though its start time has since passed.

Drafts appear in My Requests with a Draft badge, and under the Draft status filter there. From the list or the form you can:

  • Continue editing — pick up where you left off
  • Discard draft — delete it permanently, along with anything you uploaded
  • Submit Booking — this is where the full checks happen, where a booking key is assigned, and where approval finally starts

A draft's menu offers Continue editing rather than a read-only view — it exists to be finished, and the form already shows everything the detail page would, including which approval chain it would enter.

Submitting is also where the slot is claimed. If someone booked over your window while the draft was sitting there, your booking is placed in the queue instead and you're told its position — the same thing that happens when you create a booking into a busy slot.


Booking Statuses

StatusMeaning
DraftSaved but never submitted. Visible only to you; no workflow, no notifications, no slot held
PendingSubmitted and awaiting approval
Awaiting InfoAn approver attached an additional form; see Additional Forms
QueuedApproved or pending, but waiting for a free slot (conflict exists)
ApprovedApproved and scheduled; will activate automatically at start time
ActiveCurrently in progress
CompletedEnded normally or completed early
CancelledCancelled by the requester or an admin
RejectedDeclined during the approval process
ExpiredPending or Awaiting Info: the booking's end time passed while it was still unapproved. Queued: its start time passed while it was still waiting for a free slot

Automatic Transitions

  • Pending → Active: when the booking time arrives and no approval is needed, or immediately after approval if start time has passed
  • Approved → Active: automatically when start time is reached
  • Active → Completed: automatically at end time, or manually via early completion
  • Queued → Approved/Pending: automatically when the conflicting booking ends
  • Pending / Awaiting Info → Expired: when the end time passes with the booking still unapproved
  • Queued → Expired: when the start time passes and a slot never came free — a queued booking is waiting for the environment, not for a decision, so there is nothing for the extra time to buy

Approval After the Start Time Has Passed

A booking that is not approved before its start time is not cancelled. It stays Pending, keeps its place and its workflow, and can still be approved — right up until its end time.

Approving late shortens the booking rather than moving it. The start is re-based onto the moment of approval and the end time is left exactly as requested:

A 09:00–17:00 booking approved at 14:00 runs 14:00–17:00.

The alternative — honouring the original 09:00 — would begin the booking in the past: it would report the environment as occupied for a morning nobody used, and bill from a time the requester had no access. Shortening also keeps the booking from running into whatever was booked after it.

Once the end time passes there is nothing left to approve. Approving is refused straight away, with a message asking the requester to raise a new booking, and the next status sweep marks the booking Expired.

Rejecting stays available in that gap — between the window lapsing and the sweep running — so an approver is never left unable to record a decision. Once the booking is actually Expired, neither Approve nor Reject applies: it is a closed booking, and the requester rebooks.


Bookings List

Navigate to Bookings in the sidebar to see your bookings (or all bookings if you are an admin or provisioner).

Scope Tabs

  • All — every booking you have access to
  • Approvals & IR's — bookings you are an approver on, whether still pending or already decided, plus any with an additional form assigned to you; the badge counts only those still Pending or Awaiting Info
  • My Requests — only your own bookings
  • Status — filter by: All, Pending, Awaiting Info, Approved, Active, Completed, Cancelled, Expired, Queued, Rejected. Draft is offered on the My Requests tab only, since that is the one place drafts appear
  • Current SLA — On track, At risk, Paused, Met, or Breached for the step the booking is on now (list view). Paused finds bookings that are on hold; the card still shows the clock word, with On hold in amber after the pill, and any earlier miss on that same line. A completed booking keeps Met or Breached and does not show On hold. At risk is not only a filter: it is the same state shown as a chip on the booking itself, and it starts as soon as the workflow's Warn before time is reached
  • SLA History — whether any step on the booking has ever breached, has never breached, or was not tracked (list view). Not tracked covers bookings raised before SLA existed and ones whose workflow has no matching policy
  • Environment — filter to a specific environment
  • Search — searches across booking title, description, environment name, and user name or email. Drafts are never returned, not even your own; find them under the Draft filter above
  • Advanced filter — build precise conditions on a booking's own fields. Pick a field (Title, Description, Request Number, Start/End Time, Status, Purpose, Priority, Emergency, Queue Position, Extensions, Estimated/Actual Cost, or Requester/Approver/Team/Environment name), choose an operator (is / contains / any of / between / before / after, etc.), and enter a value. Add several conditions and choose whether they must match all (AND) or match any (OR). Active conditions show as chips you can click to edit or remove, and are saved in the URL so a filtered view is shareable and refresh-safe

View Modes

Three views, switched from the toggle at the top right. Your choice is remembered across sessions.

  • List — card view showing full booking details, status, priority, who it is pending with, and quick actions
  • Calendar — a month, week or day grid, organised by date
  • Timeline — a scheduling chart with one row per environment and time running left to right

Calendar and Timeline answer different questions. Use Calendar for "what is happening on this date", and Timeline for "what is happening on this environment, and when is it free". Search, status and environment filters apply to all three.

Results are paginated for large lists.

The Timeline

The Timeline answers "what is booked on which environment, and when". Every environment gets its own row, and each booking is drawn as a continuous bar spanning its start and end — so a two-week booking reads as one bar rather than as separate entries on each day it covers.

Zoom levels — pick the one that matches how long your bookings are:

ZoomColumnsBest for
QuarterWeeks, grouped under monthsLong allocations — release cycles, project phases, hypercare windows
MonthDaysMonthly planning across a whole calendar month
WeekDays of one weekThe working week at a glance
DayHoursShort bookings, and seeing who has an environment at a specific time

Short bookings

The wider the range you're viewing, the narrower each booking becomes — a four-hour booking fills a good part of the Day view but is barely a mark at Quarter. Two things keep that readable.

When a bar is too narrow to fit its title, the title is simply not shown rather than being cut to a fragment. The bar keeps its true position and width, so nothing is ever misrepresented as longer or shorter than it is. Hover any bar for its full details.

When several bookings on one environment fall so close together that their bars would overlap, they merge into a single chip showing the count — "4 bookings". The chip carries a coloured strip down its left edge split by status, so you can see the mix at a glance; if anything in the group is awaiting attention, that status leads the strip. Hover for the breakdown and the first few titles, or click to open the full list. Zoom in and the group separates back into individual bars.

Reading a row

  • Bars are coloured by booking status, matching the badges used elsewhere
  • Bookings that overlap on the same environment stack onto separate lines within that environment's row, so nothing is ever hidden behind anything else
  • A vertical line marks the current time
  • Bookings continuing beyond the visible range are squared off at that edge
  • Environments with bookings sort to the top; when Hide empty is unticked, unbooked ones follow alphabetically below them

Controls

  • Zoom — Quarter, Month, Week, Day
  • Arrows and Today — move through time; the step matches the zoom
  • Hide empty — on by default, so you only see environments that have bookings in the current range; untick it to show every environment and spot free capacity
  • Environments — narrow to a chosen set of environment rows
  • Click a bar — open that booking's details, alongside others on the same environment that day
  • Click a merged chip — list the bookings it groups together
  • Click empty space in a row — start a new booking for that environment

The Timeline shows every booking in the organisation, so you can see what is occupied regardless of who booked it. Opening or editing an individual booking still respects your permissions. If a date range holds more bookings than can be loaded at once, a notice appears — narrow the filters or choose a shorter range rather than assuming the range is empty.

What Each Booking Card Shows

  • Status badge and priority badge (if not Low)
  • Emergency badge (if applicable)
  • Queue position (if Queued)
  • Approval workflow level (if Pending and using a multi-level workflow)
  • Provisioning status (visible to Provisioners and Admins)
  • Environment name and type
  • Requester, start and end times, duration
  • Estimated cost (if environment has an hourly rate)
  • Created date

Booking Detail

Open any booking to see its full detail page. The page has four tabs: Forms, Workflow, Comments, and Activity — the same shape as the environment request and decommission detail pages.

The booking's own identity — environment, schedule, duration, requester, priority, cost — sits above the tab bar and stays on screen whichever tab you are on, so you never have to pick a tab to find out what you are looking at.

Forms Tab

Everything the booking holds, laid out in the sections your Admin arranged. A list down the left switches between them.

Booking Details — what was asked and answered: purpose, priority, description. Description and Supporting Documents are always shown, reading Not provided / No documents attached when empty: the booking form asks for both on every booking, so an approver seeing nothing should know it was left blank rather than never requested.

Any organisation-specific groups your Admin configured appear here too. A group that was on the form but left blank still appears — so you can tell a section the requester skipped from one the form never asked for.

Booking Provisioning — for Admins and Provisioners, the Terraform workspaces attached to this booking and their state. See Booking Provisioning.

Booking Access Info — credentials for reaching the environment (see below).

Cost Information — the estimated and actual cost, worked out from the environment's hourly rate. Hidden entirely on a booking with nothing priced.

The last three hold no fields of their own — they are panels — but they are still sections your Admin can reorder, put on a tab, or switch off in Field Mapping.

Additional forms appear as sections here too, beside the booking's own form — one per request an approver made. This is where the person they were assigned to fills them in. See Additional Forms for how this works.

Workflow Tab

Where the approval has got to.

Workflow card — visible when the booking has an approval workflow assigned. Shows the current approval level, approvers, approval history across all levels, and Approve / Reject action buttons for authorised users. See Approvals for how workflows are configured.

If the booking never entered an approval chain, this tab says so and why — either the environment does not require approval (so the booking was confirmed the moment it was made), or approval was required but no workflow matched and an administrator decides it directly.

Access Info

Visible once a Provisioner or Admin sets access credentials. All authorised users (including Admins and Provisioners) must click Reveal to decrypt and display the credentials. A confirmation dialog appears before revealing. The content auto-hides after 5 minutes, and shows how many times it's been viewed.

  • Access is available to the booking owner from 15 minutes before the start time until the booking ends
  • Admins and Provisioners can reveal access info at any time
  • Credentials can only be set on bookings in Approved, Active, or Queued status — not Pending
  • Only Admins can delete existing access credentials (Provisioners cannot)
  • Whoever sets or edits access info chooses whether to email the booking owner about it — it's not sent automatically every time

Provisioning card — visible when the environment has Terraform booking projects configured. See Booking Provisioning for the full attachment/approval-gating model.

Cost card — shows estimated cost (calculated at creation) and, once completed, actual cost based on real duration.

Comments Tab

A discussion thread on the booking.

Anyone who can open the booking sees the full thread and can post in it. Posting a comment emails the booking owner, every approver the booking has already reached, and anyone who has commented on the booking before, minus whoever wrote it. Approvers on upcoming levels are not emailed until the booking reaches them. A level assigned by role emails whoever its Who to notify setting names — everyone with the role by default, or a chosen few. The thread stays open after the booking is decided.

Commenting is what subscribes you to a thread: post once and you are emailed about everything that follows it.

Activity Tab

A chronological record of everything that has happened to the booking, newest first and grouped by day. This tab was previously called History and covered status changes only; it now covers the whole picture:

  • Status changes — submitted, approved, rejected, queued and promoted off the queue, extended, completed early, cancelled, expired — each showing the status it moved from and to
  • Approvals — every approver's decision, the level they decided at, and any notes they left
  • Comments — each post in the Comments tab also appears here, so one view carries the whole story
  • Emails — every notification the booking sent, who received it, and whether any delivery failed. This is what answers "was I actually told about this?"
  • Edits — which fields changed, expandable to show the old and new values
  • Access — who revealed the credentials. Visible to administrators only
  • Automatic actions — bookings that started, completed or expired on schedule are labelled Automatic rather than attributed to a person

Use the chips along the top to filter to one kind of entry. Entries produced by a bulk operation collapse into a single line showing how many records it touched.

Activity from before this feature shipped was carried over from the booking's earlier history, so older bookings show fewer kinds of entry than ones created since.


Editing a Booking

Bookings with status Pending, Awaiting Info, Approved, or Queued can be edited by the booking owner or an Admin. A Draft is editable too, but only by the person who started it — an Admin cannot open someone else's draft, which is the one place this rule differs. Editing an Awaiting Info booking doesn't change its status or reset any approvals already given — the booking stays paused until every outstanding additional form is submitted. Editable fields include:

  • Title and description
  • Start and end times (subject to conflict checking)
  • Purpose and priority
  • Emergency justification (shown when Priority is Emergency)
  • Supporting documents (add new or remove existing)

The environment cannot be changed after creation — it's what the approval workflow, the queue position and the duration limit all hang off. On a draft it can still be changed, because none of that has happened yet.


Extending a Booking

Active bookings can be extended:

  1. Open the booking and click Extend
  2. Confirm — the booking is extended by 2 hours

Extension is subject to the environment's maximum booking duration limit and conflict checking — there's no cap on how many times a booking can be extended. Workflow approvers are notified by email when a booking is extended.


Completing a Booking Early

If you finish with an environment before your booking ends:

  1. Open the booking and click Complete
  2. Provide a reason if prompted (required when an admin completes another user's booking)
  3. Confirm

The booking is marked Completed, the environment is released, and any queued bookings are automatically promoted. Cost savings based on the difference between estimated and actual duration are calculated and recorded in the audit log.


Cancelling a Booking

Bookings with status Pending, Awaiting Info, Approved, or Queued can be cancelled:

  • Booking owners can cancel their own bookings
  • Admins can cancel any booking

Cancelling stops any in-progress approval. A running SLA stops as cancelled — it is not counted as a miss. Cancelling an Awaiting Info booking also withdraws it without completing the outstanding additional forms.

On cancellation, the next queued booking is automatically promoted and the requester is notified.


Cloning a Booking

Clone creates a new booking pre-filled from an existing one, so you don't retype details you've already entered. It's available from the actions menu on any booking, whatever its status — including completed and cancelled ones.

Carried over: environment, title, description, purpose, priority, and the emergency flag and justification.

Not carried over: the dates. An old booking's window has usually passed, and even a recent one's slot may have been taken since, so you pick a new time deliberately. Everything else behaves like a normal new booking — conflict checking, duration limits and approval routing all apply.

The original booking is never modified. Cloning is not a way to reopen or resubmit it; it produces a separate booking that goes through approval on its own.


Exporting a Booking as PDF

Export PDF is in the actions menu, on both the booking cards in the list and the booking detail page. It downloads the booking as a document you can file, attach to a ticket, or hand to an auditor.

The PDF reads as a filled-in form rather than a screenshot of the page. It contains:

  • Approval progress — the approval chain as a stepper across the top, showing which levels have been approved or rejected, who decided them, and — for levels the booking hasn't reached yet — who will be able to approve them
  • Booking details — environment, start and end, duration, team, requester and approver, the SLA deadline as a date when a clock is running (not a countdown), plus the description and any emergency justification
  • Cost information — hourly rate, duration, total, and estimated and actual cost where they've been recorded
  • Booking information — priority, purpose, auto-extend, the environment's maximum duration and whether it requires approval, and the created/updated timestamps
  • Supporting documents — listed as clickable links
  • Additional forms — the forms attached during approval and what was entered in them

Only the final round of each form is included. If an approver asked for the same form more than once, earlier rounds are left out.

Costs are shown in the environment's own currency. A rate of zero is printed as 0.00 rather than omitted, so a genuinely free environment can be told apart from one whose cost was never recorded.

Anyone who can open the booking can export it, so Viewers can too. What lands in the PDF is scoped to your own permissions: if a form is marked Sensitive and you're neither the requester nor an approver on the booking's workflow, its values are replaced with a "hidden" placeholder rather than printed. Every export is recorded in the audit log.

Attachment links need you to be signed in. File links in the PDF point back at Realm9 rather than at the file store directly, so they keep working indefinitely and each click is checked against the permissions of whoever clicks it. If you forward the PDF outside Realm9, the recipient will see the booking's contents but the attachment links will ask them to sign in.


Approval Workflow

When an environment requires approval (configured in Booking Control on the environment, or via an approval workflow), submitted bookings start in Pending status.

As a requester:

  • You receive an email when your booking is approved or rejected
  • Rejected bookings include the reason provided by the approver
  • An approver may attach an additional form instead of deciding right away — see Additional Forms
  • You can cancel a Pending or Awaiting Info booking at any time — including while an additional form is outstanding, if you'd rather withdraw than complete it

As an approver:

  • Pending bookings appear in the Bookings list and on the Approvals page
  • You can approve or reject from the booking detail, the list view, or the Approvals page
  • Rejecting requires a reason (sent to the requester by email)
  • If a multi-level approval workflow is active, each level must be completed in order
  • If the environment has no approval workflow configured, an Admin or Super Admin can still approve or reject it directly (Direct Admin Approval) — Provisioners cannot approve on this no-workflow path

See Approvals for full workflow configuration documentation.


Shared Environments

Environments configured as shared allow multiple concurrent bookings up to the max concurrent teams limit. When booking a shared environment:

  • The conflict check accounts for concurrency — a conflict only occurs when all slots are occupied
  • The booking form shows available concurrent slots
  • Queue behaviour applies the same way when all slots are full

Terraform Provisioning

If an environment has booking-level Terraform projects configured, a Provisioning tab appears on the booking, and a workspace must be attached before the booking can be approved. See Booking Provisioning for the full model — multiple projects per environment, execution order, auto/manual apply, deploying from a template, and workspace snapshots.


Notifications

Realm9 sends the following notifications for bookings:

EventWho is Notified
Booking approvedRequester
Booking rejectedRequester (with reason)
Additional form attachedThe assignee — the requester, unless the approver assigned the form to someone else
Access credentials setRequester, only if the person setting them chooses to notify
Booking extendedWorkflow approvers
Booking completed earlyRequester and workflow approvers
Queue position promotedRequester
Start time passed, still unapprovedRequester — a heads-up that the booking is now shorter than planned but still live
Expiring soonRequester — sent when under 24 hours of the window remain and it is still unapproved. Links straight to the edit form, so the booking can be moved to a later window before it lapses

Each of the last two is sent once per booking, not on every sweep — the scheduler stamps the booking when it sends, so a booking that sits unapproved for days is not mailed about repeatedly.

Booking submission itself isn't notified separately from the above — if a workflow applies, its own step-by-step approver notifications cover it.


Role-Based Access

ActionViewerUserProvisionerAdmin / Super Admin
View own bookings
View all bookings
Comment on any booking
Create bookings
Clone any booking
Edit own booking
Edit any booking
Approve / Reject (workflow step)
Approve / Reject (no workflow, Direct Admin Approval)
Set access credentials
Attach Terraform workspaces
Extend own booking
Extend any booking
Complete own booking early
Complete any booking early
Cancel own booking
Cancel any booking

Viewing all bookings is read-only apart from the comment thread — it doesn't grant edit, approve, extend, complete, or cancel rights over anyone else's booking; those stay gated per the rows above. Acting on a booking that isn't yours requires Admin or Super Admin: a Provisioner's authority over other people's bookings is approving and rejecting them, not editing, extending, ending, or cancelling them.


Next Steps