Odoo Website Appointment

Automated online appointment booking system with calendar integration, payment, and smart slot management

The Website Appointment module in Odoo 19 allows customers to self-book appointments online 24/7, automatically syncing with staff calendars and sending confirmations via email/SMS.

The system manages availability intelligently, auto-blocks booked slots, integrates with Google Calendar/Outlook, collects booking fees, and allows easy reschedule/cancel.

From sales consultations, medical appointments, haircuts to coaching - all service types can accept online bookings with fully automated workflows.

Odoo 19
Online Booking
Calendar Sync
Payment
Automation
Google Calendar

Key Features

Key points

  • Self-Service Booking: Customers choose date, time, staff, service on website 24/7

  • Smart Availability: Auto-display available slots based on working hours, leaves, existing appointments

  • Calendar Integration: 2-way sync with Google Calendar, Outlook, Apple Calendar

  • Payment Collection: Collect booking fee or deposit via Stripe, PayPal before confirmation

  • Auto-Confirmation: Send automatic email/SMS confirmation with calendar invite (.ics file)

  • Reschedule/Cancel: Customers self-reschedule or cancel with flexible policy

  • Resource Management: Manage rooms, equipment, staff assignment for appointments

  • Reminders: Auto-send reminder email/SMS before appointment (24h, 1h)


Booking Flow

Steps

  • 1. Customer visits website, clicks "Book Appointment". Selects service type (Sales Consultation, Medical Checkup, Haircut).

  • 2. Selects staff (or "Any Available"). System displays staff avatar, bio, rating.

  • 3. Selects date from calendar. System only shows dates with available slots, disables holidays/full days.

  • 4. Selects time slot (9:00 AM, 9:30 AM, 10:00 AM). Only shows available slots based on working hours and existing appointments.

  • 5. Fills information: Name, Email, Phone, Notes. If service requires payment, enters credit card.

  • 6. Reviews booking details, clicks Confirm. If payment required, processes payment via gateway.

  • 7. Receives confirmation email with calendar invite (.ics). Appointment auto-added to staff and customer Google Calendar.


Configure Appointment Type

Steps

  • 1. Go to Website → Configuration → Appointment Types. Click Create.

  • 2. Basic Info: Name (Sales Consultation), Duration (30 minutes), Category (Sales).

  • 3. Availability: Choose working hours (Mon-Fri 9AM-5PM). Set buffer time (15 min before/after). Max bookings per day (8).

  • 4. Staff Assignment: Select staff who can handle this appointment. Enable "Allow customer to choose staff" or auto-assign.

  • 5. Location: Office address, Zoom link, or Phone call. Auto-added to calendar invite.

  • 6. Payment: Enable "Require Payment". Choose amount ($50) or percentage (20% deposit). Select payment provider (Stripe).

  • 7. Confirmation: Customize email template. Add instructions, preparation checklist. Enable SMS reminder.

  • 8. Cancellation Policy: Allow cancel up to 24h before. Refund policy (full/partial/no refund).


Google Calendar Integration

Steps

  • 1. Go to Settings → General Settings → Integrations → Google Calendar. Click Configure.

  • 2. Authorize: Click "Connect Google Account". Login with staff Google account. Grant calendar permissions.

  • 3. Sync Settings: Choose calendar to sync (Work, Personal). Enable 2-way sync (Odoo ↔ Google).

  • 4. Conflict Detection: Enable "Block slots with existing events". If staff has meeting in Google Calendar, that slot becomes unavailable.

  • 5. Auto-Create Events: When appointment booked, auto-create event in Google Calendar with title, description, attendees.

  • 6. Update Sync: If appointment rescheduled/cancelled in Odoo, auto-update/delete event in Google Calendar.

  • 7. Test: Book test appointment, verify event appears in Google Calendar. Create event in Google Calendar, verify slot blocked in Odoo.


Availability Management

Key points

  • Working Hours: Set working hours per staff (Mon-Fri 9-5, Sat 10-2). System only shows slots within working hours.

  • Time Off: Staff requests time off in HR module. Appointments auto-block on leave days.

  • Buffer Time: Set buffer before/after appointment (15 min) for staff prep/wrap up.

  • Slot Duration: Customize slot duration (15/30/60 min). Can set different duration for different appointment types.

  • Max Bookings: Limit bookings per day/week to avoid overload. Example: max 8 consultations per day.

  • Advance Booking: Set minimum (24h) and maximum (30 days) advance booking window.

  • Same-Day Booking: Enable/disable same-day booking. If disabled, customers must book at least 1 day ahead.


Payment & Pricing

Payment Options

OptionUse CaseSetup
Full PaymentCollect full fee before appointmentSet Amount = service price. Require payment before confirm
DepositCollect deposit, remaining paid laterSet Amount = 20% of price. Collect remaining at appointment
Free BookingNo booking feeDisable "Require Payment". Useful for internal meetings
Pay at VenueCustomer pays on arrivalDisable payment. Add note "Payment due at appointment"
Cancellation FeeCharge fee for late cancellationSet cancellation policy. Charge fee if cancel < 24h

Email & SMS Automation

Key points

  • Confirmation Email: Sent immediately after booking. Includes appointment details, calendar invite, location, preparation instructions.

  • Reminder Email: Sent 24h before appointment. Includes reschedule/cancel link. Enable in Appointment Type settings.

  • SMS Reminder: Sent 1h before appointment. Short message with time, location. Requires SMS credits.

  • Reschedule Notification: Sent when appointment rescheduled. Includes new date/time.

  • Cancellation Confirmation: Sent when appointment cancelled. Includes refund info if applicable.

  • Follow-up Email: Sent after appointment. Request feedback, offer next appointment.


Reschedule & Cancellation

Steps

  • 1. Customer receives confirmation email with "Reschedule" and "Cancel" links.

  • 2. Reschedule: Click link, choose new date/time from available slots. Confirm reschedule. Receive new confirmation email.

  • 3. Cancellation: Click link, confirm cancel. If within cancellation window (>24h), full refund. If late (<24h), no refund or partial refund.

  • 4. Admin Reschedule: Staff can reschedule from backend. Send notification to customer.

  • 5. No-Show: If customer doesn't show up, staff marks "No-Show". No refund, may charge no-show fee.

  • 6. Refund Process: If eligible, refund auto-processed via payment gateway. Money returns to account in 5-10 days.


Industry Use Cases

Real-World Applications

IndustryAppointment TypeSetup
HealthcareDoctor Consultation (30 min)Require patient info. Sync with medical records. Send pre-visit forms
Beauty/SpaHaircut (45 min), Massage (60 min)Show staff portfolio. Require deposit. Send preparation tips
EducationTutoring Session (60 min)Recurring appointments. Zoom integration. Send homework before session
Real EstateProperty Viewing (30 min)Attach property details. Location on map. Require ID verification
LegalLegal Consultation (60 min)Require case summary. NDA signing. Full payment upfront
FitnessPersonal Training (45 min)Package booking (10 sessions). Track attendance. Send workout plan

Optimize Booking Rate

Key points

  • Reduce Friction: Minimize form fields (Name, Email, Phone only). Pre-fill info for logged-in users.

  • Show Availability: Display "Next available: Tomorrow 2PM" prominently. Create urgency.

  • Staff Profiles: Add photos, bios, specialties. Let customers choose preferred staff.

  • Social Proof: Show "15 people booked this week". Display reviews/ratings.

  • Mobile-First: 70% bookings from mobile. Ensure calendar picker works well on mobile.

  • Instant Confirmation: Confirm immediately, don't make customer wait for approval.

  • Flexible Rescheduling: Make it easy to reschedule. Reduces no-shows.

  • Reminders: Send 24h and 1h reminders. Reduces no-shows by 30-40%.


Reporting & Analytics

Key points

  • Booking Dashboard: Go to Appointments → Reporting. View total bookings, revenue, no-show rate.

  • Staff Performance: Bookings per staff, average rating, revenue generated.

  • Peak Times: Identify busiest days/hours. Optimize staff scheduling.

  • Cancellation Analysis: Track cancellation rate, reasons. Adjust policy if needed.

  • Revenue Tracking: Total revenue from appointments. Break down by service type.

  • Customer Insights: Repeat booking rate, average time between appointments.


Troubleshooting

Common Issues

IssueCauseSolution
No slots availableWorking hours not set or all slots bookedCheck staff working hours. Increase max bookings per day
Calendar not syncingGoogle Calendar not authorizedRe-authorize Google account. Check sync settings
Payment failedInvalid card or gateway errorCheck payment provider settings. Test with test card
Email not sentEmail server not configuredConfigure SMTP in Settings → Email Servers
Double booking2-way sync not enabledEnable 2-way sync with Google Calendar
Customer can't rescheduleReschedule link expired or disabledCheck appointment settings. Generate new link

FAQ

Key points

  • Can I book recurring appointments? Yes, enable "Recurring" in appointment type. Customer chooses frequency (weekly, monthly).

  • How to block specific dates? Go to Calendar → Time Off, create time off for staff. Or create "Blocked" appointment type.

  • Can I integrate with Zoom? Yes, install website_appointment_zoom module. Auto-creates Zoom meeting for appointment.

  • How to require deposit? In Appointment Type, enable "Require Payment", set amount = 20% of price.

  • Can I customize booking form? Yes, go to Appointment Type → Form Fields. Add custom fields (Address, Age, etc).

  • How to prevent no-shows? Require deposit, send reminders, have clear no-show policy.

  • Can I book for multiple people? Yes, set "Max Attendees" > 1. Useful for group classes.

  • How to track attendance? Staff marks "Attended" or "No-Show" after appointment. View report in Analytics.