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.
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
| Option | Use Case | Setup |
|---|---|---|
| Full Payment | Collect full fee before appointment | Set Amount = service price. Require payment before confirm |
| Deposit | Collect deposit, remaining paid later | Set Amount = 20% of price. Collect remaining at appointment |
| Free Booking | No booking fee | Disable "Require Payment". Useful for internal meetings |
| Pay at Venue | Customer pays on arrival | Disable payment. Add note "Payment due at appointment" |
| Cancellation Fee | Charge fee for late cancellation | Set 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
| Industry | Appointment Type | Setup |
|---|---|---|
| Healthcare | Doctor Consultation (30 min) | Require patient info. Sync with medical records. Send pre-visit forms |
| Beauty/Spa | Haircut (45 min), Massage (60 min) | Show staff portfolio. Require deposit. Send preparation tips |
| Education | Tutoring Session (60 min) | Recurring appointments. Zoom integration. Send homework before session |
| Real Estate | Property Viewing (30 min) | Attach property details. Location on map. Require ID verification |
| Legal | Legal Consultation (60 min) | Require case summary. NDA signing. Full payment upfront |
| Fitness | Personal 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
| Issue | Cause | Solution |
|---|---|---|
| No slots available | Working hours not set or all slots booked | Check staff working hours. Increase max bookings per day |
| Calendar not syncing | Google Calendar not authorized | Re-authorize Google account. Check sync settings |
| Payment failed | Invalid card or gateway error | Check payment provider settings. Test with test card |
| Email not sent | Email server not configured | Configure SMTP in Settings → Email Servers |
| Double booking | 2-way sync not enabled | Enable 2-way sync with Google Calendar |
| Customer can't reschedule | Reschedule link expired or disabled | Check 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.