Time off

Odoo’s Time Off application serves as a centralized hub for all time-off-related information. This application manages requests, balances, allocations, approvals, and reports.

Users can request time off, and see an overview of their requests and time off balances. Managers can allocate time off to individuals, teams, or the whole company, and approve time off requests.

Detailed reports can be run to see how much time off (and what kinds of time off) are being used, accrual plans can be created, and public holidays can be set.

Note

Be advised, only users with specific access rights can see all aspects of the Time Off app.

All users can access the My Time Off and Overview sections of the Time Off app. All other sections require specific access rights.

To better understand how access rights affect the Time Off app, refer to the New employees document, specifically the section about configuring the Work Information tab.

See also

Access rights

Configuration

In order to allocate time off to employees, and for employees to request and use their time off, the various time off types must be configured first, then allocated to employees (if allocation is required).

Accrual plans

Some time off is earned through an accrual plan, meaning that for every specified amount of time an employee works (hour, day, week, etc), they earn or accrue a specified amount of time off.

Example

If an employee accrues a vacation day for every week they work, they would earn 0.2 vacation days for each hour they work. At the end of a forty hour work week, they would earn one whole vacation day (8 hours).

Create accrual plan

To create a new accrual plan, navigate to Time Off app ‣ Configuration ‣ Accrual Plans. Then, click the New button, which reveals a blank accrual plan form.

Enter the following information on the form:

  • Name: Enter the accrual plan name.

  • Accrued Gain Time: Select when the employee begins to accrue time off, either At the start of the accrual period or At the end of the accrual period.

  • Carry-Over Time: Select when the employee received previously earned time. The options are:

    • At the start of the year: Select this if the accrual rolls over on January 1 of the upcoming year.

    • At the allocation date: Select this if the accrual rolls over as soon as time is allocated to the employee.

    • Other: Select this option if neither of the other two options are applicable. When selected, a Carry-Over Date field appears. Select the date using the two drop-down menus, one for the day and one for the month.

  • Based on worked time: Enable this option if time off accrual is determined by the employee’s worked hours. Days not considered as worked time do not contribute to the accrual plan in Odoo.

    Example

    An employee is granted time off from an accrual plan configured to accrue one day of vacation for every five days worked. The accrual plan is based on the employee’s worked time (the Based on worked time checkbox is ticked), which means they only earn vacation time for the five weekdays they work, not the entire seven day week period.

    The employee works standard 40-hour weeks. According to the accrual plan, they should earn four vacation days per month.

    The employee takes five days off using a time off type with the Kind of Time Off set as an Absence. Because the plan grants vacation only for worked time, those five days do not count toward accrual.

    As a result, the employee accrues only three vacation days that month instead of four.

  • Milestone Transition: This field is only visible after a minimum of two rules have been configured on the accrual plan. This selection determines when employees move up to a new milestone. If they qualify to change milestones in the middle of a pay period, decide whether the employee changes milestones Immediately or After this accrual’s period (after the current pay period).

  • Company: This field only appears in a multi-company database. Using the drop-down menu, select the company the accrual plan applies to. If left blank, the accrual plan is available for all companies.

An accrual plan form with all the entries filled out.
Rules

Rules must be created in order for employees to accrue time off from the accrual plan.

To create a new rule, click the New Milestone button in the gray Rules section, and a Create Milestone modal form appears.

Fill out the following fields on the form:

  • Employee accrue: Select the parameters for earned time off in this section.

    First, select either Days or Hours for the increment of accrued time using the drop-down menu.

    Next, enter the numerical amount of the selected parameter that is accrued. The numerical format is X.XXXX, so that partial days or hours can also be configured.

    Last, select how often the time is accrued using the drop-down menu. The default options are Hourly, Daily, Weekly, Twice a month, Monthly, Twice a year, and Yearly.

    Depending on which option is selected, additional fields may appear. For example, if Twice a month is selected, two additional fields appear, to specify the two days of each month the milestone occurs.

  • Cap accrued time: If there is a maximum amount of time the employee can accrue with this plan, enable this option.

    When enabled, two additional fields appear to the right of the checkbox. The second field is populated with either Days or Hours, matching the selection made in the Employee Accrue section.

    Enter a numerical value in the first field to specify the maximum amount of time that can be accrued, in the specified increments.

  • Start Accruing: Enter the number and value of the time period that must pass before the employee starts to accumulate time off.

    Use the first field to enter a numerical value, then set the second field to the desired time increment (either Days, Months, or Years).

  • Carry over: select how any unused time off is handled. The options are either:

    • None. Accrued time reset to 0: Any unused time off is lost.

    • All accrued time carried over: All unused time off is rolled over to the next calendar year.

    • Carry over with a maximum: Unused time off is rolled over to the next calendar year, but there is a cap. An Up to field appears if this is selected.

      Enter the maximum number of Hours or Days that can roll over to the following year. The presented time increment is determined by how the Employee Accrue section is configured.

      Any time off beyond this parameter is lost.

Important

If the Carry over field is set to None. Accrued time reset to 0, that rule overrides the Carry-Over Time set on the accrual plan.

If a company creates an accrual plan, granting employees time off At the start of the accrual period (i.e., the beginning of the year), and sets the Carry-Over Time on the accrual plan to At the start of the year, it allows unused vacation time to rollover to the following year.

Then, the company adds rules to the accrual plan, allocating five days of vacation, annually, on the first of the year (one week of vacation allocated on January 1st).

If the Carry over field is set to None. Accrual time reset to 0 on the Create Milestone pop-up for, any unused vacation time does not carry over, even though on the Accrual Plan form, the Carry-Over Time is set to At the start of the year.

The carry over set on the rule takes precedence over the carry over set on the accrual plan form.

  • Milestone cap: Tick this checkbox to set a limit on the total amount of time that can be accrued every calendar year. Enter the total maximum number of Hours or Days the employee can accrue during a year. The presented time increment is determined by how the Employee Accrue section is configured.

    If the Carry over field is set to None. Accrued time reset to 0, the Milestone cap field does not appear.

  • Carry Over Validity: Tick this checkbox to set a time-limit on how long the employee has to use any rolled over time off. First, set the second field to the desired time-period using the drop-down menu, either Days or Months.

    Next, enter the maximum number of Days or Months the employee has to use their rolled over time off. After that time period passes, any unused rolled over time will expire.

    If the Carry over field is set to None. Accrued time reset to 0, the Carry Over Validity field does not appear.

Once the form is completed, click Save & Close to save the Create Milestone form, and close the modal, or click Save & New to save the form and create another milestone. Add as many milestones as desired.

Example

This milestone form is configured so the employee earns five days a year. They start to earn this time yearly, on January 1st.

The employee can never accrue more than 120 days of time off with this accrual plan. Anytime they have 120 days banked, they will stop accruing more time off.

Additionally, they can roll over up to 100 days of time off to the next year, and they have three months to use that rollover time.

Note that due to the Capped accrued time of 120 days, the employee cannot carry over any time off that exceeds 120 days in total.

A milestone form with all the entries filled out.

Public holidays

Since holidays vary from country to country, or even city to city, there are no public holidays preconfigured in Odoo. To observe public or national holidays, and provide extra days off as holidays to employees, configure the observed public holidays in Odoo.

It is important to configure public holidays in Odoo, so employees are aware of the days they have off, and do not request time off on days that are already set as a public holiday (non-working days).

Additionally, all public holidays configured in the Time Off app are also reflected in any app that uses working schedules, such as Calendar, Planning, Manufacturing, and more.

Due to Odoo’s integration with other apps that use working schedules, it is considered best practice to ensure all public holidays are configured.

Create public holidays

To create a public holiday, navigate to Time Off app ‣ Configuration ‣ Public Holidays. All currently configured public holidays appear in a default list view.

Click the New button, and a new line appears at the bottom of the list.

Enter the following information on that new line:

  • Name: Enter the name of the holiday.

  • Company: If in a multi-company database, the current company populates this field by default. It is not possible to edit this field.

    Note

    The Company field is hidden, by default. To view this field, click the (settings adjusts) icon in the top-right corner of the list, to the far-right of the column titles, and activate the Company selection from the drop-down menu that appears.

  • Start Date: Using the date and time picker, select the date and time the holiday starts, then click Apply. By default, this field is configured for the current date. The start time is set according to the start time for the company (according to the working schedules). If the user’s computer is set to a different time zone, the start time is adjusted accordingly, compared to the company’s time zone.

  • End Date: Using the date and time picker, select the date and time the holiday ends, then click Apply. By default, this field is configured for the current date, and the time is set to the end time for the company (according to the working schedules). If the user’s computer is set to a different time zone, the start time is adjusted accordingly, compared to the company’s time zone.

    Example

    A company located in San Francisco operates from 9:00 AM - 6:00 PM, with an eight hour work day and one hour lunch break.

    For a user in New York, with a computer time zone set to Eastern Standard Time, a created public holiday displays a start time of 12:00 PM - 9:00 PM, accounting for the three hour time zone difference.

    Similarly, a user located in Los Angeles, with a computer time zone set to Pacific Standard Time, sees a public holiday time as 9:00 AM - 6:00 PM.

  • Working Hours: If the holiday should only apply to employees who have a specific set of working hours, select the working hours from the drop-down menu. If left blank, the holiday applies to all employees.

  • Work Entry Type: If using the Payroll app, this field defines how the work entries for the holiday appear. Select the work entry type from the drop-down menu.

The list of public holidays in the configuration menu.

Mandatory days

Some companies have special days where specific departments, or the entire staff, is required to be present, and time off is not allowed on those specific days.

These types of days are called mandatory days in Odoo. These can be configured to be company-wide, or department specific. When configured, employees in the specified department or company are unable to submit time off requests for these mandatory days.

Create mandatory days

No mandatory days are configured in Odoo by default. To create a mandatory day, navigate to Time Off app ‣ Configuration ‣ Mandatory Days.

Click the New button in the top-left corner, and a blank line appears in the list.

Enter the following information on that new line:

  • Name: Enter the name of the mandatory day.

  • Company: If in a multi-company database, this field is visible, and the current company populates this field, by default. Using the drop-down menu, select the company the mandatory day is for.

  • Departments: This column is hidden by default. First, click the (additional options) icon in the top-right corner, next to Color, and then tick the checkbox next to Departments to reveal that column.

    Next, select the desired departments from the drop-down menu. Multiple departments can be selected, and there is no limit to the amount of departments that can be added.

    If this field is left blank, the mandatory day applies to the entire company.

  • Start Date: Using the calendar picker, select the date the mandatory day starts.

  • End Date: Using the calendar picker, select the date the mandatory day ends. If creating a single mandatory day, the end date should be the same as the start date.

  • Color: If desired, select a color from the available presented options. If no color is desired, select the No color option, represented by a white box with. The selected color appears on the main Time Off app dashboard, in both the calendar and in the legend.

The Mandatory Days section with three configured days.

Overview

To view a color-coded schedule of the user’s time off, and/or of the team managed by them, navigate to Time Off app ‣ Overview. This presents a calendar with the default filter of My Team, in a quarterly (three month) view.

To change the time period displayed, click on the (time period) button to reveal a drop-down menu. Then, select either Today, This week, This month, This year, or a custom time period, to present the calendar in that corresponding view.

To navigate forward or backward in time, in the selected increment (Month, Week, etc.), click the (left arrow) or (right arrow) buttons to move either forward or backward in that specified amount of time. For example, if Month is selected, the arrows adjust the view by one month.

To return to a view containing the current day, click the (Focus Today) button at any time.

Team members are listed alphabetically on individual lines, and their requested time off, regardless of the status (validated or to approve), is visible on the calendar.

Each employee is color-coded. The employee’s color is selected at random, and does not correspond to the type of time off they requested.

The status of the time off is represented by the color detail of the request, either appearing solid (validated) or striped (to approve).

The number of days or hours requested is written on the request (if there is enough space).

At the bottom of the calendar, in the Total line, a bar graph shows how many people are projected to be out on any given day. The number on each individual bar represents the number of employees out for those highlighted days.

Click on a time off entry to view the details for the specific time off entry. The total number of hours or days are listed, along with the start and end time of the time off. To view the details of the time off request in a modal, click the View button.

Overview of the user's team, with time off requests shown.