Appointments¶
The Appointments app lets customers and colleagues book time with the company: an appointment type defines who can be booked, when, for how long, and under which conditions, and each booking creates a calendar event for the provider.
Note
The app is provided by the eYssen Appointment module family (appointment and its bridge
modules). The optional features described below each require their own module, indicated in the
corresponding section.
Access rights¶
The Appointments category of the access rights offers:
User: sees and manages their own bookings;
Manager: sees all bookings, and configures appointment types and resources.
Appointment types¶
Go to to create a type. Fill in the Name, a Description shown to the customer, the Location, and the Time Zone the slots are published in.
Availability¶
The Availability tab defines when the type can be booked:
Allowed Providers: the users who can be booked for this type. Default Working Hours sets the working schedule used to compute the slots, and, under Per-provider Working Hours, a different schedule can be set for individual providers.
Required Resources: resources (rooms, equipment) that must be free for the booking to be possible.
Weekly Slots: the recurring time ranges of the week when bookings are accepted, with an optional capacity or gap override per slot.
Duration: the Min Duration (min), Max Duration (min), Duration Step (min), and Default Duration (min) a customer can choose from, and the Slot Increment (min) used to generate the proposed start times.
Buffers & Gaps: Buffer Before (min) and Buffer After (min) keep time free around a booking, and Gap Between Meetings (min) enforces a pause between two consecutive bookings.
Limits: how far ahead bookings are possible (Max Days Ahead), the Min Notice Hours before the start, the Cancel Notice Hours until which a customer may cancel, the Max Future Bookings Per Person, and the Capacity Per Slot when several people may book the same slot.
Odoo computes the free slots from the working hours, the existing bookings, the providers’ calendar events, and their leaves.
- menu
- Appointments ‣ Configuration ‣ Appointment Types
- shows
- An appointment type form on the Availability tab, with the Providers & Resources, Duration, Buffers & Gaps and Limits groups filled in, and the weekly slot lines below.
- highlight
- The "Duration" and "Limits" groups (red frame).
- data
- Type "Consultation", two providers, weekly slots Monday to Friday 09:00–17:00.
- module
- appointment
- notes
- English UI, light theme, 1440px width.
Assignment and approval¶
When several providers are allowed, the Assign Strategy decides who gets the booking: Least Assigned, Round Robin, or Random.
Enable Require Approval to hold new bookings in the Requested state until they are approved. The approval policy is either Single Approval (Manager) or All Providers Must Approve; in the latter case, each provider gets an approval line on the booking, and can approve or reject it from the booking form or from the link in the approval email.
Unconfirmed Expiry (hours) automatically cancels bookings that are never confirmed.
Questions¶
The Form tab lists the questions asked when booking. Each question has a Name, a Type (Short Text, Long Text, Number, Date, Select, Checkbox, or File), and can be marked Required. For a Select question, list the options one per line. A question can also block the booking when a given answer is given, with the Error Message shown to the customer.
The answers are stored on the booking, in its Answers tab.
Notifications¶
In the Notifications tab, select the email template used for each step: Email on Request, Email on Confirm, Email on Reject, Email on Cancel, Email on Approval Request, and Email on Waitlist Offer. An Additional email message is appended to these emails.
Event reminders send a reminder to the requester a given time before the appointment
(e.g., 1 Days), while Calendar alarms are the reminders set on the
provider’s calendar event.
Waitlist¶
Enable Waitlist in the corresponding tab to let customers queue for a fully booked slot. When a slot frees up, Odoo offers it to the first customers in the queue (Waitlist Notify Batch), who then have Waitlist Hold Minutes to confirm before the offer expires and the next customers are notified.
Visibility and restrictions¶
Visibility: Public, Unlisted (only reachable with the link), or Private.
In the Restrictions tab, Allowed Domains limits public booking to a comma-separated list of email domains.
Click Generate share link to obtain a Share URL that can be sent to customers. Regenerate invalidates the previous link.
Pricing and payment¶
A type can be free, or priced with a Pricing Mode:
Fixed: the Fixed Amount is charged per booking;
Hourly: the Hourly Rate is applied to the booked duration, rounded up to the Billing Increment (min).
Enable Payment Required to make the payment part of the booking flow. Allow Refund Until Hours defines until when a cancellation is refundable.
Bookings¶
lists all bookings, in list or calendar view. A booking records:
the Appointment Type, the Providers, and the Resources;
the Customer, or, for a public booking, the visitor’s name, email, phone, and language;
the start, the end, and the Duration (min);
the Status: Requested, Approved, Rejected, or Cancelled;
the Pricing and the payment status (Pending, Authorized, Paid, Refunded, or Failed).
Use the buttons in the header to Approve, Reject, or Cancel a booking, and, after the appointment, to Mark Show or Mark No-show. Force Approve lets a manager approve a booking that is still waiting for other providers.
An approved booking creates the calendar event of its providers, and the customer receives the confirmation email with a link to their booking.
- menu
- Appointments ‣ Bookings
- shows
- A booking form with the header buttons (Approve, Reject, Cancel, Mark Show, Mark No-show), the Booking Details, Customer, Pricing and Status groups, and the Approvals tab showing two provider lines.
- highlight
- The header buttons (red frame).
- data
- Booking for "Deco Addict", type "Consultation", state "Requested", two approval lines.
- module
- appointment
- notes
- English UI, light theme, 1440px width.
Export bookings¶
With the eYssen Appointment (Reports & Export) module (appointment_reports), appointment
managers can download the bookings from the Export menu of the application:
downloads the
appointments.csvfile, with one row per booking: name, type, start, end, duration in minutes, customer (or the visitor’s name for a public booking), amount, status, and attendance;downloads the
appointments.icscalendar file, which can be imported in any calendar application. Each booking is an event titled with the appointment type and the booking name, with its location and description; approved bookings are marked as confirmed, the others as tentative.
Both files contain the 10,000 most recent bookings at most, of all statuses. The dates and times are expressed in UTC.
Tip
The export can be narrowed by adding parameters to the address of the download, e.g.,
/appointment/export/csv?state=approved&date_from=2026-01-01&date_to=2026-03-31. The available
parameters are type_id (the ID of an appointment type), state (requested, approved,
rejected, or cancelled), date_from, and date_to (YYYY-MM-DD).
Note
To install the module, enable Reports under Appointment in . The menu and the downloads are reserved for the users with the Manager access level of the Appointments app.
Passes¶
The Appointment (Passes) (appointment_pass) module sells packages of appointments. In
, define a pass with a Name, a
Mode (a number of Occurrences or a balance of minutes), the
Validity (days), and the Price.
lists the passes owned by customers, with their Occurrences Remaining or Minutes Remaining and the Valid Until date. When a customer with a valid pass books an appointment, the booking is redeemed against the pass instead of being paid.
Coupons and gift cards¶
The Appointment (Payment) (appointment_payment) module adds discounts to the booking flow:
: a coupon has a Code, a Discount Type (percentage or fixed amount), an Amount, a validity period, and a Max Uses limit (
0= unlimited).: a gift card has a Code, a Balance, and an expiry date. The balance is deducted from the amount due of the booking.
The remaining Amount Due is then paid with one of the configured payment providers.
Other integrations¶
Project: with the Appointment (Project Tasks) (
appointment_project) module, select a Target Project on the appointment type to create a task there when a booking is approved.eLearning: with the Appointment (eLearning) (
appointment_elearning) module, select a Course to Enroll on the appointment type to enroll the customer in that course when the booking is approved.CRM: see Create leads from bookings.