The full surface, in one page.
Ten features, every one with proper copy. If you've been looking for the capability matrix, this is it. Each feature is a section; click the screenshot for the full-resolution view.
A booking page that looks like your business
Every Zedule account ships with a hosted booking page at book.zedule.app/<your-slug>. Your customers see your business name, address, services, and brand color — they never see ours. Embed it on your own website if you'd rather: one <iframe>, no JavaScript framework, no cross-origin headaches.
- Hosted at book.zedule.app/<your-slug> with your brand on top
- Custom hex color for the customer-facing booking widget — match your existing brand exactly, no template constraint
- Settings → Booking Page has a Copy link button and a ready-to-paste iframe snippet (?embed=1 strips the page chrome)
- Mobile-first — designed for the phone in your customer's hand
- Cancellation links in every confirmation email — no ticket required
Your day, in one screen
Greeting, day strip, three KPIs, the schedule. That's the entire Today page. Most software gives you twelve tiles. We give you the answer to "what's happening today and what should I look at first."
- Editorial hero — italic emphasis on the visit count, live indicator on the date
- Day strip lets you flip ahead without leaving the page
- Three KPIs: upcoming, completed, no-shows. Numbers in serif so they read like figures, not chrome.
- Each appointment row carries client, service, staff, optional clinical note, and one-tap call/message + done/no-show actions
Drag-anywhere, five views, snap-to-15
Day · Week · Month · Agenda · List. Drag any event to reschedule, drag the bottom to resize, alt-drag to duplicate. Click empty space to book; click-and-drag to book with a duration. Right-click for context menus, long-press on touch. Hover the grid and a snap-target preview shows you the exact slot. Three zoom levels with sub-hour gridlines and a snap that tightens at 4×. Per-service accent colours, all-day row, mini-month picker, locale-aware time formatting, single-staff swipe on mobile, print view. There's a dedicated page for the full breakdown.
- Drag-reschedule with smooth 1-px follow + dashed snap-target ghost
- Resize by dragging the card's bottom edge (12 px touch, 8 px mouse)
- Alt-drag → duplicate; right-click → context menu (5 actions)
- Hover preview shows the slot the cursor is on, with the snap line highlighted
- Multi-resource Day · Week · Month · Agenda · per-day List
- Zoom 1×/2×/4× with 30 / 15 / 5-min ticks · keyboard shortcuts (T ←→ DWMA +−)
- Per-service colour · all-day events · mini-month picker · 9-locale i18n · print
- Mobile: single-staff swipe column · long-press menus · larger resize handle
Your client roster, on file
Every booking adds the person to your directory. Click a row to see their full appointment history. Click their phone number to dial. There's no separate CRM — that's the CRM.
- Searchable directory of every customer who's ever booked
- Per-customer history view with services, dates, and outcomes
- Tappable phone numbers (tel: links) and email addresses
- CSV export on demand — your data, no questions asked
- Clinical notes per booking — saved with the appointment, never with the person
What you offer, priced and timed
List every service you sell, with duration, price, and whether it's currently active. Reorder rows to control how customers see them on your booking page. Edit any field inline.
- Service catalog with name, duration, price, status, sort order
- In-person, video, or phone meeting modes per service
- Active/inactive toggle to seasonally hide a service without deleting it
- Drag-the-arrow reorder; customer page updates immediately
- Set a service to multi-attendee (max_concurrent > 1) for group sessions
Hours, blocks, and time off
Add every person who can take a booking. Set their hours per day. Block off vacations, training, lunches. The schedule auto-respects all of it — customers can't book when nobody's there.
- Multi-staff with per-day hours (Mon-Sun, opening + closing)
- Blocked-time list for vacations, training days, personal time
- Per-staff role permissions (owner, admin, staff)
- Each staff has their own avatar color in the Calendar Resource grid
- Active/inactive without losing the historical bookings
Email + SMS that come from you, never from us
Confirmations, cancellations, reminders — over email or SMS, on your provider account. Pick one of the five email and five SMS providers we support, paste your API key, and your customers see your domain and your sender ID. Zedule is the messenger; you are the sender of record.
- Email providers: Resend, SendGrid, Mailgun, Postmark, AWS SES
- SMS providers: Twilio, MessageBird (Bird), Vonage, Plivo, AWS SNS
- Per-event channel toggle: email + SMS, email only, SMS only, or none
- Editable templates per tenant — override any of the six lifecycle messages with your own copy and tokens
- Send-test on every provider so you verify deliverability before customers see it
- Failures show up as a banner in the dashboard; nothing fails silently
Four templates for the dashboard, any color for your booking page
The dashboard you stare at every day is one of four accent templates: indigo (neutral premium), forest (wellness, dental, clinics), rose (salons, beauty, spa), or amber (barber, fitness, trades). The customer-facing booking page is yours — pick any hex color to match your existing brand exactly.
- Four dashboard accent templates aligned to ten industry clusters
- Custom hex color on the booking widget — match your storefront brand exactly
- Light + dark mode on the dashboard — both designed, neither an afterthought
- Accent persists per-business across devices via business_profile.accent
- Custom subdomain via book.zedule.app/<your-slug> — your URL, your brand
Your customer's two-minute path
Service selection → date picker → time slot → details. Four screens, no account creation, no "download our app to confirm." The whole flow is mobile-first, keyboard-friendly, and accessible to assistive tech out of the box.
- Step 1 — service multi-select with live total + duration footer
- Step 2 — week strip + 15-min time grid that respects staff hours and existing bookings
- Step 3 — five fields (name, email, phone, optional notes) + clear Submit
- Step 4 — confirmation email with cancel link, no separate ticket system
- Works on every browser — no JavaScript framework loaded on the customer side
$100 a year. Forty-five days free.
One plan, one price. Unlimited everything. Cancel before day 46 and pay nothing. Cancel after, you keep your data — we'll export it on request, no questions.
- One plan at $100/year — unlimited staff, appointments, customers
- Forty-five days free, no credit card required to begin
- Self-serve cancellation through Stripe's billing portal — two clicks
- 60-day grace period after cancellation; data is exportable that whole time
- Per-tenant data isolation on Cloudflare D1 — your business has its own database