Resource booking

Resource booking

Technical name
Secure dependencies
Resource booking

Resource booking

Production/Stable License: AGPL-3 OCA/calendar Translate me on Weblate Try me on Runboat

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.

Table of contents


To install this module, you need to install these dependencies:

  1. freezegun
  2. 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.


To let some backend user to book resources:

  1. Go to Settings > Users & Companies > Users.
  2. Pick or create one.
  3. Assign Resource Booking > User.

To let some backend user to configure types and combinations, and to be able to modify overdue bookings:

  1. Go to Settings > Users & Companies > Users.
  2. Pick or create one.
  3. Assign Resource Booking > Manager.

To configure one booking type:

  1. Go to Resource Bookings > Types.
  2. Create one.
  3. Give it a name.
  4. 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.
  5. Set the Modifications Deadline, to forbid non-managers to alter dates of a booking when it’s too late.
  6. Choose one Availability Calendar. No bookings will exist outside of it.
  7. 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.
  8. 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.
  9. 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.
  10. Save.


This 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:

  1. Go to Resource Bookings > Bookings.
  2. You can switch to the list view if you need to see also the pending ones.
  3. You can remove the “Involving me” filter if you want to see others’ bookings.

To book some resources:

  1. Go to Resource Bookings > Types.
  2. Pick the type of booking you want.
  3. Click on Booking Count.
  4. Click on a free slot.
  5. Fill the Requester, which may or not be yourself.
  6. 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:

  1. Go to Resource Bookings > Types.
  2. Pick the type of booking you want.
  3. Click on Booking Count.
  4. Click on the list view icon.
  5. Click on Create.
  6. Fill the Requester.
  7. 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.
  8. Choose the duration, in case it is different from the one specified in the resource booking type.
  9. Click on Share > Send.
  10. The requester will receive an email to select a calendar slot from his portal.

Known issues / Roadmap

  • Allow combination auto-assignment based on least used combination.
  • Allow customer to choose combination.
  • Some error messages would be a bit more helpful if they specify the schedule impossibility reason, but that should be done without affecting performance.
  • Optimize _calendar_event_busy_intervals() to make it work in batch.

Changelog (2023-08-28)


  • Bookings can now span more than one calendar day. (#77)

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • Tecnativa


This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:


This module is part of the OCA/calendar project on GitHub.

You are welcome to contribute. To learn how please visit

0.0 / 5.0
based on 0 ratings

Python dependencies

Package Version Secured
freezegun 0.3.15
lxml 4.6.1
pytz 2019.3
python_dateutil 2.9.0.post0

Available languages

Language % translated
Spanish / Español
French / Français
French / Français