This module adds a new app to allow you to book resource combinations in given schedules.
Example use cases:
- Management of consultations in a clinic.
- Salesman appointments.
- Classroom and projector reservations.
- Hotel room booking.
Among the things you can do:
- Specify the type of booking, which includes a calendar of availability.
- Specify which resources can be booked together. All of them must be free to be booked.
- Place pending bookings, effectively giving permissions to someone to see the availability calendar and choose one slot.
- Partners can do that from their portals.
- If a partner has no user, he can still do the same via a tokenized URL.
- Backend users can also do that from the backend.
- Booking lifecycle with computed states.
- Automatic meeting creation and deletion.
- Automatic conflict detection.
- Deadline to block modifications.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Create bookable appointment types with availability calendars and resource combinations, then let customers or staff book slots that automatically create calendar meetings and detect conflicts.
This module adds a Resource Bookings app to Odoo for managing appointments and reservations of resources such as rooms, equipment or staff.
- Configure booking types with an availability calendar, default duration, slot interval, location, meeting URL, default reminders and tags, and a modification deadline in hours.
- Define resource combinations: sets of resources that must all be free at the same time to be booked together.
- Create bookings manually or let the system auto-assign the best available combination based on availability.
- Bookings follow a lifecycle: Pending, Scheduled, Confirmed and Canceled, computed automatically from the linked meeting and attendee confirmations.
- Scheduling a booking automatically creates a calendar event with the requester, attendees and resource users; unscheduling or canceling removes it.
- The system checks conflicts against the type calendar and resource calendars, and blocks scheduling when resources are busy or missing.
- After the modification deadline, bookings become non-modifiable except for managers.
- Customers can book from the portal, and partners without a user account can use a tokenized URL.
- Partners see a booking count and a Bookings button on their contact form.
- Activities can be linked to bookings, and completing an activity can add feedback to the booking description.
- Menus appear under Resource Bookings: Bookings, Types, Combinations and Configuration.
Depends on
Required by other modules
Menus it adds
Models and fields (12)
- res.partner · extends an existing modelresource_booking_ids (Bookings), resource_booking_count (Resource booking count)
- mail.activity · extends an existing modelbooking_id (Resource booking)
- calendar.event · extends an existing modelresource_booking_ids (Resource booking)
- resource.booking · new modelname, stop, start, state, active, type_id (Type), user_id (Organizer), duration, location, categ_ids (Tags), is_overdue, meeting_id (Meeting), partner_id (Requester), description, partner_ids (Attendees), is_modifiable, combination_id (Resources combination), requester_advice, videocall_location (Meeting URL), booking_activity_ids (Booking Activities), combination_auto_assign (Auto assigned)
- calendar.attendee · extends an existing model
- resource.calendar · extends an existing model
- resource.resource · extends an existing model
- mail.activity.type · extends an existing modelcategory
- resource.booking.type · new modelname, active, duration, location, alarm_ids (Default reminders), categ_ids (Default tags), company_id (Company), booking_ids (Bookings), booking_count, slot_duration, requester_advice, videocall_location (Meeting URL), combination_rel_ids (Available resource combinations), resource_calendar_id (Availability Calendar), combination_assignment, modifications_deadline
- mail.activity.schedule · extends an existing model
- resource.booking.combination · new modelname, active, type_count (Booking types), booking_ids (Bookings), resource_ids (Resources), type_rel_ids (Resource booking types), booking_count (Booking count), forced_calendar_id (Forced calendar)
- resource.booking.type.combination.rel · new modeltype_id (Type), sequence, type_name, combination_id (Combination)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/calendar.
terminal Installation and usage
OCA documentation · Odoo 19.0Installation
Source · Odoo 19.0To install this module, you need to install these dependencies:
- freezegun
- web_calendar_slot_duration
When someone is a manager, he will have access to Resource Bookings \> Configuration, where he will be able to configure resources, leaves and schedules. This menu is just provided as a shortcut. However, if you want to manage that stuff more comfortably:
- To manage human resources, install hr.
- To manage their leaves, install hr_holidays.
- To manage work centers, install mrp.
Configuration
Source · Odoo 19.0To let some backend user to book resources:
- Go to Settings \> Users & Companies \> Users.
- Pick or create one.
- Assign Resource Booking \> User.
To let some backend user to configure types and combinations, and to be able to modify overdue bookings:
- Go to Settings \> Users & Companies \> Users.
- Pick or create one.
- Assign Resource Booking \> Manager.
To configure one booking type:
- Go to Resource Bookings \> Types.
- Create one.
- Give it a name.
- Set the Duration, to know the time assigned to each calendar slot. It will also be the default duration for each booking, although that can be changed later if necessary.
- Set the Modifications Deadline, to forbid non-managers to alter dates of a booking when it's too late.
- Choose one Availability Calendar. No bookings will exist outside of it.
- Under Meeting defaults, you will be able to fill some values that will be used by default on calendar meetings. These will appear in the global calendar when some booking is reserved.
- Choose some Available resource combinations. All combinations in the same line must be free to be booked together; otherwise the booking will not be able to be scheduled. You can sort them.
- Pick up one Combination Assignment. If you choose Sorted, then the order of the combinations you chose will indicate the one that is selected first. Of course, it must be free to be selected.
- Save.
Usage
Source · Odoo 19.0This module installs a new app, "Resource bookings".
Bookings may involve you:
- Maybe because you requested to book something.
- Maybe because you are one of the booked resources, if a booking represents some kind of appointment.
To see which bookings involve you:
- Go to Resource Bookings \> Bookings.
- You can switch to the list view if you need to see also the pending ones.
- You can remove the "Involving me" filter if you want to see others' bookings.
To book some resources:
- Go to Resource Bookings \> Types.
- Pick the type of booking you want.
- Click on Booking Count.
- Click on a free slot.
- Fill the Requester, which may or not be yourself.
- Uncheck Auto assign and pick one Resources combination, in case the one assigned automatically isn't the one you want.
To invite someone to book a resource combination from the portal:
- Go to Resource Bookings \> Types.
- Pick the type of booking you want.
- Click on Booking Count.
- Click on the list view icon.
- Click on Create.
- Fill the Requester.
- Uncheck Auto assign and pick one Resources combination, if you want that the requester is assigned to that combination. Otherwise, leave it empty, and some free combination will be assigned automatically when the requester picks a free slot.
- Choose the duration, in case it is different from the one specified in the resource booking type.
- Click on Share \> Send.
- The requester will receive an email to select a calendar slot from his portal.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.