# Booking system

> Set up your online tandem booking page: weekly schedule, overrides for weather and closures, packages and add-ons, coupons, gift certificates, and the website embed code.

Source: https://ezdzskydive.com/docs/booking-system · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

Everything customers see on your booking page is configured in one place: **DZ Admin → Settings → Booking System Config**. It has seven tabs. This page covers all of them and links out to payments and email, which have their own guides.

> **Most of this is pre-configured**
>
> We usually set up your slug, branding, packages, and weekly schedule from your existing booking page. Use this guide to review it and make changes any time.

> **Saving**
>
> The blue **Save Configuration** button saves General Settings, your time slots, your packages, and payment settings together. Schedule overrides, coupons, gift certificates, and email settings save on their own with their own buttons.

| Tab | What it controls |
| --- | --- |
| General Settings | Page URL, on/off, contact info, branding, rules |
| Schedule & Availability | Weekly time slots and one-off overrides |
| Pricing & Packages | Packages, prices, add-ons |
| Coupons & Gift Certs | Discount codes and gift certificates |
| Payment Settings | Stripe, deposits, fees, plan. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments) |
| Email Settings | SMTP and templates. See [Email setup](https://ezdzskydive.com/docs/email-setup) |
| Preview & Embed | Live preview and website embed code |

## General settings

**Booking URL Slug** (Where: General Settings · Default: From your dropzone name · Admins only)
Your booking page lives at `/booking/{slug}`, for example `https://ezdz.xyz/booking/skydive-buckeye`. Change it only if you must, because links you've shared will stop working.

**Status: Active** (Where: General Settings · Default: Off for a brand-new booking page · Admins only)
The booking page only accepts bookings while this is on. **If customers can't see your booking page, check this first.**

**Contact Email and Contact Phone** (Where: General Settings · Default: Empty · Admins only)
Shown on the booking page and in confirmation emails.

**Email me when new bookings come in** (Where: General Settings · Default: On · Admins only)
Staff notifications for new bookings and gift certificate purchases. Customer emails aren't affected. **Send notifications to** defaults to your contact email; enter another address to send notifications elsewhere without changing the public contact email.

**Review Link** (Where: General Settings · Default: Empty · Admins only)
A Google or Yelp review URL included in the post-jump review request email.

**Custom Logo URL, Font Family, Primary and Secondary Color** (Where: General Settings · Default: Blue and system font · Admins only)
Branding for the booking page and emails. The logo is a URL, not an upload, so host the image on your website and paste the link. Fonts: System UI, Inter, Roboto, Open Sans, or Lato.

**Minimum Age and Maximum Weight (lbs)** (Where: General Settings · Default: 18 and 250 · Admins only)
The limits shown to customers before they book.

**Require Phone Number and Require Emergency Contact** (Where: General Settings · Default: On · Admins only)
Collected during checkout so your team has them on jump day.

**Terms and Conditions Text, Confirmation Message, Custom Requirements** (Where: General Settings · Default: Empty or default · Admins only)
Your waiver and deposit language, the message shown after booking, and any extra checkboxes you want customers to accept. Each requirement can be marked **Required**.

## Schedule and availability

Each row in **Schedule & Availability** is one continuous availability window on one weekday. EZDZ generates individual bookable times inside that window using your duration and buffer.

1. Click **Add Time Slot** and choose the **Day**, **Start Time**, and **End Time**.
2. Set **Duration (min)**. This is how often a time appears. `60` gives one time every hour, `120` every two hours.
3. Set **Buffer Minutes** if you want a gap between back-to-back times.
4. Set **Max Bookings** to cap how many tandems can book each time.
5. Switch the row to **Active**. Inactive rows don't appear on the booking page.
6. Click **Save Configuration**.

For example, a `10 AM` to `4 PM` window at `60` minutes gives times at 10, 11, 12, 1, 2, and 3.

![Schedule & Availability: each row is one window. The two Sunday rows overlap between 9 AM and noon, which would show duplicate times](https://ezdzskydive.com/docs/booking-system/schedule-and-availability.webp "1105x840")

**Max Bookings** (Where: Schedule & Availability · Default: 8 for a new row · Admins only)
The most tandems that can book into **one** time. It counts people, not groups: a group of four counts as four. It applies to tandem bookings through the booking page only, and has nothing to do with aircraft capacity. Leave it blank for no limit.

**Duration (min)** (Where: Schedule & Availability · Default: 60 · Admins only)
Between 15 and 180 minutes.

**Buffer Minutes** (Where: Schedule & Availability · Default: 15 · Admins only)
Time between bookings, from 0 to 60. `0` means no buffer.

> **Breaks in the day**
>
> Taking a lunch break? Make two rows on the same day, like 10 AM to 12 PM and 2 PM to 5 PM. A gap between rows is correct.

> **Duplicate times on your booking page**
>
> If two **active rows on the same day overlap**, every overlapping time appears twice and customers can book both, which can double your bookings. Review each day and make sure windows don't cross. To offer a package only at certain times, don't add an overlapping row. Use **Restrict to specific times** on the package instead.

Removing a time slot row deletes it immediately.

## Schedule overrides

Overrides change **one specific date** without touching your weekly template. Find them at the bottom of **Schedule & Availability** under **Schedule Overrides**.

1. Click **Add Override**.
2. Choose **Single Date** or **Date Range**, then pick the date or dates.
3. Choose an **Override Type**.
4. If it applies to specific times, pick the **Time Slot**. Leave it blank for all slots.
5. Optionally add a **Custom Message** shown to customers, such as "Weather hold".
6. Click **Check Affected Bookings** to see anyone already booked in that window.
7. Click **Save Override**.

| Override type | Use it to |
| --- | --- |
| Block Entire Day | Close a whole day: weather, holiday, plane maintenance, off-season |
| Block Specific Time Slots | Close only certain times |
| Reduce Capacity | Lower Max Bookings for a slot |
| Add Additional Availability | Open a time you don't normally offer, such as a sunset jump |
| Extend Hours | Offer times past your usual close for a busy day |

> **Existing bookings are not moved**
>
> Closing a day blocks **new** bookings immediately. People who already booked stay booked. Use **Check Affected Bookings** before you save, then contact those customers, reschedule them, or refund them. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

Reopening early? Find the override in **Active Overrides** and delete it. Availability returns to the booking page right away. A date range creates one override per day.

## Pricing and packages

A package is a product customers choose when booking, such as "Standard Tandem". Add-ons (handcam, outside video, photos) hang off a package.

### Create a package

1. Open **Pricing & Packages** and click **Add Package**.
2. Enter the **Package Name**, **Base Price**, and **Description**.
3. Choose which **Available Days** it runs.
4. Click **Add Add-on** for each extra, with its name and price.
5. Click **Save Configuration**.

**Package Name** (Where: Pricing & Packages · Default: New Package · Admins only)
Each package name is unique per dropzone. **Renaming a package creates a new package** rather than renaming the old one, so remove or deactivate the old one afterward.

**Base Price** (Where: Pricing & Packages · Default: 269 for a new package · Admins only)
The package price in your dropzone currency.

**Taxable** (Where: Pricing & Packages · Default: Off · Admins only)
Whether tax applies to the base price. Add-ons have their own **Taxable** checkbox. Turn on tax collection in [Dropzone settings](https://ezdzskydive.com/docs/dropzone-settings#sales-tax).

**Active** (Where: Pricing & Packages · Default: On · Admins only)
Turn off to hide a package without deleting it. Use this for seasonal products.

**Package Photo URL** (Where: Pricing & Packages · Default: Empty · Admins only)
Optional image link. Square or 16:9 works best.

**Restrict to specific times** (Where: Pricing & Packages · Default: Off · Admins only)
Limits when a package is offered. Set **From** and **Until** times. A customer only sees the package when their chosen time falls inside the window. Example: make a "Sunset Skydive" visible from 4:30 PM so a 3 PM customer sees only your regular packages and a 5 PM customer sees both.

**Display Order** (Where: Pricing & Packages · Default: Position in list · Admins only)
Lower numbers appear first.

> **Changing a booking's package later**
>
> Open the booking in the tandem bookings desk and use **Edit Package**, then **Charge Balance** or **Refund**. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

## Coupons and gift certificates

The **Coupons & Gift Certs** tab has two buttons: **+ Coupon** and **+ Gift Cert**.

| Item | Fields |
| --- | --- |
| Coupon | Code (like `SUMMER20`), Name, Discount Type (percentage, fixed amount, or comp a package), amount, Max Uses (blank is unlimited), Expires, Active |
| Gift certificate | Card Title, Type (gift card amount or package comp), amount or package, Expires, Active |

Each row has **Share**, which creates a QR code and a ready-to-print card (minimal, dark, or branded) with **Copy Link**, **Download QR**, and **Print / PDF**. Coupon links look like `/booking/{slug}?coupon=CODE`, which pre-fills the code. Customers can also type a code at checkout under **Have a coupon or gift certificate code?**

## Preview and embed

The **Preview & Embed** tab shows a live preview of your booking page. **Open in new tab** opens it full size.

### Put it on your website

1. Make sure the booking page is **Active** (see General Settings).
2. Click **Copy Embed Code**.
3. Paste it into your website's HTML where you want the booking form to appear.
4. Reload your site and book a test.

The code looks like this. Copy yours from the tab rather than retyping it, because it includes your slug and dropzone name:

```html
<!-- EZDZ Booking Widget -->
<div id="ezdz-booking-container"></div>
<script
  async
  src="https://ezdz.xyz/booking-embed.js"
  data-slug="your-slug"
  data-dropzone-name="Your Dropzone">
</script>
```

The widget sizes itself, works on phones and tablets, and shows a small "Powered by EZDZ" link. There is a matching **Gift Certificate Embed Code** for selling gift certificates from your site.

> **Test before you advertise**
>
> Before you share the link, consider placing one real booking on the cheapest slot with your own card, checking the confirmation email, then refunding it from the bookings desk. It is a real charge until you refund it. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments) and [Email setup](https://ezdzskydive.com/docs/email-setup).
