Reservation Creation and Editing Help

Overview

The Reservation Creation and Editing form lets administrators manually create or modify guest reservations. It appears as a slide-in drawer on the right side of the screen when you click an empty cell in the calendar. Clicking an existing reservation card in the list opens the drawer in Detail or Edit mode.

What you can do with this form:

  • Create a reservation with date, unit, and time pre-filled from the calendar
  • Choose between nightly and hourly stay types
  • Select a room type and plan
  • Enter guest information
  • Send payment and key links after creation

How to Access

Booking Management Dashboard → Calendar tab → click an empty cell (or the [+] button)

Or:

Booking Management Dashboard → Reservations tab → click a reservation card → Edit button


Features

Feature 1: Creating a Reservation from the Calendar (Create Mode)

When you click an empty area of the calendar, the date, unit, and time are pre-filled depending on the current view mode.

Auto-fill by View Mode

View Mode Action Pre-filled fields
Month Click the [+] button on a day cell Check-in date
Week Click an empty cell Check-in date + unit
Timeline Click an empty area Check-in date + unit + time

Form Fields

Field Description Required
Check-in date/time Start of the stay. See "How to enter times" below for the time fields Yes
Check-out date/time End of the stay (computed from "start + stay length" for hourly bookings) Yes
Stay type Toggle between Nightly (per night) and Hourly (per hour) Yes
Room type Select the room type to reserve Yes
Plan Select the plan for the chosen room type Yes
Guest name Name of the guest No
Guest email Email address (used for sending payment and key links) No
Payment method Pay online / on-site / bank transfer (hidden when the billing amount is ¥0). See Feature 6 No
Notes Admin-facing notes (not shown to guests) No

How to Enter Times

The check-in / check-out time fields accept typing and a dropdown, both on the same field.

  • Type digits only — 1630 / 16:30 / 16 — full-width digits also work as typed
  • Open the candidate list with the ▼ button, or navigate it with the arrow keys and Enter
  • Candidates are listed in 15-minute steps, but you can type any minute directly, even one not on the list
  • An unreadable time like 14:70 is not accepted and turns red on the spot. It is never silently rounded to the nearest valid time

Hourly bookings are entered as "start time + stay length." Instead of specifying a check-out time directly, enter the start time and pick one of "1 hour," "2 hours," "3 hours," or "All day (8 hours)" — the end time is calculated automatically. For a length not on the list, press "Custom," which moves the cursor to the computed end-time field so you can edit it directly (editing the end time then updates the stay length to match the new gap). While creating a same-day booking, the "Start now" button fills the start time with the current time.

Selecting a time outside the plan's business hours still saves without a problem (the screen only shows a note about it).


Feature 2: Post-Create Actions

After a reservation is created, a single guest link card appears.

The card has a "Copy link" button and a "Send by email" button (available only when a guest email was entered).

Where the link points depends on the facility's setup.

Facility state Link What the guest does
Has a check-in configuration Check-in link Checks in (and pays if required)
Has no check-in configuration Reservation link Reviews the reservation (and pays if unpaid)

The generated URL format (when a facility slug is configured):

# Facility with a check-in configuration
https://checkin.unlockos.io/{slug}?reservationId=...&reservationType=...

# Facility without one (handled entirely in the booking app)
https://booking.unlockos.io/{slug}?reservationId=...

If no slug is set, the legacy ?facilityId=... format is used instead.


Feature 3: Reservation Detail Mode

Clicking an existing reservation from the list or the calendar opens the drawer in Detail mode.

Field Description
Guest info Name and email address
Dates Check-in and check-out date/time
Amount and payment status Total amount and paid/unpaid state
Access code Guest-facing door code (if issued)
Source badge Booking origin (Direct / iCal / OTA)
Guest link The link to hand the guest (copy / email). Where it points depends on the facility's setup
Unlock activity Actual unlock/lock history shown below the reservation code (see below)

Editing by clicking a field

Detail mode no longer has an "Edit" button in the header. Click any editable field directly — the date/time, room type, plan, room, guest info, payment method, or notes — and it switches to editing on the spot. Hovering shows a blue highlight so you can tell what is clickable (on desktop widths, the header also shows a "Click a field to edit" hint).

Saving returns to Detail mode without closing the drawer, and shows a "Saved" notice for a few seconds. You no longer get the drawer closing and reopening after every single field you fix. If the latest data could not be reloaded after saving, you see a prompt to reload instead of "Saved".

If the reservation's status is "Completed" (checked out) or "Cancelled", clicking a field does not start editing. Rewriting a finalized record would break its history and put it out of sync with an external calendar (e.g. Google Calendar sync).

Recording an on-site or bank-transfer payment ("Received on-site" / "Record payment")

For a reservation whose payment method is on-site or bank transfer (neither goes through online payment) and whose payment status is unpaid, a button appears below the amount / payment status field ("Received on-site" for on-site payments, "Record payment" for bank transfers).

Condition Behaviour
On-site or bank transfer + unpaid + amount greater than ¥0 + not cancelled The button appears
Reservation paid online (by card) The button does not appear — an online booking is settled by Stripe automatically, and recording it here as cash would double-count the stay
Already paid, or cancelled The button does not appear
  1. Click the button to open the receipt dialog
  2. Enter the amount received (defaults to the amount due), the payment method (cash / bank transfer / other), the date and time received, and an optional note
  3. Click "Record receipt" — the receipt is recorded. For a bank-transfer reservation, the key is issued at this point (the guest also receives it in the confirmation email). For an on-site reservation, the key was already issued when the reservation was confirmed, so this step records the settlement

For bank transfers, the invoice's automatic reconciliation is the primary path. This button is for manually recording a payment when the webhook is delayed or you confirmed the transfer some other way. See Feature 6 for sending an invoice and reading its status.

For a bank-transfer reservation, no key is issued until the payment is recorded. An on-site reservation gets its key before payment, but this button is the only way to keep a record of the settlement. Changing the payment status dropdown directly to "Paid" does not record an amount, a method, or who received it, so recording through this button is the correct procedure (the dropdown remains available for corrections, but this button is the primary path).

A reservation only records an exact match. Entering an amount different from the amount due returns "The amount received does not match the amount due." If a discount is needed, edit the reservation's total first, then record the receipt (to partially clear an outstanding postpaid balance instead, use the receipt action on Check-in History, not this one).

If you see "recorded, but the key could not be issued". The receipt itself is already on the books, so there is no need to take the payment again. Pressing the same button retries only the key issuance, without recording a second receipt.

The button does not appear on a cancelled reservation. Once an on-site, unpaid reservation is cancelled, no key can be granted for it, so a receipt cannot be recorded against it either.

Unlock Activity

Below the reservation code field in Detail mode, an "Unlock Activity" section shows a timeline of the KEYVOX unlock/lock events tied to this reservation. It lets you see not just the reservation's intent (who is supposed to use the room and when) but what actually happened.

Item Content
Summary (unlock count, first unlock, last unlock) Shown only when there is at least one unlock
Post-checkout unlock warning A yellow notice banner appears if an unlock happened after the scheduled check-out time (possible overstay)
Timeline Time (Japan Standard Time), kind (unlock 🔓 / lock 🔒 / unlock failed ⚠️ / sync 🔄), entry/exit direction, method (PIN / QR / card / remote / manual / auto-lock), and lock name
"Inferred" badge Shown on unlocks that were matched to this reservation by lock + time window rather than by the exact reservation code (an exact match carries no badge)

A failed unlock is highlighted, not just iconified. It always shows the "Unlock Failed" label (not just an icon) with a red-tinted background, since it's the signal most worth not missing.

An empty list does not prove the room was never used. It shows "No unlock records," but the same empty state also appears for reservations from before this tracking started, or for facilities without lock integration configured.

Facilities that share a lock across reservations may show fewer entries than expected. When multiple reservations (or facilities) share the same entry lock, an unlock on that lock cannot be safely attributed to one specific reservation — so it is deliberately left out rather than risk showing it against the wrong reservation (misattribution is treated as worse than no attribution).

This section only appears in Detail mode — not while creating or editing a reservation — and is never shown to guests (it's internal, staff/owner-facing information).


Approving or rejecting a pending reservation

When a plan has reservation approval turned on, bookings on that plan arrive as "pending approval". Opening such a reservation shows an approval prompt in the detail panel.

Action Behaviour
Approve Confirms the reservation immediately
Reject A reason is required. The reject button stays disabled until you enter one

The rejection reason is used in the notification sent to the guest.

How this differs from the Responses tab: the same approve / reject is available from the Responses tab of the Forms screen, but that list only shows reservations that have a form response. Pending reservations on a plan with no form attached can only be handled from this reservation detail panel.


Feature 4: Reservation Edit Mode

Click any editable field in Detail mode to switch to Edit mode for that field (see "Editing by clicking a field" above). The form is pre-filled with the current reservation data so you can update and save.

Editable Fields

Field Description
Check-in date/time Start of the stay. See "How to enter times" in Feature 1 for the time fields
Check-out date/time End of the stay (computed from "start + stay length" for hourly bookings)
Stay type Nightly / Hourly
Room type Room type for the reservation
Plan Plan applied to the reservation
Guest name Name of the guest
Guest email Email address of the guest
Payment method Pay online / on-site / bank transfer (see Feature 6). Cannot be changed once a receipt has been recorded
Notes Admin-facing notes

Reservation Time Changes and Key Expiry

If you change only the check-in/check-out date and time without changing the room, the guest's issued key (PIN/QR) is not reissued. Instead, only that key's expiry is updated to match the new time — in either direction, whether you extend or shorten the stay. If the room is also changed, this does not apply; the key is reissued as before.

When you change the check-in or check-out time, a note appears below the calendar:

Changing the reservation time also updates the smart lock key's expiry to match. If the price changes, the difference is not charged automatically.

The price difference is not charged automatically. The recalculated total is shown on screen, but no additional charge is sent to Stripe — if you need to collect the difference, arrange it separately.

When you save, the key's expiry update is confirmed as actually applied before the save is treated as complete. If the update could not be confirmed, a warning appears after saving:

The reservation time was changed, but the smart lock key's expiry could not be updated. The guest's key will still expire at the original end time. Please check the key status.

If you see this warning, the key still expires at the original time. Saving this reservation again automatically retries the update, so in most cases simply saving again resolves it. If it doesn't, check the key status.

Cancelled and Completed Reservations Are Excluded

If a reservation's status is anything other than "Confirmed" (for example, cancelled or completed), saving a time change will not update that key's expiry — the same warning above appears. This is a safeguard against accidentally handing a new validity window to leftover key data on a reservation that is no longer active. Treat this reservation's key as expired, and do not attempt to reactivate it by changing the time.


Feature 5: SMS Phone Verification Status

If the facility uses SMS phone verification, the phone number field in the reservation drawer shows the verification status.

Display Meaning
✓ SMS Verified (green badge) This number has been confirmed with a one-time SMS code. Hover over the badge to see when it was verified
Nothing shown Not verified

Verify at the front desk (for guests who can't receive an SMS)

For a reservation with an unverified phone number (not shown while creating a new reservation), a "Verify at front desk" link appears below the phone field. Use it when you have confirmed the guest's identity in person (e.g. out of signal range, changed number, or using a foreign SIM) and want to mark the number verified without sending an SMS.

  1. Click the link to expand the confirmation message
  2. Read the warning, then click "Mark as verified"
  3. The badge immediately switches to "✓ SMS Verified"

This action creates a verified attribute without going through SMS. Who performed it is recorded, so only use it after confirming the guest's identity in person (e.g. checking an ID document).

See SMS Phone Verification for how the whole feature works.


Feature 6: Choosing a Payment Method (for reservations created in the dashboard)

When you register a phone or email booking on the guest's behalf in the dashboard, a payment method selector appears near the billing amount (only when a billing amount has been entered). It can be chosen either when creating or when editing a reservation.

Option What it does
Pay online (charged now) Sends the guest a card-payment link
Pay on site (key is released before payment) The key is issued while still unpaid. Once you receive the payment on site, record it with the "Received on-site" button (see Feature 3)
Bank transfer (key is released after the payment is confirmed) An invoice for a bank transfer is sent automatically from the facility's Stripe account, and the key is issued once the transfer is confirmed. See Stripe Payment Integration for details
  • The plan's setting only seeds the default; your choice here always wins. Any plan lets you pick freely among the three options
  • An approval-required plan only offers "Pay online." Card payment is the only way to collect payment after approval
  • A reservation that already has a recorded receipt (payment) cannot have its payment method changed. Letting the record and the method disagree would make it impossible to reconcile against the ledger, so the selector becomes read-only
  • The selector itself is hidden entirely for a reservation billed at ¥0

Invoice status and sending (bank transfer)

While a reservation with "Bank transfer" as its payment method is still unpaid, the reservation detail view shows an "Invoice" status card below the amount / payment status field (the same spot as the on-site / bank-transfer receipt button). Once the reservation is paid, this card disappears.

Status Meaning
Not sent No invoice has gone out yet. It is sent automatically once the reservation is confirmed, so in most cases nothing more is needed. If it still hasn't arrived, the button below sends it
Sent The invoice has been sent. The card shows the recipient, the due date, and an "Open invoice" link (Stripe's hosted invoice page)
Send failed The automatic send failed. The card shows why (for example: Stripe is not configured, this currency's bank transfers are not supported, or the invoice was created but the notice email to the guest could not be sent)
  • Pressing "Send an invoice" (when not sent, or send failed) or "Resend the invoice" (when already sent) on the card opens a confirmation modal
  • The modal shows the recipient, the amount due, and the due date (expressed as days from the send date). Review these before sending. If an invoice was already sent, the modal notes that sending again resends the notice for the same invoice
  • The modal shows the reason and blocks sending when the reservation is any of: cancelled, already paid, billed at ¥0, missing a guest email, or bank transfers are not enabled on the Stripe account (see Stripe Payment Integration for how to enable it)
  • If this facility's Stripe webhook is not subscribed to payment events, both the modal and the status card show a warning, since an incoming transfer will not automatically mark the reservation as paid in that case
  • If the notice email to the guest could not be sent after a successful send, the modal reads "The invoice was created, but the notice to the guest could not be sent," and tells you to share the invoice URL directly

Sending an invoice does not change the payment status right away. Once the guest's transfer completes and the webhook confirms the incoming payment, the reservation switches to "Paid" automatically and the key is issued. If that doesn't happen promptly, use the "Record payment" button described above under "Recording an on-site or bank-transfer payment" to record it by hand.


Feature 7: Multi-select and Bulk Delete in the Reservation List

Every card in the reservation list has a checkbox, so you can delete several reservations at once.

  1. Check the box on each reservation you want to delete, or use "Select all shown" at the top of the list to select every reservation currently loaded on screen
  2. Once anything is selected, a bar appears showing the selected count and a "Delete selected" button ("Clear selection" starts over)
  3. Pressing it opens a confirmation dialog. Deletion cannot be undone
  4. Deleting revokes any issued key first, before the reservation itself is removed

Reservations that cannot be deleted

A reservation matching any of the following is kept, not deleted, even if you selected it and ran the delete. The results screen shows how many were kept and why.

Reason Meaning
kept - has a recorded check-in It carries the record behind usage reporting and billing
kept - already paid Kept as an accounting record
kept - a check-in record is linked Check-in history data is linked to it
kept - a form response is linked A guest's form response is linked to it
already deleted It had already been removed by another action after you selected it

Pay special attention to "key revoked but could not be deleted." The reservation stays in the list, but its key no longer opens. This is shown in red on the results screen — reissue the key if needed. A key revocation that itself failed is also shown in red, and needs to be disabled in KEYVOX.

Bulk delete can be run by a Facility Owner, Organization Owner, or Platform Admin. Below that permission level, running it fails.


Source Color Coding

Reservation source badges are color-coded by origin:

Color Source Description
Blue Direct Created manually in the dashboard, or via a direct booking URL
Sky blue iCal / Airbnb Imported from an iCal feed (e.g. Airbnb)
Coral OTA Reservations from other OTA channels

Frequently Asked Questions

Q: When I create a reservation from the calendar, how is the room type determined?

In Week and Timeline views, the room type is pre-selected based on the unit row you clicked. In Month view, you select the room type manually in the form.

Q: What is the difference between Nightly and Hourly?

Nightly is for multi-night accommodations billed per night. Hourly is for short-term rentals such as coworking spaces or meeting rooms billed per hour.

Yes. Open the reservation in Detail mode, add the email, then click "Send payment link" or "Send key link".

Q: Can I edit a reservation that was imported from iCal (Airbnb)?

iCal-imported reservations are read-only in the dashboard. Change dates on the source platform (e.g. Airbnb); the update is reflected automatically at the next iCal sync.

Q: How do I collect detailed guest information like address or passport number?

For reservations where guests check in themselves, configure the fields in Guest Form Configuration. For manually created reservations, enter guest information directly in the reservation form.

Q: I changed the reservation time, but the key's expiry did not update. Why?

The reservation's status may be something other than "Confirmed" (for example, cancelled or completed). For reservations in those statuses, the key cannot be given a new expiry by changing the time — this is by design. Treat that key as expired.

Q: The "Received on-site" button does not appear for an on-site reservation

Check that the payment method is set to "on-site" and the payment status is "unpaid". The button never appears for a reservation paid online (by card), or one that is already paid or cancelled. A plan priced at ¥0 is also excluded.

Q: Can I record a discounted amount when recording an on-site receipt?

No. A reservation's receipt only records an amount that exactly matches the amount due. To apply a discount, edit the reservation's total amount first, then record the receipt.

Q: Can I set the end time directly for an hourly booking?

Yes. Edit the "End (calculated, editable)" field directly. The stay length shown in the buttons (1 hour, 2 hours, etc.) updates automatically to match the new gap. Conversely, changing the start time slides the end time while keeping the stay length the same.

Q: Can I change the payment method later?

Yes. A reservation created as unpaid and intended for online payment can later be switched to on-site or bank transfer. It cannot be changed, though, once a receipt (payment) has already been recorded against it.

Q: I ran bulk delete, but some reservations are still there

A reservation carrying a recorded check-in, a payment, a check-in-history record, or a form response is deliberately excluded from deletion. The results screen shows the reason for each one that was kept. See Feature 7 for details.


Open the MarkdownPaste it into an AI assistant.

Ask about this article

AI answers from this article's content.