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.


Hotel

We have a small hostel, where there are two types of rooms: Single room and Double room. We can use room types as resource types. So, let's create two resource types for Single room and Double room.

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

We want to allow our clients to choose the room (with or without balcony), 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 client may extend the duration of the stay, and the price should be taken for the exact time which may not be final at the moment of booking, the field Calculate price for is set as: Tracked Duration.

Time requirements: We want our clients to book the appointments at least the week before the time of the appointment and no more than 90 days before the appointment. It is allowed to cancel or re-schedule the room no later than a week before the appointment.

Settings: As we have assigned the 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 ().

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.


Travel agency

We have a travel agency, where the tours to various destinations can be booked. We can use the destinations as Resource types. So, let's create some resource types, for example Turkey and UAE.

Services and Resources: As we have various tours as 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 want to allow our clients to choose the resource, 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 15 days before the time of the appointment and no more than 365 days before the appointment. It is allowed to cancel or re-schedule the tour no later than 15 days before.

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 don't want to get feedback from our clients through email as we have our own form on the website for that, so we turned off the Appointments Customer Rating.

Managing Resources

Resource is a core object that represents a facility or a person, whose time is considered for allocation to provide a service.

In some business models, the resource may be represented by a certain specialist: for example, 'Dentist John Brown', 'Hairdresser Anna Green'. In other companies it might be a piece of particular equipment or facility: for example, 'Mercedes A1231' for the Car rental business, 'Room 12' for a Hotel.

In resource settings, you can define available days, timetables and time off, responsible users, etc.

To create a resource:

1. Open the module Appointments

2. Go to the tab Resources > Resources (or click on the 'Resources' tab from the Resource Type's card and click 'Create')

3. Click 'New'

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

5*. Choose the resource kind 

Resource kind can be either human () or material. The setting influences the way the working hours are applied. When choosing 'Human', then the working hours of a particular employee are taken into consideration. In the case of material, you can set a particular calendar with set working hours.

6. Choose the type

The field allows linking the resource with a particular resource type. The field is filled automatically when a resource is created from the resource type's card.

7. Choose or create working hours for the resource (see Resource Calendars)  

Slots are generated according to configured resource business calendars. Each resource has its own calendar and time offs: it is impossible to schedule appointments for non-working hours. For example, when we choose a Human as a resource, the calendar of the employee is taken into consideration to calculate the available time slots (). The calendar of our dentist Anita Oliver is Standard 40 hours/week. To make the resource available the whole day (for example, a hotel room) you will need a 24/7 Non-Stop Calendar (see Resource Calendars).

8. Optionally, select the responsible person

It is extremely important to set the user, responsible for the resource, as it affects many aspects. In particular:

  • Set Default Alarms to notify about related appointments responsible for the user of the appointment (see Notifications). 

  • The user with the access rights 'Only Own' will only be able to observe resources in which he/she is a responsible manager or which do not have such managers at all (see Access Rights).

  • When you choose the Employee as a resource, the field 'Responsible person' is filled automatically (). In this case, the employee's calendar will be considered for generating available time slots (see Universal Appointments: HR Bridge).

  • If on the related Resource Type, you tick the option 'Calendar Events as Busy Time', then the time with the events related to the responsible user will not be available for booking.

For example, if the English teacher Doris Cole is set as a responsible person for the resource Room 5, then, we can set the notifications, so only Doris would receive them. Also, as we have ticked the option 'Calendar Events as Busy Time', her meetings are taken into consideration to generate the available time slots for English lessons with the teacher.

9. Optionally, add 'Extra managers', that will be able to see and update the related resource. Unlike followers of the resource, they will be able not only to see the related appointments but also to schedule them

10. Optionally, write the location of the resource

It will be shown in the confirmation voucher. If the location of the service isn't stated, then the location of the resource will be written.

11. Optionally, choose the person who will receive a copy of the client success email (see Appointments Discussion)

If assigned, the success email would be also sent to those partners as a copy of the client success email.

12. In the 'Description' tab, add the description of the module.

If the option 'Show resources full details pages' () is turned on, then the description is shown on the full resource 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's card).

13. Optionally, in the tab 'Website', select the website, on which the resource 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).

14. Optionally, in the tab 'Sales', choose the default sales team/salesperson, that should be assigned for all the related reservations. In case, you leave the field empty, then the module will use the default sales team/person of the related resource type. If left empty in both places, then the responsible person of the resource and his/her sales team will be used as responsible for the sale order (​) (see Universal Appointments: Sales).


Optionally make the resource an alias for another one. This way you will be able to use the calendar of the prime resource. It is particularly useful when one of your resources provides services from different areas. Any alias resource ceases to be independent in terms of calendar settings and responsible, i.e. it only displays the prime resource. Aliases cannot have an associated employee, but they can be of the Human type (if the add-on Universal Appointments: HR Bridge is installed). We can't create two stand-alone human resources () for a single employee, as then the already booked slots of one will not be taken into consideration while booking slots for another one. For example, Doris Cole (a human resource) is both a hairdresser and a teacher.

When generating slots for aliases, the working calendar of the main resource and its employment are taken into account. This way, one real object can be used in different places, but a single calendar will be generated for it. For example, we have two resource types 'Swimming lane for one' and 'Swimming lane for a team', which require the same resource 'Lane 1'. We can't use the same resource with 2 different resource types and can't create 2 resources as we only have 1 lane. So, we create an alias 'Lane for swimming', which refers to the working calendar ('Standard 40 hours/week') and employment of the resource 'Lane 1'. This way, when the resource 'Lane 1' is occupied, the resource 'Lane for swimming' is also unavailable, and vice versa.

While creating a resource, as soon as you choose the prime resource, the fields 'Working hours' and 'Responsible' are removed to avoid confusion. At the same time, the field 'Alias working hours' is added.

Optionally, you can add the extra working calendar to the alias in the field 'Alias working hours'. Then, this calendar will be used to generate the time slots, when an alias is booked. In order, for a time slot to be shown, the related time should be available in both: the calendar of the main resource and the calendar of the alias. For example, we have a hairdresser Doris Cole with a working calendar of 40 hours/week, who can also work part-time as a teacher on Monday and Friday. So, we have added the working calendar with the time Monday and Friday to her alias 'Teacher Doris Cole'. Then, when her lessons are booked, managers and clients see the available timeslots only on Monday and Friday (see Extra Alias Calendar).

Please, take into account that an alias cannot be available when the main resource is unavailable, even if this time is specified in the alias calendar. Only, the time intersections are used to generate the available time slots for an alias. For example, the main resource 'Hairdresser Doris Cole' should have her working hours on Monday and Friday with the related time specified, so managers and clients could book the lessons from her alias 'Teacher Doris Cole' on these days (see Extra Alias Calendar).

The prime resource (employee (), equipment) can have several aliases with different settings. Alias requires configuring its own resource type, services, descriptions, and other settings (for example, sales settings). The prime resource 'Doris Cole' is used for the resource type 'Beauty salon' and provides only the services related to hair cutting/dying. The alias 'Doris Cole' is used for the resource type 'Language school' and provides only the services related to teaching.

To turn the resource into an alias, just start creating or editing a resource, and in the field 'This resource is only an alias for', below the title, choose the prime resource.

You can archive/publish an alias without doing the same with the prime resource and vice versa. If the prime resource is archived/has ceased to be public, its aliases will still be available in the backend and on the website (). The aliases will continue using the calendar and will consider the busyness of the main resource. However, it is recommended to avoid archiving the prime resource and unpublish it instead to prevent any inconsistent behavior.

If you choose the alias as an extra resource, then, during the calculation of the time slots, it will be replaced by the prime resource (see Extra Resources). For example, 'Room 303' is an alias for the resource 'Room'. When choosing the service 'Rent', in the scheduling wizard, we see the note that an extra resource 'Room' is required. After scheduling, in the field 'Extra resource', the resource 'Room' is shown.

Aliases allow you to use the same resource to provide different services in completely different areas, while taking into account the working hours and employment (meetings, time-offs, etc.) of the prime resource.

Once you open the resource menu, you will find the list of the resources. On the resource's card, you will see the related resource type, the list of its services, the working hours, the total number of booked appointments, the rating, and a photo of the responsible user.

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. Here you can also choose the color to mark the resource.

With the help of the search bar, you can find the resource by the matches in name, description, type, responsible user, working hours, and related employee and service.

Filter resources to see only aliases or prime ones, by their kind or group the resources by resource type, responsible user, employee, resource kind, and working calendar. When you group the resources in the kanban view, you can change the resources settings simply by drag and drop.

When you search by resource in the calendar or filter the appointments in the calendar in the right navigation interface, you may see more reservations, than, when you search/filter only by the resource type. The appointments of the resource aliases are also shown. For example, if you select the resource type 'Dentist' you may not see any reservations, but if you select a particular dentist 'Anita Oliver', you may see the appointments of the resource alias 'Assistant' (Resource type 'Hospital').

When you filter the appointments by the resource alias, you will see only the appointments of the alias and not of its prime resource.

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


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

The first button shows the number of appointments created, that relate to this resource. The number also includes the reservations where this resource is an additional one (see Extra Resources). Click on it, and you will be redirected to the appointments calendar with the appointments filtered by the resource and related resource type.

If the resource is of the type 'Material', then the second button is 'Own Leaves'. If you click on the button, you can create the resource time off, so the resource will not be available for a certain time.

If you tick the option 'Appointments Customer Rating' on the related resource type card and receive feedback from the clients, then on the resource's card you also see the button with the rating related to this resource. Click on it to see the detailed information about the rating.

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

 

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

Dental clinic

For a dental clinic, we want to have dentists as resources. So, we have chosen the resource kind as Human ().

Then we have selected the related resource type and services.

We chose a particular employee whose working calendar will be taken into consideration while calculating available time slots (Standard 40 hours/week).

The field 'Responsible' was filled automatically with the same user, as it is the Employee responsible for providing related services.

Then, optionally we could add the address, but it was already stated as a Resource type.

We didn't assign any users to receive a copy of the client's confirmation email.


Education

For language school, we want to have teachers as resources. So, we have chosen the resource kind as Human ().

Then we have selected the related resource type and services.

We chose a particular employee whose working calendar will be taken into consideration while calculating available time slots (Standard 40 hours/week).

The field 'Responsible' was filled automatically with the same user, as it is the Employee responsible for providing related services.

One of the employees works also in another sphere of our business, and the related resource already exists. So, we have created an alias to that resource to make sure that the appointments won't be scheduled at the same time twice.

We didn't assign any users to receive a copy of the client's confirmation email.


Car rent

For car rent, we want to have cars as resources. So, we have chosen the resource kind as Material.

Then we have selected the related resource type. As on the resource type's card we stated that the service is always the same, here we can't choose it.

We chose a working calendar as 24/7, as the car is rented on a daily basis, so all day should be available.

We have stated the responsible employee for providing related services. 

We didn't assign any user to receive a copy of the client's confirmation email.


Hotel

For hotel, we want to have the options with/without balcony as resources. So, we have chosen the resource kind as Material.

Then we have selected the related resource type. As on the resource type's card we stated that the service is always the same, here we can't choose it.

We chose a working calendar as 24/7, as the rooms are booked on a daily basis, so they should be available all day.

We have stated the responsible employee for providing related services. 

We didn't assign any user to receive a copy of the client's confirmation email.


Travel agency

For a travel agency, we want to have placement options as resources. So, we have chosen the resource kind as Material.

Then we have selected the related resource type and services.

We chose a working calendar as 24/7 as the tours are booked on a daily basis.

We don't state the responsible employee for providing related services. 

We assigned a user to receive a copy of the client's confirmation email.


Managing Services

Service – is 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.

Services are not equal to Odoo products, but they are linked to each other to manage pricing details. Each service should have a related product assigned.

Services regulate the time settings of appointments (how long should it take and when it can be started) and they also may further restrict the time available for booking.

On the service card, you can also state the goods, which might be suggested as complementaries as the time slot is selected.

To create a service:

1. Open the module Appointments

2. Go to the tab Resources > Services (or start writing a service name in the field 'Available Services' on the Resource type's or Resource's card and click 'Create')

3. Click 'New'

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

5. Set the appointment default duration (It can be set in hours or days) (see Service Duration)

The slot generation algorithm takes into account the service duration. Available time slots have a duration depending on a chosen service. For example, if the default duration is an hour, then the available slots will be 8:00, 9:00, 10:00, etc.

6. Optionally, write the location of the service

It will be shown in the confirmation voucher. If the location of the service isn't stated, then the location of the resource will be written.

7. Choose a related product

The field allows the creation of a link between a product and a service. It allows you to use standard Odoo, for example, to manage the pricing details. For example, for the service 'Lesson' you can create a product with the same title and set the pricing information. 

If you don't need to calculate the price of the service, then it is possible to use the same product for all the services.

8. Choose complementary products

After reserving a time slot by the manager from the backend (or when a client finishes scheduling an appointment ) a pop-up with the complementary products will be shown. The pop-up allows both to add one / a few complementaries or to miss the step if suggested products are not required. For example, for a hotel room, you can choose 'Breakfast' and 'Excursions' as suggested products.

9. Optionally, in the field 'Slot Step', choose the step for the time slots (see Slot Step)

The Slots Step field allows the generation of time slots flexibly, including allowing overlapping ones. This way, you can set the step with which time slots will be created. You can choose the slot step for both services in days and hours. For example, if we reserve service with a duration of an hour and the step of the service is set as 0:30 min, then the generated slots will look the following way: 09:00-10:00; 09:30-10:30; 10:00-11:00, 10:30-11:30. After booking the time slot 9:30-10:30, the time slots 09:00-10:00 and 10:00-11:00 will be unavailable for further booking. It might be useful in a beauty salon with an unloaded schedule.

10. Optionally, in the field 'Start round', define how the appointment start time should be rounded (see Rounding Time)

Define how the appointment start time should be rounded. To avoid the calculation of unlikable start time. For example, an hour-long lesson starting at 12:23 is hardly good. To solve the problem, you can simply set up rounding for an hour (other available options are 5, 10, 30 minutes; 2 hours; midnight, or midday tomorrow).

11. Optionally, specify the Checkout period (see Checkout Period)

Specify 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 (the time for providing the service and the checkout period). For example, the room is reserved from 14:00 01.08 to 12:00 10.08 (10 days), where the start round is set as 14:00, and the checkout period is set as - 02:00 hours (14-2=12; that is, 12:00 - checkout time). At the same time, in the backend, the resource 'Room' is reserved for the service 'Rent' from 14:00 01.08 to 14:00 10.08 (i.e. full time).

12. Optionally, for the services with daily duration, set the Start/End day Restriction (see Start&End Day Restriction)

As you switch to the daily default duration of service, two extra fields are shown: Start Day restriction & End Day restriction. Each of the fields represents a rule, that keeps the information about the set of days of the week and/or a set of specific dates on which the reservation cannot start/end. For example, you can specify some special weekends or holidays.

13. Optionally, tick the box 'Allow manual duration', so the duration of the service can be chosen manually (see Service Duration)

Choose the duration of an appointment, while booking, and only after that, the available time slots will be generated for the chosen time. For example, a car might be rented for a different period of time, so it should be possible to choose the duration manually.

14. If you work in a multi-company environment, then you can choose the related service company (see Multicompanies & Multiwebsites).

15. Optionally, in the 'Extra Calendar Restriction' field, set an additional calendar of the service (see Extra Calendar Restriction).

If selected, then the intersection of the resource and service calendar will be taken into account when calculating the available slots. For example: if the English lesson is available: on Monday from 10 am to 2 pm; and the teacher (resource) is available: on Monday from 8 am to 12 pm; then the available time for booking the lesson will be Monday from 10 am to 12 pm.

16. Optionally, choose the additional resources to provide the service (see Extra Resources)

On the service card, it is possible to specify the additional resources to provide the service. Then, when booking (both in the backend and in the portal), the system will take into account calendars not only of the main resource but also of the additional ones. In order, for the time slot to be available for booking, both the main and the additional resources should be free. For example, in our language school, we have human resources (teachers). For the service 'Lesson', also another resource is required – 'Room'. When the room and/or teacher is busy, it isn't possible to book a lesson.

17. In the tab 'Description' add the description of the service.

If the option 'Show services full details pages' () is turned on, then the description is shown on the full-service 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 service's card).

18. Optionally, in the tab 'Website', select the website on which the service will be visible and optionally tick the box 'Do not show website full description' to make the description invisible on the website ().

Once you open the services menu, you will find the list of the services. On the service card, you will see the linked-to-the-service product and 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 service. Here you can also choose the color to mark the resource.

With the help of the search bar, you can find the services by the matches in name, description, and by related product.

Add custom filters and groupings to find related services quickly. Group the services (for example, by resource) in the kanban view, and change the settings simply by dragging and dropping.

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

If you tick the option 'Appointments Customer Rating' on the related resource type card and receive feedback from the clients, then above the service's card you also see the button with the rating related to this service. Click on it to see the detailed information about the rating.

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

 

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

Dental Clinic

For dental clinic, we have created several services and specified their details.

We set the default duration of each service as: 1 hour for Tooth Stopping and 2 hours for Surgery.

Then, we chose the related product to each service to manage pricing details.

We have added products Teeth cleaning and Professional Tooth Paste as complementary products to the Tooth Stopping, that could be offered to the clients while booking.

We also set the Start Round as: 00:30 for Tooth Stopping and 01:00 for Surgery, to make sure that the time of start looks good. For example, instead of 14:12 to have 14:30 (Tooth Stopping) and 15:00 (Surgery).

We set the slot step as 01:00 for Tooth Stopping and 02:00 for Surgery, so the generated time slots will be equal the duration of the service.

We have added the Extra Calendar Restriction (Standard 20 hours/week) for the service Tooth Stopping as the clinic provides this service only in the morning.

We have added 2 extra resources to Tooth Stopping (a room and an assistant) and 1 extra resource for the surgery (a room).

And, we didn’t turn on the option Allow Manual Duration, as the time spent on the resource is fixed.


Education

For language school, we have created several services and specified their details.

We have set the default duration for each service as: 00:45 minutes (option 'hours').

Then, we chose the related product to each service to manage pricing details.

We didn't add complementary products, that could be offered to the clients while booking.

Also, we set the Start Round as: 01:00 for Lesson and 00:15 for Consultation, to make sure that the time of start looks good. For example, instead of 14:40 to have 15:00 (Lesson) and 14:45 (Consultation).

We set the Slot Step as 01:00 for Lesson and 00:15 for Consultation, so the clients could book the time slots flexibly.

We didn't add Extra Calendar Restriction to fully rely on the related resource's calendar.

We have added an extra resource (a room) to the services.

We added the checkout period as 00:15 minutes to Lesson, so the teachers had a break between lessons. However, it wasn't necessary in this case, as the start round for the service is set as 01:00 and the lesson takes 00:45 min.

And, we didn’t turn on the option Allow Manual Duration, as the time spent on the resource is fixed.


Car Rent

For car rent, we have created several services and specified their details.

We set the default duration of each service as: 1 day.

Then, we chose the related product to each service to manage pricing details.

We didn't add complementary products, that could be offered to the clients while booking.

The Slot Step is set as 1 day, so the generated time slots will be generated with the step of 1 day.

As the Start Time of the daily service, we have set 00:00, which means that we count days starting from 00:00 of the day of rent.

The Checkout Period is set as 2:00 hours, so the clients should return the car not at 00:00, but at 22:00, although the car will be booked for the whole period.

We didn't add Extra Calendar Restriction to fully rely on the related resource's calendar.

Although the weekend might be included in the booking. It isn't allowed to start/end booking during the weekend. So, we created a rule and specified the days of the week, when the reservation cannot start and end.

We also turned on the option Allow Manual Duration, as a client can rent the car for various number of days. A client can rent a car for a period from 1 to 5 days. The multiple for days is 1, so it is possible to rent the car for 1,2,3,4,5 days.


Hotel

For hotel, we have created a single service and specified its details.

We set the default duration of each service as: 1 day.

Then, we chose the related product to the service to manage pricing details.

We have added products Breakfast and Excursions as complementary products, that could be offered to the clients while booking.

The Slot Step is set as 1 day, so the generated time slots will be generated with the step of 1 day.

As the Start Time of the daily service, we have set 14:00, which means that we count days starting from 14:00 of the day of booking.

The Checkout Period is set as 2:00 hours as we need the time to clean the room for the next guests. So the clients should move out at 12:00.

We didn't add Extra Calendar Restriction to fully rely on the related resource's calendar.

We also turned on the option Allow Manual Duration, as a client can book the room for various number of days. A client can book a room for a period from 1 to 365 days. The multiple for days is 1, so it is possible to book the room for any number of days within the limit.