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

# Set up the waitlist, early arrivals, ending visits and no-shows

**Settings → Reservations** holds four settings that shape how a service day
runs:

* whether guests can join today's waitlist from your storefront
* when check-in asks about a party that arrived early
* when visits end by themselves
* whether a party that never arrives is marked a no-show by itself.

Set them once before your first busy day. Come back when your rhythm
changes. A tasting bar turning tables every 45 minutes wants different
numbers from a one-seating dinner.

## Before you start

* Anyone who can open Riserva in your Shopify admin can change these
  settings.
* They apply to every location and every experience in your store.
* Nothing changes until you press **Save** in the bar at the top of the
  page.

## Change the settings

1. In Riserva, open **Settings**.
2. Under **Reservations**, press **Edit reservation settings**.
3. Change any of the four groups described below.
4. Press **Save** in the bar at the top of the page. You see "Settings
   saved". **Discard** puts everything back as it was.

***

## Storefront waitlist

**Let guests join today's waitlist online** decides whether **guests** can add
themselves to your waitlist from your website. It is off unless you turn it
on. The walk-in waitlist on the Host page and the Reservations tile in
Shopify POS is always there for your team either way.

When the storefront waitlist is on:

* A guest who opens the booking window on **today** and finds no open times
  sees "Today is fully booked, but tables open up. Join the waitlist and
  we'll email you if a spot frees up."

* The guest can leave a **Name** and an **Email**. Their party size is the one
  they already chose.

* The offer appears only for today. It never appears for a future date, or
  on a day closed by a blackout period.

* The party lands on the same waitlist your host stand and the register use.
  It carries the note "Joined online — wanted" and the experience's name (for
  example "Joined online — wanted Estate Tasting.").

* Joining twice with the same email at the same property does not create a
  second entry.

The guest is told: "You're on the list — we'll email you if a spot opens up
today." Riserva emails them nothing else until a host presses **Notify** on
their entry. That sends the *Waitlist — table ready* email.

> **Good to know**
> Only turn this on if someone watches the waitlist during service. A guest
> who joins online and never hears back has had a worse experience than one
> who saw no waitlist at all.

***

## Early arrivals

When a party arrives well before their reservation, Riserva asks before it
checks them in. They may be hours early, or on the wrong day ("they put
tomorrow and arrive today").

Checking them in without changing anything leaves the calendar wrong. The
later seat stays held, the visit is recorded on the wrong day, and the
reminder email still goes out.

**Ask when a party arrives more than … minutes early** — 60 minutes unless you
change it. You can enter anything from 0 to 1,440 (a day). At 0, any party
checking in before its start time is asked.

A party that is on time, a little early (inside your number) or late is
checked in straight away, with no question.

### What the check-in question asks

When a party is early enough, pressing **Check in** opens a window titled
**Early arrival —** and the guest's name. The window first says what the
reservation is for and how far away it is, for example "Booked for Wed, Sep 23
at 12:00 PM — 5 days from now." Then it offers:

* **Move to 2:00 PM and check in** — the button names the time it will use.
  Riserva moves the reservation onto today at the same venue. The seat the
  party was holding later is released for other guests. The visit is
  recorded today, and the party is checked in.
* **Check in without moving** — checks the party in and leaves the
  reservation on its original date and time. Their later seat stays held.
* **Cancel** — closes the window and changes nothing.

The question never takes the choice away: **Check in without moving** is
always there.

The question appears wherever you check a party in: the Host list, a
reservation's page, the panel on the Host Timeline and Map, and the
Reservations tile in Shopify POS. In POS the question takes over the
reservation's page, because POS has no pop-up windows.

<AccordionGroup>
  <Accordion title={"Which time Riserva moves the party to"}>
    **Move to … and check in** uses one of three slots today, at the same venue:

    * the time slot running right now ("That slot is in progress right now.")
    * when nothing is running, the next slot today ("Nothing is running right now
      — that is the next slot today, …")
    * after the day's last slot has ended, that last slot ("That was today's last
      slot — it has already ended; the visit is recorded on today.").
  </Accordion>

  <Accordion title={"If today's time is full"}>
    If the time slot Riserva would move the party onto is already full, the
    window turns into a warning. For example: "Today's 2:00 PM time is full for a
    party of 4. You can seat them anyway — host's call." The time follows your
    time format in Settings → Regional formats.

    The main button becomes **Seat them anyway**. Pressing it moves the party onto
    that full slot over its limit and checks them in. If you would rather not,
    choose **Check in without moving**.

    The timeline records your call. The move reads "… — capacity overridden", and
    the early-arrival line ends "(seated over capacity)".
  </Accordion>

  <Accordion title={"If the experience has no time today"}>
    If the experience has no times today at that venue, there is nothing to move
    the reservation onto. The window says "There are no times for this
    experience at this venue today, so the reservation can't be moved from here —
    check the party in without moving, or move it from the edit page." It offers
    only **Check in without moving** and **Cancel**.
  </Accordion>
</AccordionGroup>

### What the guest and the timeline see

The guest is **not** emailed about an early-arrival move, because they are
standing in front of you. The reservation's timeline records it all, with
your name.

<AccordionGroup>
  <Accordion title={"The timeline lines an early-arrival move writes"}>
    * "Arrived early — moved from Wed, Sep 23, 12:00 PM to Sat, Sep 19, 2:00 PM
      at check-in"
    * "Reservation rescheduled to Sat, Sep 19, 2:00 PM"
    * "Rescheduled email not sent (the guest was at the counter)"
    * "Guest checked in"

    The "Rescheduled email not sent" line is how Riserva records that no email
    went out. The email was skipped on purpose; you do not need to change
    anything in Settings → Emails.
  </Accordion>
</AccordionGroup>

***

## Ending visits

On a busy afternoon nobody presses **Complete**, so Riserva can end a visit by
itself. A party that is checked in or seated is marked **Completed**. It
leaves **On property**, its table shows as free on the Timeline and Map, and
the visit is recorded.

**Ending visits** asks *when* that happens, with three answers:

* **"After the scheduled end"** — the default. A party is marked done a set
  time after its reservation's end.
* **"At the end of the day"** — every party still on the floor is marked done
  at midnight, property time, or at its own end if that is later.
* **"Never — staff press Complete"** — a party stays under **On property**
  until someone completes it. **Running over** still shows after its end, as a
  reminder.

Choose one and press **Save**.

**"After the scheduled end"** shows one more field: **Wait after the scheduled
end for … minutes**. It is 15 minutes unless you change it, from 0 up to 1,440
(a day). The reservation's end time is its start time plus the experience's
duration; turn time is not part of it. A 2:00 PM tasting that lasts 30
minutes, with the default 15-minute wait, ends by itself at 2:45 PM.

**"At the end of the day"** suits parties that often linger, when you would
rather nobody's visit closes while they are still at the table. **Running
over** stays on the row all evening, so nobody is lost, and the day is tidied
up overnight.

### What your team sees

* Nothing announces it on a party that is on time. Ending by itself is simply
  how visits work in your store, so no row or page carries a notice about it.

* Once a party is past its end time, it gets a **Running over** badge and a
  **Still here** button appears.

* In the admin, hover the **Running over** badge to see when the visit will
  end ("Ends by itself at 2:45 PM", or "Ends by itself at the end of the
  day").

* On the Host Timeline and Map, the same party gets an amber edge on its bar
  or table.

* The Reservations tile in Shopify POS shows the same **Running over** badge
  on the party's page, with **Still here** at the bottom.

After a **Still here** press, the party is not running over again until that
extra time has passed.

### Keep a lingering party: Still here

Press **Still here** when a party is running over but has not left. It moves
their expected end out by 30 minutes, counted from now or from their current
end if that is later. It clears **Running over** until that time has passed.
Press it again whenever they run over again; there is no limit.

**Still here** works under all three answers:

* **After the scheduled end**: the automatic end waits for the new time plus
  your wait.
* **At the end of the day**: the visit still ends at midnight, unless the
  extra time runs past midnight. Then it ends at the new time.
* **Never — staff press Complete**: nothing ends by itself; **Still here** only
  moves the **Running over** reminder.

**Still here** does not stop online guests booking the table after the
reservation's original end time. The floor and the online calendar can
disagree for a while. That is deliberate, so a lingering party never costs
you a sale.

### End a visit early: Complete

Press **Complete** on the Host list, on a reservation's page, on the Timeline
and Map panel, or in the Reservations tile in Shopify POS. A checked-in party
can be completed without being seated first.

### When it actually happens

Riserva ends overdue visits whenever someone opens the Host page, the Timeline
and Map, or the Reservations tile in Shopify POS for that location. It also
does so once an hour in any case. A party nobody is looking at still ends
within the hour after its time.

<AccordionGroup>
  <Accordion title={"How you can tell a visit ended by itself"}>
    The reservation's timeline never pretends someone pressed the button. It
    shows "Reservation completed" and "Visit ended automatically, 15 min after its
    expected end — nobody pressed Complete", both from **System**.

    Under **At the end of the day**, the second line reads "Visit ended
    automatically at the end of the day — nobody pressed Complete".

    A **Still here** press shows as "Still here — the visit runs on, the automatic
    end waits", with the name of whoever pressed it.
  </Accordion>
</AccordionGroup>

### Never ending visits by themselves

Choose **Never — staff press Complete** and press **Save**. Parties then stay
under **On property** until someone presses **Complete**. The **Running over**
badge no longer says when the visit ends. On the Host list, the **Running
over** badge and **Still here** still appear after a party's end time, as a
reminder to complete it.

***

## No-shows

**No-shows** decides whether Riserva marks a party that never arrives as a
no-show by itself. Without it, the party stays on the **Arriving** list until
someone presses **No-show** or checks it in. It shows **Late** ten minutes
after its time.

On a busy day nobody presses **No-show**, and the party stays Confirmed for
ever. Its table looks taken, and your no-show rate in Reports counts too few.

**No-shows** has three answers:

* **"Never — staff mark no-shows"** — the default. A party stays on
  **Arriving** until a host presses **No-show** or checks it in.
* **"After the reservation time"** — a party that has not checked in is marked
  a no-show a set time after its reservation's start.
* **"At the end of the day"** — every party still not checked in is marked a
  no-show at midnight, property time, after its reservation's date. It is
  never marked before the reservation's own start.

Choose one and press **Save**.

**"After the reservation time"** shows one more field: **Wait after the
reservation time for … minutes**. It is 60 minutes unless you change it, from
0 up to 1,440 (a day). With the default, a party booked for 2:00 PM that has
not checked in by 3:00 PM is marked a no-show.

**"At the end of the day"** suits you when you only want the day's books
tidied up overnight. Hosts can still mark one earlier by hand.

> **Good to know**
> A no-show is a stronger statement than a finished visit. Marking a party a
> no-show, by hand or by this setting, counts it in Reports. It keeps the
> guest's saved card on file (Riserva charges no no-show fee). It sends
> Klaviyo's **Riserva Reservation No-show** event if Klaviyo is connected. If
> a Klaviyo flow emails the guest on that event, the automatic answer will
> send it for every party that never arrives.

### What it touches, and what happens

Automatic no-shows touch only reservations still **Confirmed** or **Pending
payment**: parties that never checked in. A party that was checked in, seated,
completed or cancelled is never touched.

An automatic no-show is the ordinary **No-show**:

* The party leaves **Arriving** and appears under **Done** in the
  Reservations tile in Shopify POS.
* Its table is freed on the Timeline and Map.
* A saved card is kept exactly as for a no-show a host pressed.
* Reports count it.
* Klaviyo receives the no-show event when it is connected.
* Shopify Flow's **Reservation no-show** trigger starts any workflow you built
  on it.

Riserva does not email the guest.

Automatic no-shows happen at the same moments visits end by themselves.
That's whenever someone opens the Host page, the Timeline and Map, or the
Reservations tile in Shopify POS for that location. They also happen once an
hour in any case.

<AccordionGroup>
  <Accordion title={"How you can tell a no-show was marked automatically"}>
    The reservation's timeline shows "Marked as no-show" and then "Marked no-show
    automatically, 60 min after the reservation time — never checked in". The
    number follows your setting.

    Under **At the end of the day**, it reads "Marked no-show automatically at
    the end of the day — never checked in".

    Both lines come from **System**. The timeline never pretends someone pressed
    the button.
  </Accordion>
</AccordionGroup>

### When the guest walks in after all: Undo no-show

A no-show called too soon, by a host or by this setting, can be taken back.

* **On the reservation's page**: press **Undo no-show**. It is the main button
  at the top, the only thing left to do on a no-show.
* **In the Reservations tile in Shopify POS**: open the party from the
  **Done** tab and press **Undo no-show** ("No-show undone").

The reservation goes back to Confirmed, or to Pending payment if that is what
it was marked from. Its no-show time is cleared, and you can check the party
in as usual. The timeline reads "No-show undone — the party is back among
those arriving", with your name. Nothing refuses it: no money moves on a
no-show.

***

## If it's refused

<AccordionGroup>
  <Accordion title={"If you see \"Only a party on the property can stay longer.\""}>
    **Still here** works only for a party that is checked in or seated. The party
    was probably just completed, by someone else or automatically.
  </Accordion>

  <Accordion title={"If you see \"The reservation changed a moment ago.\""}>
    Someone or something changed the reservation at the same moment, so your tap
    was not applied. Reload and try again.
  </Accordion>

  <Accordion title={"If you see \"… has no times today at this venue\""}>
    The full message reads "… has no times today at this venue — check the party
    in without moving, or move the reservation from its edit page." There is no
    slot today to move an early party onto. Check them in without moving, or move
    the reservation from its edit page.
  </Accordion>

  <Accordion title={"If you see \"Today's 2:00 PM time is full for a party of 4.\""}>
    The full message reads "Today's 2:00 PM time is full for a party of 4. You
    can seat them anyway — host's call." The slot today is full. Press **Seat them
    anyway** to move them over its limit, or **Check in without moving**.
  </Accordion>

  <Accordion title={"If you see \"This reservation is confirmed, so its no-show can't be undone.\""}>
    The full message reads "This reservation is confirmed, so its no-show can't
    be undone. Refresh the page to see where it stands." The reservation is no
    longer a no-show. Someone probably undid it already, or checked the party in.
    Reload to see where it stands.
  </Accordion>
</AccordionGroup>

***

## Related

* [Running service with the Host view](/daily-operations/host-view)
* [Edit a reservation](/daily-operations/edit-a-reservation)
* [Reservations in Shopify POS](/daily-operations/pos)
* [Statuses: what every badge means](/reference/statuses)
* What things mean on this screen → [Settings](/reference/settings)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.