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

# Booking sessions

> Sell bookable one-to-one sessions with your staff — tutoring, consultations, office hours — paid at checkout and confirmed automatically.

> [!NOTE]
>
> **School-level feature** — managed within your school portal at `yourschool.deandesk.com`.## Video walkthrough

\<video controls playsInline preload="metadata" poster="/images/tutorials/finance-bookings.jpg" width="100%" aria-label="Booking sessions walkthrough"><source src="https://deandesk-static-img.s3.us-east-1.amazonaws.com/docs/tutorials/finance-bookings.7705236096cdde510d5119e455aade38f340f4097e14836f63e9758005d16920.mp4" type="video/mp4" />
        \<track kind="captions" srcLang="en" label="English" default />
Your browser does not support embedded video. [Open the video](https://deandesk-static-img.s3.us-east-1.amazonaws.com/docs/tutorials/finance-bookings.7705236096cdde510d5119e455aade38f340f4097e14836f63e9758005d16920.mp4).</video>
      

\[Download the video](/videos/tutorials/finance-bookings.mp4) · Download English captions

> [!NOTE]
>
> This walkthrough uses the real DeanDesk interface with the fictional Northstar Academy demo school and a calm, AI-generated English voice. Payments and outside services are not connected in the demo.Screenshots and the walkthrough use fictional Northstar demo data. Payments are not connected in the demo; no live transactions are shown.A **Booking Session** is a product type. Each booking product names one staff member (the *provider*), their weekly hours, the session length, and whether the session is online or in person. Customers pick a time on your school's public **Bookings** page, enter their details, and pay at checkout. Paid sessions confirm automatically the moment payment succeeds — nobody has to accept a request by hand.Create booking products under **Finance → Products & Donations** and manage the resulting sessions under **Finance → Bookings**.## How booking sessions work1) **You create a Booking Session product** — one provider, one set of weekly hours, a session length, and one or more one-time prices.
2) **A customer chooses a time** at `yourschool.deandesk.com/bookings`. DeanDesk shows only the times that fit the provider's hours, buffers, notice period, daily limit, and existing calendar commitments.
3) **The time is held for 15 minutes** while the customer completes checkout. Nobody else can take that slot during the hold.
4) **Payment confirms the session.** A confirmed session lands on the provider's calendar, both sides receive an email, and the meeting link (for online sessions) is shared with the customer. Free sessions confirm as soon as checkout is completed.
5) **Staff manage the session** — mark it completed after it takes place, or cancel it if plans change.## Create a booking session**1. Choose the product type**Go to **Finance → Products & Donations**, click **Create Product**, and choose **Booking Session** — "Sell scheduled sessions with staff, availability, and payment at checkout." Click **Next**.**2. Enter the details**Give the session a **Name** customers will recognize (for example, "Math tutoring, 30 minutes") and a short **Description**. Images, tags, and the other catalog fields work the same as for any product; see [Products](/finance/products.md#create-a-product).**3. Set the session and availability**The **Session & Availability** step holds everything that controls when the session can be booked. The settings are described in the next section. At a minimum, choose a **Session provider** and keep at least one row of **Weekly availability**.This step also offers a **Required Checkout Form**, exactly like a program product. Attach a public, active form when you need an intake questionnaire or agreement before the session.**4. Set the price**Add one or more price rows. Booking sessions are sold one session at a time, so **Price Type** offers **One-time** and **Free** only — recurring billing is not available. Add several rows when you want options, for example a full-length session and a shorter free intro call; the customer picks one on the booking page.Click **Create Product**. The session appears in your products list and on the public Bookings page straight away.> [!TIP]
>
> You can change the provider, hours, and every other availability setting later from the product's **Details** tab. Existing confirmed sessions are not affected — only the times offered for new bookings.## Availability settings| Setting | What it does |
| - | - |
| **Session provider** | The teacher or admin the customer meets. One provider per product; create a second product for another staff member. |
| **Schedule timezone** | The timezone the weekly hours are written in. Hours follow this zone through daylight saving changes. Customers see times converted to their own zone. |
| **Session duration (minutes)** | The length of every slot, from 5 to 480 minutes. |
| **Meeting format** | **Online** or **In person**. |
| **Meeting link** / **Location** | For online sessions, the URL customers join (Zoom, Google Meet, and so on). For in-person sessions, where to go. The meeting link is only revealed after checkout is complete. |
| **Weekly availability** | One or more rows of **Day**, **From**, and **Until**. Click **Add hours** for another row. Rows on the same day cannot overlap, and each row must be at least one session long. |
| **Buffer before / after (minutes)** | Padding kept free around every session, for travel or preparation. |
| **Minimum notice (minutes)** | How far ahead a customer must book. The default is one hour. |
| **Booking window (minutes)** | How far into the future customers can book. The default is 30 days. |
| **Daily limit** | The most sessions this provider will take per day. Leave blank for unlimited. |
| **Available from / until** | Optional dates that switch the session on and off, for example for a single term. |
| **Avoid Google Calendar conflicts** | Hide times when the provider is busy in their connected Google Calendar. See [Zoom & Google Calendar](/integrations/zoom-google-calendar.md). |
| **Avoid internal calendar conflicts** | Hide times that clash with DeanDesk calendar events the provider created or is invited to. |### How available times are calculatedFor the day a customer picks, DeanDesk starts from the provider's weekly hours in the schedule timezone and removes:* any slot shorter than the session plus its buffers,
* times already held or booked for that provider — across every booking product they appear on,
* busy times from the provider's internal and Google calendars, when those checks are on,
* anything inside the minimum notice period or beyond the booking window,
* the rest of a day once the daily limit is reached, and
* days outside the **Available from** / **Available until** range.> [!NOTE]
>
> If the provider's Google Calendar cannot be reached, DeanDesk shows an error rather than offering times that might clash. The customer can try again in a moment.## The public Bookings pageEvery school has a built-in **Bookings** page at `yourschool.deandesk.com/bookings` — "Book a session at *Your School*". It lists every active booking product. Each card has a **Choose a time** button, and a **My bookings** button at the top takes signed-in customers to their own sessions. Booking products also appear in the main Products catalog with the same **Choose a time** button, unless you turn on **Hide from public catalog** on the product.The page is also available as a **Bookings** item in the signed-in sidebar. Turn it on or off under **Website → App Menus → Main Sidebar**, and style the catalog with the **Bookings page** entry in [Built-in page templates](/lms/pages.md#built-in-page-templates).### Booking a sessionThe session page is split into three steps:**1. Choose your session**If the product has more than one price, the customer first picks a **Session price**. They then choose a **Date**, confirm **Your timezone** (DeanDesk pre-selects the browser's zone), and click one of the available times. The price per session is shown beneath the times. Click **Continue**.**2. Your information**The chosen time is summarized at the top. The customer enters **First name**, **Last name**, **Email**, an optional **Phone**, and anything you should know before the session. Signed-in customers have their name and email filled in. Clicking **Continue to checkout** holds the time for 15 minutes.**3. Checkout**The cart shows the session, its date and time, and the deadline for completing checkout. Payment is taken immediately, like any other product; the DeanDesk [online processing fee](/finance/online-processing-fee.md) applies. If the hold expires before payment is completed, the customer is sent back to choose a new time.Rules worth knowing:- **One session per checkout.** The quantity is fixed at one, and the session is always for the person paying — it cannot be assigned to a child or another family member.
- **Guests can book.** A visitor without an account checks out as a guest, and DeanDesk creates their account along the way, as for any other purchase. The email entered on the booking page must match the email used at checkout.
- **Stripe must be connected** for paid sessions. See [Stripe](/finance/stripe.md). Free prices work without it.## After checkout| Status | Meaning |
| - | - |
| **Payment processing** | The customer finished checkout but the payment has not settled yet. The time stays reserved and the meeting link is withheld until payment succeeds. |
| **Confirmed** | Paid (or free) and booked. The session is on the provider's calendar and both sides have been emailed. |
| **Completed** | The provider or an admin marked the session as having taken place. |
| **Cancelled** | Cancelled by the customer, the provider, or an admin. |When a session is confirmed, DeanDesk:- adds a private event to the provider's DeanDesk calendar, and to their Google Calendar when it is connected;
- emails the customer a **Booking Confirmed** message with the date, time, location or meeting link, and a link to their bookings;
- emails the provider a **New Booking** message with the customer's name and any notes they left;
- records the sale on the product's **Sales** tab and in [Transactions](/finance/transactions.md).A payment that fails outright releases the hold so the customer can try again. A payment that is still processing after 20 minutes without a result is expired automatically and the time is offered to others again.## Manage sessions### Admins: Finance → BookingsOpen **Finance → Bookings** in the admin sidebar — "Manage paid sessions. Configure providers and availability on each booking product." The page lists every session across all booking products.- **Search** by session name, customer name or email, or provider.
- Filter by **Upcoming** (the default), **Payment processing**, **Past**, **Cancelled**, or **All bookings**.
- Each card shows the session name, its status, the date and time in your browser's timezone, the customer's name and email, any notes they left, the payment status (or **Free session**), and the location for in-person sessions.
- **Browse sessions** opens the public Bookings page; **Manage booking products** jumps to Products & Donations.For a confirmed session you can:* **Join session** — opens the meeting link for online sessions.
* **Mark completed** — records that the session took place, with optional **Session notes**. The customer receives a **Session Completed** email.
* **Cancel session** — frees the time, removes the calendar events, and emails both sides. Add an optional **Cancellation reason**.> [!WARNING]
>
> Cancelling a session does not refund the payment. Issue any refund separately from [Transactions](/finance/transactions.md).### Teachers: Profile → Manage BookingsTeachers see their own sessions at **Profile → Manage Bookings** (`/profile/bookings`), with the same filters and the same **Mark completed** and **Cancel session** actions. The neighbouring **My Availability** entry points them to the booking product that holds their hours — availability is set on the product by an admin, not on the teacher's profile.### Customers: My bookingsSigned-in customers find their sessions at **My bookings** (`/my-bookings`, also reachable from the Bookings page and from **Profile → Manage Bookings**). They can filter by status, join an online session once it is confirmed, and cancel an upcoming session with an optional reason. An **Upcoming bookings** card on their dashboard shows the next few sessions.## Booking emails| Email | Sent to | When |
| - | - | - |
| Booking Confirmed | Customer | Payment succeeds, or a free session checks out |
| New Confirmed Booking | Provider | At the same time as the customer's confirmation |
| Booking Cancelled | Customer and provider | Either side cancels |
| Session Completed | Customer | The provider marks the session completed, including any session notes |These live in the customizable system email library under **Bookings**, alongside session reminder templates. Edit their wording at **Admin Dashboard → System Email Library**; see [System emails](/communication/system-emails.md).## Next steps> **[Products](/finance/products.md)**
>
> Pricing plans, catalog visibility, public pages, and bulk editing.> **[Zoom & Google Calendar](/integrations/zoom-google-calendar.md)**
>
> Let providers block times they are busy in Google Calendar.> **[Stripe](/finance/stripe.md)**
>
> Connect payments so paid sessions can be sold.> **[Scheduling & calendars](/setup/scheduling.md)**
>
> Shared school calendars, events, and the academic year.


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