Skip to content

Booking App Starter · Industry version

Photography Booking Template

Session types, date-holding deposits, and mini-session days that sell themselves — booking shaped for photographers, in code you own.

A photographer's calendar isn't office hours — it's golden-hour slots, a wedding that blocks a whole Saturday, and a mini-session day where forty families book fifteen-minute windows. This starter models sessions the way photographers sell them, and the codebase is yours.

  • 6 core entities
  • Public booking page
  • Code you own
  • Vibe + Governed modes

01 · The problem

Why a generic Booking falls short

Generic schedulers think in appointments; photographers sell sessions. A newborn session runs three hours in-studio with a fragile date window, a branding shoot is a half-day on location, and a wedding consumes the whole day plus travel. Each has its own duration, prep, deliverables, and price — flattening them into 'one-hour appointment' slots misrepresents the actual product on the very page that sells it.

The date isn't held by a calendar entry; it's held by a deposit and a contract. Photographers block prime Saturdays months out, and an inquiry without a paid retainer isn't a booking — it's a risk. A tool that confirms slots for free hands your best dates to people who ghost, while a paying client finds the date gone.

And outdoor work answers to weather and light. Sessions cluster around golden hour, which moves daily; a rained-out shoot needs a reschedule that carries the same deposit, gallery timeline, and client thread. Generic reschedule flows treat it as cancel-plus-rebook, shredding the paper trail mid-season.

02 · Data model

The data model, adapted

Everything in the base Booking starter —

servicesprovidersavailability_slotsbookingscustomersreminders

— plus the entities this industry actually runs on:

tablewhat it holds
session_typesThe packages you sell — duration, location type, deposit required, what's delivered, and the price that varies by all three.
session_depositsRetainers tied to bookings — amount, paid date, and the rule that no date is confirmed until one clears.
mini_session_eventsA date, a location, and a block of short back-to-back slots sold as one campaign — filled from a single shareable page.

03 · Screens

Modules through the industry lens

Session-type booking page

01

Clients choose a session type and see only dates that fit it — evening slots for golden-hour sessions, full free Saturdays for weddings. Each type asks its own intake questions, so the shoot brief starts at booking instead of in a follow-up thread.

Deposit-gated calendar

02

A new booking holds its date as pending; the deposit confirms it. Unpaid holds expire on a timer you set and the date goes back on sale. The calendar distinguishes pencilled from paid at a glance — which is the distinction that pays your rent.

Weather-aware rescheduling

03

A reschedule moves the session with its deposit, brief, and history intact, and offers the client dates from the same session type's availability. One rainy Saturday becomes three taps, not five apologetic emails.

04 · In practice

Workflows it models

Mini-session day sellout

01

You create a fall mini-session event — one park, one afternoon, twelve fifteen-minute slots. The event page goes out in one link; families pick a slot and pay to confirm. The day fills back-to-back with buffers you set, and the roster prints itself.

Wedding date, properly held

02

An inquiry for next June arrives. The date holds as pending while the consultation happens; the retainer invoice goes out, and payment flips the Saturday to confirmed — blocking travel time either side automatically. No spreadsheet of 'promised' dates.

Golden-hour shuffle

03

Sunset moves twenty minutes earlier by October. You shift your evening availability template once, and every unsold slot follows; booked sessions stay put, flagged if they now sit outside the window so you can nudge the clients who'd want to move.

Photographer Booking template — frequently asked questions

Can I require a deposit before a date is confirmed?

Yes — that's the default posture. Bookings hold as pending, deposits confirm them, and unpaid holds expire back to open availability on your timer. The deposit amount lives on the session type, so a wedding can demand more than a mini.

How do mini-session days work?

A mini-session event bundles a date, a location, and a run of short slots sold from one page — share the link and watch it fill. Slot length, buffers, and capacity are yours to set per event, and the day's schedule generates from the bookings.

Can clients reschedule a rained-out shoot themselves?

Within rules you set, yes — the confirmation link offers new dates from the same session type, and the deposit, intake answers, and history travel with the booking. You can also hold reschedules for approval if you'd rather confirm conditions first.

Does it handle contracts and galleries?

Contracts and gallery delivery are natural extensions to a codebase you own — link a signing service at booking, or add a delivery-link field to completed sessions. The invoicing starter's creative variant pairs well for usage licensing and final payments.

Related

Prabu Rajasekaran, Contributor
Published by Prabu Rajasekaran, Contributor

Dual7 App Starters

Build your Photographer Booking on your terms

Session types, date-holding deposits, and mini-session days that sell themselves — booking shaped for photographers, in code you own. Describe your version to start — the output is a project you own.