Add an appointment booking calendar with deposits

Let clients see availability and book a time — optionally paying a deposit to hold it.

Time: ~30 minutes (add ~15 more if you turn on deposits) Difficulty: Intermediate Works with: Base44 / Lovable / v0

When to use this

Any service business that runs on appointments.

Before you start

  • Decide your services and how long each takes — the calendar can't offer sensible slots without durations.
  • Decide your working hours and any days you never work.
  • For deposits: a Stripe account in test mode (see the Stripe prompt) — otherwise skip that part for now.
  • Email sending should be available in your builder if you want confirmations (Base44 and Lovable include it).

The prompt

Add an appointment booking system to my site.
Outcome: a client picks a service, sees my real availability, and books a time slot.
Requirements:
- Services to book: [list services, durations and prices].
- Weekly availability I can edit: [e.g., Mon–Fri 9–5, no weekends], and the ability to block specific dates.
- Prevent double-booking, and block slots that are too soon (minimum [X hours] notice).
- Collect the client's name, email, phone and a note, then email a confirmation to both of us.
- Optional: require a [non-refundable] deposit of $X via Stripe to confirm the booking.
Must-haves: handle time zones, cancellations/reschedules, and a clear "no slots available" message. Give me a simple admin view of upcoming bookings.
Build it end to end and tell me how to test booking a slot and how to edit my availability.

Already building? Paste this into your project. Starting fresh? Open a free account with a compatible builder below.

Build it on

How we make money

What this creates

  • A booking page where visitors pick a service, then a real available time
  • An admin view of your schedule where you set availability and block times
  • Confirmation messages to both the customer and you
  • Optional deposit payment before a slot is locked

Check it worked

Paste the prompt, wait for the build to finish, then confirm these — in plain language, no technical checks needed:

  • Choosing a service shows only times that are actually free, and slot lengths match that service
  • Booking a slot removes it from what other visitors can choose
  • Both you and the customer receive a confirmation with date, time and location
  • Blocking a day in the admin view stops anyone from booking it
  • If you enabled deposits, an unpaid booking doesn't hold the slot

Something missing? That's normal — ask for it in one short follow-up message rather than re-running the whole prompt.

Next steps

Add reminders that cut no-shows

After bookings work end to end

Send an automatic reminder to the customer [24] hours before their appointment with the date, time, address and a link to reschedule or cancel. If they cancel, free the slot immediately so someone else can book it.

You'll know it worked when: A test booking produces a reminder, and cancelling from it makes the slot bookable again.

Add a waitlist for full days

Once you're regularly fully booked

When no slots are available on a chosen day, offer a waitlist: the visitor leaves their name and contact and preferred times. If a booking is cancelled, notify the first person on the waitlist automatically with a link to claim it.

You'll know it worked when: A full day offers the waitlist, and cancelling a booking notifies the first person waiting.

Protect your time with a cancellation policy

Before you rely on this for real income

Show my cancellation policy clearly at the moment of booking: [YOUR POLICY, e.g. free cancellation until 24 hours before]. Allow customers to cancel or reschedule themselves within that window, and after it show a friendly message asking them to contact me directly.

You'll know it worked when: The policy is visible before confirming, and self-service cancellation stops working inside the window.

Watch out for

  • Time zones bite. If you serve people in other countries, confirm the time shown to the customer matches the time you'd expect. Test with one booking before you announce anything.
  • Double bookings are the failure that costs you money — test by opening two browser windows and trying to book the same slot twice.
  • Don't hand-build reminders yet. Get booking solid first; reminders are a follow-up.

Platform notes

All three can build this. For deposits, pair it with the Stripe prompt. This replaces a paid booking app / Calendly for most solo businesses.

Spend fewer credits

Every builder charges you for the work its AI does — so the cheapest habit is thinking before you build. These six rules cut most of the waste, whichever platform you choose.

  1. Plan in a free chat first. Sketch the whole thing in ChatGPT, Claude or Gemini — pages, features, what each form collects, what it should look like. Thinking there is free; thinking inside a builder is billed.
  2. Start from a written prompt, not a sentence. "Make me a website" is the most expensive sentence in AI building. A complete first prompt — like the ones on this site — saves dozens of correction rounds.
  3. Don't be lazy with the details. Every detail you leave out comes back as a correction you pay for. Business name, colors, every page, every form field, what happens after someone submits — put it all in the first prompt.
  4. One change per message afterwards. "Fix the header, and the form, and the colors" produces a tangle that costs more to unpick than it saved.
  5. Stuck? Stop patching. If the same fix fails about three times, don't send a fourth correction — describe the whole section's desired end state in one fresh message instead.
  6. Start free. Upgrade when you need more. Use the free allowance to build and explore your first version. Upgrade when you need more usage or paid features, and check any connected service costs before launch.

The prompts on this page are written to do most of this work for you — that's the point of them.

Read the full guide
booking calendar appointments scheduling deposits

Last reviewed: 2026-07-27

FAQ

We use cookies to analyze traffic and track affiliate clicks. By continuing, you agree to our Privacy Policy.