Reservations and Calendar
1. Overview
Reservations allow users to schedule, check out, and check in assets over defined time periods within a collection. The feature is controlled by organization-level entitlements, feature flags, and collection-level configuration, and is fully permission-aware.
Core lifecycle statuses:
ReservedChecked OutChecked InOverduebased on dates and statuses
2. Key Concepts & Relationships
2.1 Entities
Collection
Reservations are enabled per collection via Account Management.
Each collection can have its own:
ReserveformCheck OutformCheck Inform
Reservation
Tied to a collection and one or more assets in that collection.
Has:
Time window (start/end dates)
One or more reserved assets
Person/party reserved for
Status (
Reserved,Checked Out,Checked In,Overdue)Audit log entries for all actions (create, edit, cancel, check out, check in, delete).
User Roles & Permissions
Admins, Collaborators, Custom Roles can be granted granular permissions per collection:
View reservations
Create reservations
Edit reservations
Cancel reservations
Delete reservations
Perform Check Out and Check In
Permissions are enforced for every action and entry point (Calendar, side navigation, record, list view).
3. Pre-requisites
3.1 Permissions
Permissions are configured per collection and control:
View reservations
Create reservations
Edit reservations
Cancel reservations
Delete reservations
Check Out / Check In
All actions must check:
User role (Admin, Collaborator, Custom Role).
Collection-specific permission set.
If a user lacks permission:
Action is blocked.
A clear, user-friendly error message is displayed indicating the reason (e.g., insufficient permissions).
3.2 Collection Setup
For each collection where Reservations are used:
Reservations must be toggled ON in
Settings > Account Management.Admin configures the following forms:
ReserveformCheck OutformCheck Inform
Each form may include:
Required system fields (e.g., Reservation, Reserve for, Start date, End date, Check Out date, Check In date).
Additional custom fields as defined by the Admin.
4. Step-by-Step Workflow
4.1 Enabling Reservations for a Collection
Admin navigation
Admin goes to
Settings > Account Management.
Toggle Reservations
Admin enables Reservations for one or more collections via a toggle.
Configure Forms
For each enabled collection, Admin selects Manage to configure:
ReserveformCheck OutformCheck Inform
Dependencies:
Organization entitlement and feature flag must allow Reservations.
User must be an Admin (or role with equivalent account-management permissions).
4.2 Reservation Lifecycle
4.2.1 Creating a Reservation
Entry points:
From Calendar (Month/Week/Day/List views)
From Side Navigation
From Record view
Flow:
Initiate Reserve
User clicks
Reservefrom any supported entry point.
Reserve Form
System opens the configured
Reserveform.Required fields (non-exhaustive):
Reservationfield (e.g., reservation name/identifier)Reserve for(e.g., user, department, external party)Start dateEnd date
Additional custom fields as configured for the collection.
Availability Check
On submission:
System checks asset availability for the requested time frame.
Assets that are unavailable for any part of the requested period are:
Disabled in the selection UI
Accompanied by explanatory tooltips (e.g., conflicting reservations or check-outs).
Asset Selection
User selects one or more available assets.
Review & Submit
User reviews all details and submits the reservation.
System creates a new reservation record and sets status to
Reserved.Reservation appears in:
Calendar views (color-coded as
Reserved)List view
Activity stream (log entry: reservation created).
Constraints:
User must have create permission on the collection.
Reservation time window and asset selection must pass availability validation.
4.2.2 Check Out
Status condition:
Check Out is performed against a
Reservedreservation.
Entry points:
From reservation details
From side navigation
Flow:
Initiate Check Out
User selects
Check Outfor a reservation.
Check Out Form
System opens the configured
Check Outform.Required fields:
Check Out date
Additional custom fields as configured.
Asset Selection
User selects which reserved assets to check out:
Partial Check Out is allowed.
Example: Reservation has 5 assets; user checks out only 3.
System may allow:
Swapping unavailable assets for alternative ones:
If an asset is not available or cannot be checked out, user can select a different asset.
Submit
On submission:
System updates the reservation:
Checked-out assets reflect
Checked Outstatus.Overall reservation status changes to
Checked Out.
Relevant logs are recorded in the activity stream.
Constraints:
User must have Check Out permission.
Check Out cannot proceed if:
Required fields are missing.
Permission is insufficient (user-friendly error message shown).
4.2.3 Check In
Status condition:
Check In is performed against a
Checked Outreservation.
Entry points:
From reservation details
From side navigation
Flow:
Initiate Check In
User selects
Check Infor a reservation.
Check In Form
System opens the configured
Check Inform.Required fields:
Check In date
Additional custom fields as configured.
Asset Selection
User specifies which checked-out assets are being returned:
Partial Check In is allowed.
Some assets can remain checked out while others are returned.
Submit
On submission:
System updates the reservation:
Returned assets become
Checked In.Remaining assets stay
Checked Out.Overall reservation status:
Typically
Checked Inwhen all assets are returned.May remain
Checked Out(or similar) when assets are partially returned.
Activity stream logs the check-in action and asset-level changes.
Constraints:
User must have Check In permission.
Validation errors and permission issues produce clear error messages.
4.2.4 Deleting a Reservation
Permissions:
Only Admins or users with explicit delete permission on the collection may delete reservations.
Behavior:
User selects
Deletefrom reservation actions (e.g., in side panel, details view).System:
Permanently deletes the reservation record.
Removes it from:
Calendar (no longer displayed).
List view.
Activity stream (reservation-level log removed—implementation may keep internal audit as needed).
Frees up all associated reserved time slots for affected assets.
Constraints:
Cannot delete if user lacks delete permission (error message shown).
Impacts reporting and search results because the reservation record no longer exists.
5. Calendar & Views
5.1 Calendar Views
Supported views:
MonthWeekDayList
Reservations appear as events over their reserved time window.
5.2 Status Color-Coding
Reservations are visually differentiated by status:
ReservedChecked OutChecked InOverdue(based on end date and business logic)
Color-coding helps users quickly identify reservation state.
5.3 Side Panel
When a reservation is selected in the Calendar/List view, a side panel shows:
Reservation summary details (key fields, dates, assets, status).
Available actions (subject to permissions and status), e.g.:
EditDeleteCheck Out/Check Inwhere applicable
6. Search, Filter, and Reporting
6.1 Search & Filter
Users can search and filter reservations based on:
All core fields (e.g., dates, status, Reserve for).
All custom fields configured on the forms.
Filters can be combined to find specific reservations or sets of reservations.
6.2 Reservation Logs & Reporting
Reservation logs:
Store details of each lifecycle event:
Create
Edit
Cancel
Check Out
Check In
Delete
Are accessible for:
Reporting
Auditing
Even if the entitlement is turned off:
Historical logs remain viewable (no new Reservations can be created/executed, but history is preserved).
6.3 Automation
Automation triggers exist for reservation lifecycle events, enabling workflows such as:
Notifications on create/edit/cancel/check out/check in.
Reminders for upcoming reservations or overdue returns.
Integration with other systems based on status changes.
7. Rules, Constraints, and Edge Cases
7.1 Partial Check In / Check Out
Supported:
Users can:
Check out subset of reserved assets.
Check in only some checked-out assets.
System maintains asset-level state:
Some assets may be
Checked Out, othersChecked Inwithin the same reservation.Overall reservation status reflects predominant or final state:
Regardless if all assets are returned, reservation is
Checked In.
7.2 Permissions Enforcement
Every action (view, create, edit, cancel, check out, check in, delete) is:
Checked against:
User role
Collection-specific permissions
Blocked if insufficient, with:
Clear, user-friendly error message describing the reason (e.g., “You do not have permission to delete reservations in this collection.”).
7.3 Error Handling
On any failed action (e.g., availability check failure, missing required fields, permission issue), system must:
Show a concise, descriptive error message specifying:
What went wrong.
If applicable, what the user can do to resolve it (e.g., change dates, contact admin).
7.4 Activity Logging
The following are always logged in the activity stream:
Creation of a reservation
Edits to an existing reservation
Cancellations
Check Out events
Check In events
Deletion events
Logs should capture:
Who performed the action
When it was performed
Key changes (e.g., changed dates, assets).
Last updated

