# Let guests request a discovery flight without an account

> Turn on public booking under Settings → Booking links, configure each public page under More → Booking links, and approve guest requests from the same Booking requests queue. Guests confirm by email first. Members keep booking as they do today.

Source: https://www.aerscheduler.com/docs/scheduling/public-booking-requests
Section: Scheduling and dispatch. For: Owners, Admins, Dispatchers.

Turn on public booking under Settings → Booking links, configure each public page under
More → Booking links, and approve guest requests from Calendar → Booking requests.
Guests confirm by email first. Members still book with Solo, Dual, Ground and the
rest; offerings do not replace reservation types.

**Who can do this:** Owners, Admins, Dispatchers

## What guests get

A public page at `/book/{your-slug}/{offering-slug}`. The guest picks an open time,
enters name, email, and phone, and submits a **request**. AerScheduler emails them a
confirmation link. After they confirm, the request appears in the same queue as
member approval requests.

This is not instant booking. The front desk still approves or declines it. Offerings
are guest-only: dual, solo, and rental stay on the member Book flow.

If the offering lets the guest pick an aircraft, that tail is held until the request
expires, is declined, or you approve it, and it shows on the Calendar like a pending
slot offer. The hold paints as **Guest (awaiting email)** until they confirm; the
API does not include their name or email on that row. Confirming the email fails if
that tail was taken in the meantime. Without pick-aircraft, the desk assigns the
plane at approval. Those unlabeled times are not reserved for the guest; once as
many pending requests as free tails already cover a slot, the public page stops
offering it, and later confirmation links expire instead of overfilling the slot.
Unconfirmed unlabeled requests do not consume that capacity until the guest confirms.

> **Note:** Students and renters who already have accounts keep using **Book** as they do
> today. Public links are for people who are not members yet, typically a
> discovery or intro flight.

## Turn it on

`Settings → Booking links` (web console)

1. Flip **Allow public requests**. If you have not set a link slug yet, AerScheduler
   fills one from the school name.
2. Open **More → Booking links**. A **Discovery flight** offering is already there (60
   minutes, guest type, desk assigns the plane). Add or confirm eligible aircraft,
   then edit name, price, or duration if you want. You can add more offerings later.
3. Copy the public link from the offering's menu (**Copy public link**), or choose
   **Open public link** to see the guest page in a new tab. Only
   **Active** offerings get a link.

Calendar visibility for **Guests (public booking)** still decides how much of the
schedule the guest sees when picking times. Open slots only is the usual choice.
That setting stays on Booking links.

Settings → Booking links also has a **Configure booking links** button that
opens the same Booking links page.

Public booking lives on the web console only. There is nothing to configure in
the mobile app.

## What the guest does

They open the link. Day view is the default: a month calendar plus start times for the
day they pick (8:00 AM, not a range). On a computer they can switch to a week calendar
or a week of start-time buttons. They can change 12-hour vs 24-hour and the time zone.

On a phone there is only day view: the month sits above the start times, with large tap
targets, and the window scrolls as one page. After they pick a time, the name and email
form appears. Phone is required so the desk can call. Copy on the page says the school
must approve it, and links AerScheduler's privacy policy. They then click
**Confirm this request** in email.

To put the same page on your website, first add your site under **Websites that may
embed** (one host per line, like `www.yourschool.com`). `www.yourschool.com` and
`yourschool.com` are different websites: list both if both serve your pages. Then use
the offering menu on `More → Booking links` (web console):
**Open public link**, **Copy public link**, **Copy embed code** (inline iframe), or **Copy modal
embed** (a button that opens the page over your site). Open public link is the same page
guests get. Leave that
list empty to keep the share link only: other websites cannot put the page in a frame.
AerScheduler can still open the link in its own tab. Do not inject your own CSS or
scripts into the frame. The embed does not set AerScheduler analytics or advertising
cookies, and it does not show a cookie banner.

The snippet sets a `parentOrigin` so height and "request submitted" messages reach your
page even when the browser hides the parent origin. That value does not decide who may
embed: only the list under Websites that may embed (and the browser's frame policy) does.
The iframe HTML still includes `src` so a CMS that strips scripts can show the picker;
resize and overlay close need the script. The iframe starts about 640px tall and shrinks
or grows with the form. A modal overlay closes when the request is sent (the guest still
confirms by email). Paste into an HTML/code block if an "embed" field strips tags.
Safari and iframe-heavy hosts can still block a frame if the host you listed is not the
exact origin serving the page.

If they never confirm, the request never reaches the desk. Unconfirmed requests
expire after 24 hours, or sooner if the requested time has already passed. Expired,
declined, and cancelled public requests that never became a reservation have the
guest's name, email, phone, and notes removed.

## Approve or decline

Same place as member requests: `Calendar → Booking requests` (web console).
Guest rows show the name they entered rather than a member account. **Approve**
creates a reservation (usually a guest on the flight). **Decline** emails them
and closes the request.

If the offering lets the guest pick an aircraft, that tail stays occupied (same
as a pending slot offer) until you approve, decline, or the request expires, and
the Calendar paints the hold. You can pick a different eligible aircraft or
instructor when you approve. Aircraft and instructors have to be on the offering.
Without pick-aircraft, another booking can still take a plane while you decide,
unless that slot already has as many pending unlabeled requests as there are free
tails. Approve still runs the same conflict checks as a normal booking.

After you approve a public guest, the queue keeps them for 30 days with
**Invite as student** and **Invite as renter**. That sends a normal invitation
to the email they used. The reservation already exists.

## Package price

An offering can use **Charge a package price when booked**, the same collection
style as a staff calendar booking. Approval copies those fields onto the
reservation and Stripe invoices the package amount. It is not a percentage
deposit, and it is not a checkout that exists only on `/book`. See
[Charge a package price when booked](https://www.aerscheduler.com/docs/billing/charge-a-package-price-when-booked).

## Guest page look

Under the public booking card you can set an accent color, light/dark/system,
comfortable or compact density, and rounded or sharp corners. The school logo
is already the header. There is no custom CSS or scripts.

## What can go wrong

| What they see                  | What it means                                                                                                                                               |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| This page is not available     | Public requests are off, the offering is paused, or the slug in the URL is wrong.                                                                           |
| No open times this week        | Guest visibility hides occupied times, or org notice/horizon/buffers leave no window. Try another week, or loosen guest calendar visibility.                |
| Check your email               | The request is waiting on confirmation. It is not in the desk queue yet.                                                                                    |
| This page cannot be shown here | The page is in a frame on a site that is not listed under Websites that may embed. Add that exact host. `www` and the bare domain are not the same listing. |

The public demo sandbox cannot send guest requests. That is on purpose.

## Related

- [Require approval before members book](https://www.aerscheduler.com/docs/scheduling/booking-approval-requests): The same queue for students and renters who must request before they fly.
- [Booking rules and settings](https://www.aerscheduler.com/docs/scheduling/booking-rules-and-settings): Notice, horizon, buffers, and the other calendar rules guest slots still follow.
- [Charge a package price when booked](https://www.aerscheduler.com/docs/billing/charge-a-package-price-when-booked): Invoice a fixed amount when the reservation is created, on the calendar or from an offering.

## Common questions

**Do I have to create an offering before guests can request a flight?**

No. Every school starts with a Discovery flight offering. Open More → Booking links, add aircraft if the list is empty, turn on Allow public requests under Settings → Booking links, and share the link. You can edit, pause, or add more offerings.

**Does this replace Solo, Dual, and the other booking types for members?**

No. Members still book the way they always have. Offerings and public links are for guests who do not have an account.

**Does submitting a request hold the aircraft?**

Only when the offering lets the guest pick an aircraft. That tail is held until the request expires, is declined, or you approve it, and it shows on the Calendar. Without pick-aircraft, the desk assigns a plane at approval. Unlabeled times are not reserved one-for-one; once as many pending requests as free tails cover a slot, guests stop seeing it.

**Why is phone required on the guest form?**

So the front desk can call about the request. Expired, declined, and cancelled public requests that never became a reservation have the guest's name, email, phone, and notes removed.

**When does the front desk see a guest request?**

After the guest confirms the email link. Unconfirmed requests stay off the pending queue and expire after 24 hours.

**Can I invite a public guest as a student or renter?**

Yes, after you approve the request. Calendar → Booking requests keeps approved public guests for 30 days with Invite as student and Invite as renter. That sends a normal invitation to the email they used.

**Can the public page charge a discovery price?**

Yes, by using the same Charge a package price when booked style as a calendar booking. Set it on the offering. It is not a separate checkout only for /book, and it is not a percentage deposit.

**Can I embed the request page on our school website?**

Yes. Add your site under Websites that may embed on Settings → Booking links, then use Copy embed code or Copy modal embed from the offering menu on More → Booking links. Open the public link from that menu to see the same page guests get. List both www.yourschool.com and yourschool.com if both serve the site. An empty list keeps the share link only. If a CMS embed block strips scripts, paste into an HTML block or use the public link. The embed does not set AerScheduler analytics or advertising cookies, and it does not show a cookie banner. Guests still confirm by email, and the desk still approves. This is not instant booking.

**How do I see what guests will see before I share the link?**

On More → Booking links, open the offering menu and choose Open public link. That is the same page guests get. You can also copy the link and paste it into a new tab. Turn on Allow public requests first under Settings → Booking links.

## Related

- [Require approval before members book](https://www.aerscheduler.com/docs/scheduling/booking-approval-requests): Students, renters, or instructors in selected roles or groups submit booking requests. Staff approve or decline from the calendar or Home, and approval creates the reservation. Undecided requests expire when the requested time passes.
- [Booking rules: the settings that change how booking works](https://www.aerscheduler.com/docs/scheduling/booking-rules-and-settings): Flying day, multi-day trips, payment-method gate, cancel/edit lock, late-cancel fee, max upcoming bookings, max reservation length, minimum notice, booking horizon, start interval, fixed duration, buffers, and account-ledger book/dispatch gates. What each does and where it lives.
- [How much of the schedule guests and members see](https://www.aerscheduler.com/docs/scheduling/calendar-visibility): Calendar visibility under Booking links sets how much of the schedule each audience sees when picking a time. It does not change the staff Calendar. Open slots only is the usual guest setting.
- [Charge a package price when the booking is created](https://www.aerscheduler.com/docs/billing/charge-a-package-price-when-booked): Staff invoice a fixed package amount when a reservation is created. The guest can pay any time. Instructors see Collect payment until it is paid. Close-out records Hobbs and does not bill the hop twice.
