Universal Appointments and Time Reservations

About Universal Appointments and Time Reservations


This is an Odoo full-featured app to administrate, control, and improve service management workflow. The tool lets you organize flawless time reservations, control fulfillment, evaluate customer satisfaction, sale and upsell goods in almost any industry. With all options installed, the tool represents a structured e-shop for your services.

A flexible module setup allows reflecting specifics of your business or even multiple businesses. 3 core objects together help to reflect the company's workflows. These are Resource Types, Resources, and Services. Each object introduces specific settings for the flexible reservation processSet up the structure of resources and services to reflect your company's workflows. Assign specialists and equipment manually or automatically. Flexibly manage appointment duration rules.

The module has a convenient backend menu, from which the appointment managers can create a new reservation in just a few clicks. The module's single-view interface allows both booking appointments right from the calendar and navigating through the appointments

The appointment scheduler allows making a new reservation in a few clicks. It is quick and simple but with complete control over potential intersections.  

The module algorithm guarantees that only vacant time slots will be available for booking. The appointment time slots are automatically generated based on working calendars, service peculiarities, and specifics of managed businesses.  

Apply popup alarms, add success emails, and prepare SMS reminders to ensure clients will not forget or miss an appointment.

Automatically request client reviews upon completion of the reservation and see. Collect the rating and check the quality of provided services.

The module provides a convenient menu to track and analyze the provided appointments through the appointments' report view. Choose a measure for the analysis.

It is possible to let portal partners and website visitors schedule an appointment through the configurable multi-step process of checkout and confirmation ().

Customize the way the appointments wizard is seen on the website. Turn on/off optional layout elements on the website. Introduce your own titles and welcome texts. Exclude booking steps ().

Generate a sale order automatically as soon as an appointment is scheduled. The resulting sale order can be either a draft (can be changed), automatically confirmed (cannot be changed), or sent quotation (ready to accept and pay) ().

Boost revenues by upselling accessories. If configured, Odoo will show the popup with suggested products for backend managers ()/website clients () immediately after reserving a time slot.

Appointment resources might be linked with employees. This way the calendar of the employee, his/her meetings, and their own leaves will be used to generate the available time slots ().

Introduce custom fields for reservations, resource types, resources, and services (). You can place your custom fields in the backend on the appointments/resource types/resources and services cards, or make custom properties of resource types, resources, and services visible on the website ()

The app is configurable for multi-companies and for multi-website environments.

Comfortable scheduling without conflicts

Customer satisfaction and reports

Innovative appointments calendar

Custom details and reminders

 
 




Concepts and Terms


Appointment/Reservation – a core object representing an arrangement to get a particular service at a specific time and place. The main elements of a reservation are a resource, service, client,  and the reserved period.

Pre-reservation – an arrangement, that isn't yet confirmed. Usually, it is used to block a particular time slot of a specific resource. It appears after choosing a time slot and is valid until all details are confirmed or the time for the pre-reservation is out (see Pre-reservation). 

Resource type – a core object that sets the specifics of the business and stores the related to the business settings. It also keeps information about related services and resources. This way, you can distinguish one group of services and resources from the other. For example, resource types might be particular businesses you manage ('Beauty Salon', 'Dental clinic', 'Hairdressers') or you can assign different addresses of the business as resource types (see Managing Resource types).

Resource – a core object representing a facility or a person (), whose time is considered for allocation to provide a service. For example, in a language school, a classroom or a teacher may serve as a resource (see Managing Resources).

Service – a core object that defines what actually should be done. For instance, it can be a 'consultation', 'tooth surgery', 'classic hair cutting', 'car class C rent', etc (see Managing Services).

Time Requirements – time restrictions, when an appointment might be scheduled. This way you can specify the maximum and the minimum number of days before the appointment, and the time when an appointment can no longer be canceled or rescheduled. The time slots will be generated according to the time requirements (see Time Requirements).

Rounding Time – the rule to round time slots start to avoid calculating a start you do not like (see Rounding Time).

(Resource) Alias – a special type of resource that serves as an avatar for another resource. Usually, used to apply the same facility or employee for different kinds of work (resource type). Does not have its own calendar settings and responsible, and refers to the calendar and details of the prime resource instead (see Managing Resources).

Prime resource – a resource, that has one or several aliases, that use its calendar settings (see Managing Resources).

Responsible user – the user who manages and controls appointments of a particular resource; is chosen in the field 'Responsible user' of the related resource. For example, Mitchell Admin is a responsible user of the resource Hotel 5 Stars. If an employee represents a resource (), then the user of the related employee is also a responsible user. For example, our dentist Anita Oliver is both the resource and the responsible person (see Managing Resources).

Working Calendars  a working time pattern, which is assigned to employees. If an employee represents a resource (), then his/her working time is used to generate available time slots (see Resource Calendars).

Alias Working Hours/Extra Alias Calendar – an additional working calendar, which is assigned to an alias to limit the time, when an alias is available for booking. The intersections between the main resource calendar and the alias calendar will be used to generate the available time slots for an alias (see Extra Alias Calendar).

Odoo Calendar – a standard Odoo calendar, which is used for scheduling events or meetings with the delegates or among other employees in the organization (see Meetings Calendar).

Odoo Events – a meeting, registered through the Odoo standard events calendar, which, if configured, makes certain times unavailable for generating time slots (see Meetings Calendar).

Global Time offs – the time when the company doesn't work (see Resource Calendars).

Personal Time offs – the time when an employee takes a vacation/leave/day off (see Resource Calendars).

Resource allocation – the appointment distribution among the resources based on the chosen resource allocation method (see Resource Allocation).

Resource allocation method – the way/algorithm to distribute the appointments among resources. The distribution method is applied in cases where automatic resource selection is chosen. Or, when the client can't choose between the resources and selects several ones or all. You can configure and distribute resources by workload, appointment number, and order (see Resource Allocation).

Extra Resources – the additional resources to provide the service. When booking (both in the backend and the portal), the system takes into account calendars not only of the main resource but also of the additional ones. For the time slot to be available for booking, both the main and the additional resources should be free (see Extra Resources).

Extra Service Calendar – a calendar, that states the days and the time, when a service is available. The service will be available for booking at the intersection of the resource and service calendar (see Extra Calendar Restriction).

Service Duration – the time required for providing a particular service. Can be defined in hours and days (see Service Duration).

Manual Duration – the time for providing the service, which is chosen manually, during the scheduling process both in the backend and frontend (see Service Duration).

Slot Step – the step with which the timeslots are generated, allows booking the time flexibly (see Slot Step).

Checkout Period – the time required for completing the reservation, without the participation of the client. This setting allows showing the client what time he/she should finish receiving the service. At the same time, the resource will be blocked for the entire selected time (see Checkout Period).

Start&End Day Restriction – the set of days of the week and/or a set of specific dates on which the reservation cannot start/end. This way you can restrict the days when an appointment is allowed to start or end (see Start&End Day Restriction).

Rounding Time – the rule to round time slots start to avoid calculating a start you do not like (see Rounding Time).

Single View Interface - the functional interface for internal users to see and navigate through appointments and schedule new ones conveniently (see Appointments Calendar).

Scheduling wizard – a pop-up window, with functional elements, that allow selecting the details of the appointment and specifying the account details of the client (see Scheduling Appointments: Backend, Portal Control of Reservations).

Re-scheduling – is the process of changing the details of the existing appointment. It is possible to choose a different resource type, resource, service, and time slot (see Scheduling Appointments: Backend).

Appointments Numeration – the numbering logic (suffix, prefix, step, etc.) of appointments (see Appointments Numeration).

Internal user – a user who has access to the Odoo backend and its functional apps. To access the appointments, the user should also have one of the related roles assigned (see Access Rights).

Portal user () – a registered user who has access to the Odoo portal, but cannot access the Odoo backend. Can access website appointments booking page, if configured. Sees only published resource types, resources, and services (see Access Rights).

Public user () – any website visitor, who hasn't logged into Odoo. Can access website appointments booking page, if configured. Sees only published resource types, resources, and services (see Access Rights).

Backend interface – the interface introduced for internal users with one of the appointment roles assigned to see and manage the appointments and configure the elements of the scheduling process (see Scheduling Appointments: Backend, Managing Appointments).

Website interface – website page introduced for portal and public users to schedule appointments conveniently (see Website Booking Process).

Portal interface – the interface introduced for portal users to navigate through scheduled appointments conveniently. The portal users can see and manage scheduled appointments and contact the company representatives (see Portal Control of Reservations).

Appointments Alarms – the pop-ups, emails, and SMS notifications, that remind the chosen groups of users about the upcoming appointment (see Appointments Alarms).

Success Email – the email that confirms the appointment and contains the details about it. It is sent when a manager / a client () books an appointment and when an appointment is re-scheduled (see Appointments Discussion).

Rating Email – an email, to request feedback from the customer. It is sent automatically as soon as the appointment is marked as completed (see Appointments Rating).

Followers – users, that want to keep updated and receive particular kinds of notifications about a certain appointment or all appointments of a certain object (see Appointments Discussion).

External Followers – followers that don't have access to the Odoo backend. For example, our clients (see Appointments Alarms).

Internal Followers – users who have access to the Odoo backend and its functional apps, and who are added as a follower to an appointment. For example, Abigail Peterson, our appointments manager (see Appointments Alarms).

All Followers – both internal and external followers (see Appointments Alarms).

Website booking –  the scheduling process through the wizard on the appointments website page. The scheduling process is similar to the one in the backend (see Website Booking Process).

Website step – a certain level of the scheduling process, which requires making a certain choice or specifying details (see Website Booking Process).

Progress bar – a graphical control element used to visualize the progression of the scheduling process on the website (see Portal and Website: Customization & Settings).

Session duration – the time after which the client's choice on the website is cleared. This mainly relates to the first three steps of the website booking process (see 3. Choosing Service).

Pre-reservation timer – a timer that appears as soon as the time slot is chosen. It allows creating a pre-reservation on a certain time slot, so no one else can reserve it until the time is off, or the client confirms the reservation (see 4. Choosing Time).

Confirmation timer – a timer that may be configured to appear as soon as the reservation is confirmed. It allows making sure that the client uses real email/phone to book a reservation (see 6. Confirming Reservation).

Sale Order – is a document generated by the seller specifying the details about the appointment and optionally some complementary products ordered by the customer (see Universal Appointments: Sales).

Pricing method – is how the price of appointments can be calculated. It is specified per each resource type. The possible options are: for the planned duration, tracked duration, and per unit (see Configuring Pricing Methods).

Pricelist – is an object that contains rules, according to which the company prices are adapted. It may contain a discount or a rule to show the price in another currency. Pricelists may be assigned to portal users (see Prices & Pricelists).

Complementary Products – are products related to a certain service, that may also interest the customer.

Add-ons Icons

Features introduced by add-ons are marked with these signs.

Universal Appointments: Portal and Website

The optional module introduces the website booking process and lets external users schedule appointments and control reservations in the portal.

Universal Appointments: Sales

The optional free module introduces service pricing information and links appointments with sales.

Appointments: Website Sales

The optional free module includes service price lists and prices in the reservation checkout process. (+)

Universal Appointments: Custom Fields

The optional module that lets you add and show custom fields for appointments and related objects.

Universal Appointments: Custom Fields for Website and Portal

The optional free module shows custom fields on the website and portal pages (frontend).  (+)

Universal Appointments: Time Tracking

The optional module allows tracking time spent on each appointment.

Universal Appointments: HR Bridge

The optional free module that allows considering employees as appointment resources.

Universal Appointments: Gantt

The optional free extension that introduces the Odoo Enterprise Gantt view for appointments.



Appointments Management Structure


3 core objects together help to reflect the company's workflows. These are Resource Types, Resources, and Services. The layers have the following hierarchy: Resource Types > Resources > Services.

Each object introduces specific settings for the flexible reservation process.

The decision on what to consider as resource types, resources, and services is completely up to you. Such an approach lets you reflect on almost any service business.

The tool does not force you to have multiple instances for each layer. In simple cases, there might be just a single representative for each step. For example, Lawyers (Resource Type) – Attorney Chris Black (Resource) – Consultation (Service).

If there is a single option, the app will reflect that by simplifying appointment scheduling. Therefore, steps without actual choice are auto-missed. For example, Layers (Resource Type) – Consultation (Service).

Managing Resource types

Resource type is a core object that sets the specifics of the business and stores the related to the business settings. It also keeps information about related services and resources. This way, you can distinguish one group of services and resources from the other. For example, resource types might be particular businesses you manage ('Beauty Salon', 'Dental clinic', 'Hairdressers') or you can assign different addresses of the business as resource types.

Another approach is to consider a resource type as a group of particular resources. For example, if you have a car rental business, the cars may be divided into classes 'class B cars' and 'class C cars'.

Resource types contain main settings of how to organize service provision: how to allocate resources, how to calculate appointment total price, what are time restrictions, which services are possible, etc.

To create a resource type:

1. Open the module Appointments

2. Go to the tab Resources > Resource Types

3. Click 'New'

4. Add a reference and optionally add the picture (It might also be visible on the website )

5. Choose a service method 

Assign a particular service to be chosen automatically to skip the step services ('Service is always the same for all resources and appointments') or let users choose a service from the variety of them ('Service should be selected for resources and for appointment'). For example, if you provide the cars for rent, then there may be no choice of the service and it is always a 'Car Rent'. Or you can use different types of cars as services and in this case, let the clients choose the one they want, for example, 'Premium car rent', 'Electrical rent', etc.

6. Choose the available services

Choose the services that will be associated with the resource type. One service may relate to several resource types. For example, in a Language school, the available services may be a lesson or consultation.

7. Choose a resource selection (see Resource Allocation)

Let users choose the resource ('Manual'), or automatically assign the resource ('Automatic'). For example, if you have a language school you may let clients choose the teacher or assign a teacher automatically.

8. Choose the resource allocation method (see Resource Allocation)

If you have chosen to automatically assign the resource, then choose the way the distribution will be decided. To spread the appointments equally, keeping in mind the resource duration, choose to distribute resources by the option 'Resource workload'. For example, it is useful if you have a dental clinic and want all dentists to have equal actual working time.

To spread the resources equally, based on the number of appointments, choose the option 'By appointments number'. For example, it is useful when you have a language school, where the lessons have a fixed time and you want the teachers to have an equal number of lessons.

To distribute resources on a queue basis, choose the option 'By order'. For example, it is useful if you have a car rental, and it doesn't matter which car is chosen for the appointment.

9. Choose how the total price will be calculated ((see Configuring Pricing Methods)

Choose the option 'Planned duration', when the appointment's time and the price is fixed. For example, a lesson in a language school.

Choose the option 'Tracked Duration' () if the time of the appointment may change and therefore only the price for the actual duration should be charged. For example, booking a room in a hotel with the possibility to extend the time of stay.

Choose the option 'Units', when the total price for the appointment equals the product's price. For example, a tour in a travel agency.

10. Set Time Requirements (see Time Requirements)

Set the time, at which it is possible to book an appointment. A user will not be able to book an appointment if before the appointment is left less time than is set in the line 'Reservation should be done in'. For example, allow booking a hotel room no later than 7 days before the appointment.

A user will not be able to book an appointment if the time before the appointment exceeds the time set in the line 'Reservation should not be done after'. For example, allow booking a lesson no earlier than a month before the appointment.

Set time, for which a user can cancel an appointment in the line 'Portal: Cancellation/Re-Schedule might be done in'. Set the time as 0, to forbid cancellation. For example, forbid canceling or re-scheduling a tour 15 days before the booked time.

11. Optionally, in the tab 'Settings', tick the box Calendar Events as Busy Time (see Meetings Calendar)

If the option is checked, then for periods when a responsible user has meetings (i.e., events assumed by the Odoo calendar), appointment booking will not be possible. For example, if we have a resource 'Room 5' with the teacher as a responsible user Anita Oliver, then the time, when the user has meetings will not be available for booking.

If the resource is set as Human (), then the working calendar of the employee is used to generate available time slots. And, if the option 'Calendar Events as Busy Time' is turned on, then the meetings of the employee are also considered. For example, the teacher Anita Oliver (both resource and responsible) has a meeting on Thursday at 4 pm on her calendar, that's why this time is not available for the lesson.

12. Optionally, in the tab 'Settings', tick the box Appointments Customer Rating (see Appointments Rating)

If the option is turned on, then the rating request will be sent when an appointment is marked done.

13. If you work in a multi-company environment, in the line 'Company', choose the related one (see Multicompanies & Multiwebsites)

14. Optionally, in the tab 'Notifications', select 'Success Email' and 'Rating Email' templates.

A 'Success Email' will be sent to the client as confirmation of the appointment. By default, the email includes a voucher for printing. However, you can decide whether to attach the voucher or not. Tick the option 'No vouchers in success emails' to send the Success Email without a printed voucher for all the related appointments. (see Appointments Discussion).

A 'Rating Email' will be sent to the client to get feedback after the appointment (see Appointments Rating).

15. Optionally, in the tab 'Notifications', set the default alarms (see Notifications)

Define who to notify: a responsible manager, external followers (clients), internal followers, or all followers. Keep in mind that pop-up alarms are only available for back-end users. 

16. Optionally, in the 'Description' tab, add the description to the Resource type

If the option 'Show types full details pages' () is turned on, then the description is shown on the full resource type page (the page might be edited on the website (see Portal and Website: Customization & Settings)) and in the selection of the website booking wizard (if not hidden by ticking the option 'Do not show website full description' in the tab Website on the resource type's card).

17. Optionally, in the tab 'Website', select the website, on which the resource type will be visible and optionally tick the box 'Do not show website full description' to make the description invisible on the website () (see Multicompanies & Multiwebsites).

18. Optionally, in the tab 'Sales', choose the default sales team/salesperson, that should be assigned for all the related reservations. It will be used if the default sales team/salesperson of the related resource is unassigned. In case, you leave the field empty, then the responsible person of the resource and his/her sales team are set as responsible for the sale order ((see Universal Appointments: Sales).

19. Optionally, you can cancel unpaid reservations that were scheduled from the website/portal () after the chosen amount of time (). This way, you can make sure, that the client will pay before the reservation. For that, tick the option 'Cancel Not Paid Website Reservations' in the tab 'Sales' and specify the amount of time after which the reservation will be canceled in the field 'Not Paid Period'. Keep in mind, that the generated sale order should be in the status Sent Quotation (ready to accept and pay) (see Universal Appointments: Website Sales).


If you open the resource types menu, you will find the list of the resource types. If you work in a multi-company environment, then, here you will see only the resource types related to your company or the companies selected in the systray, if you have access to several companies (see Multicompanies & Multiwebsites).

On the resource type's card, you will see the list of its services, the total number of booked appointments, the number of resources, and the rating.

Click on the three dots in the top right corner and choose 'Edit' to be redirected straight to the editing wizard. Click 'Delete' to delete the resource type. Here you can also choose the color to mark the resource type.

With the help of the search bar, you can find the resource type by the matches in the name or description and by the related resource and service.

Filter or group the resource types by way of resource distribution or by the service method to find the related ones quickly. When you group the resource types in the kanban view, you can also change the resource types settings by drag and drop.

Select multiple resource types in the list view to export, (un)archive, delete, and (un)publish () them.


If you open a Resource type, above it you can find functional buttons.

The first button is 'Appointments'. After making some appointments related to the resource type, on this button, you will see the total number of such appointments. Click on it and you will be redirected to the appointments calendar with the appointments filtered by this resource type.

The second button is 'Resources'. After creating some resources related to the resource type, on this button, you will see the number of such resources. Click on it and you will be redirected to the resource menu with the resources searched by this resource type.

If you tick the option 'Appointments Customer Rating' and receive feedback from clients, then the next button you see is the rating button, which shows the satisfaction in percentage. Click on it and you will be redirected to the menu 'Resource Types Rating', where you will see the chosen emoji and the information about it, including the client and the appointment of each rate.

If you have the module Universal Appointments: Portal and Website () installed, then on the resource type card, you also see the button 'Publish/Unpublished' to make the resource type available/unavailable for booking from the website.

Below is the created resource type, you will find a message thread, where you can discuss the resource type with colleagues, leave log notes, schedule activities, and add attachments. Follow the resource type and add the resource type followers to get the information about it, its resources, and new/rescheduled/canceled appointments timely (if you have set the 'Default Alarms' in the 'Notifications' tab for 'Internal followers' or 'All followers') (see Notifications).


Here you will find the list of resource types' examples related to different business types:  

Dental Clinic

We have 2 dental clinics in different towns and want to manage the appointments to both from one website. We can use different addresses as resource types. So, let's create two resource types for dental clinics in New York and Chicago.

Services and Resources: As we have a variety of services for a client to choose the service method is chosen as: Service should be selected for resources and for appointment.

We want to allow our clients to choose the Dentist, so the Resource selection is set as: Manual. In this case, the option chosen as the Resource Allocation Method will be applied only if several or all resources are chosen.

As the related services always take the same time to complete and the price should be taken for the fixed time, the field Calculate price for is set as: Planned Duration.

Time requirements: We want our clients to book appointments at least the day before the time of the appointment and no more than 30 days before the appointment. The client may cancel or reschedule the appointment no later than a day before the appointment.

Settings: Since we have assigned the employees as resources for these resource types, we don't want the appointment to intercross with the planned meetings of employees, so ticked the box Calendar Events as Busy Time ().

We also want to get feedback from our clients, so we turned on the Appointments Customer Rating and choose the required template in the tab Notifications.


Education

We have a language school, where several foreign languages are taught. We can use the languages as resource types. So, let's create two resource types for English and German.

Services and Resources: As we have two different services and the client can choose one of them, the service method is chosen as: Service should be selected for resources and for appointment.

We don't want to allow our clients to choose the teacher, so the Resource selection is set as: Automatic. We want the lessons to be distributed equally among our teachers and as the duration of a lesson is fixed as the Resource Allocation Method we choose: By Appointments Number.

As the related services always take the same time to complete and the price should be taken for the fixed time, the field Calculate price for is set as: Planned Duration.

Time requirements: We want our clients to book appointments at least the day before the time of the appointment and no more than 30 days before the appointment. It isn't allowed to cancel or re-schedule the lessons (0).

Settings: Since we have assigned the employees as resources for these resource types, we don't want the appointment to intercross with the planned meetings of employees, so ticked the box Calendar Events as Busy Time ().

Also, we want to get feedback from our clients, so we turned on the Appointments Customer Rating and chose the required template in the tab Notifications.


Car rent

We have a Car Rent Business, where different classes of cars are presented (A,B,C). We can use those classes as resource types. So, let's create three resource types for Car Rent: Class A, Car Rent: Class B and Car Rent: Class C.

Services and Resources: As we have only one service (Car class) and the client can't choose, the service method is chosen as: Service is always the same for all resources and appointments.

We don't want to allow our clients to choose the exact type of the car as there isn't much difference between the cars of one class, so the Resource selection is set as: Automatic. There is no difference between what car is chosen, so as the Resource Allocation Method we choose: By Order. This way, if the first car on the list is available, it will be assigned for the appointment. If it isn't available, then the second car on the list will be assigned and so on.

Although the time of rent may be different, the client should specify the exact time before booking and rent the car for particular hours, so the field Calculate price for is set as: Planned Duration.

Time requirements: We want our clients to book the appointments at least the day before the time of the appointment and no more than 90 days before the appointment. The client may cancel or reschedule the appointment no later than a day before the appointment.

Settings: As we have assigned Material as the resource for these resource types, we didn't tick the box Calendar Events as Busy Time, as Material may not have any meetings ().

Also, we want to get feedback from our clients, so we turned on the Appointments Customer Rating and chose the required template in the tab Notifications.