Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX

Shift Roster for Odoo 19 Community documentation

A guide to the shift roster: the shifts, the weekly grid, the quick assignment, the warnings, publishing, the calendar and the settings.

Documents version 1.0.0Updated Oct 23, 2026

Start here

In plain words: Who works tomorrow evening? In many shops, clinics and factories the answer is a spreadsheet, a chat group and a phone call. Shift Roster brings the planning into Odoo Community: you define your shifts (morning, afternoon, night), plan each week in a grid with one row per employee and one column per day, get warnings for too many hours or a shift on a day of time off, and publish: every employee is notified and sees their shifts in My shifts and on a calendar.
The weekly grid, the warnings before publishing and the calendar.
The weekly grid, the warnings before publishing and the calendar.
Tip: Rosters are private until you publish them: employees only see their own shifts, and only once published.

What you get

FeatureWhat it does
ShiftsTemplates with a start, an end and an unpaid break; the hours are computed, overnight shifts included.
Weekly rosterOne row per employee, one column per day: choose the shift of each day in the grid.
Quick assignmentGive a shift to several employees on the days you tick, or clear days, in one step; add all the employees of a department.
WarningsMore hours than the weekly maximum, or a shift on a day of approved time off.
One shift a dayAn employee cannot be on two rosters on the same day.
PublishEach employee is notified of their shifts; a published roster is locked until you set it back to draft.
My shifts and calendarEmployees see their own shifts; HR sees everybody on a calendar or a list.
Copy to next weekThe same roster, a week later, in one click.
PrintThe roster as a landscape PDF.
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededEmployees and Time Off (hr, hr_holidays)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_shift_roster.zip; unzip it to get the folder taqnix_shift_roster.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Shift Roster and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_shift_roster --stop-after-init

Define the shifts

In plain words: Employees → Shift roster → Shifts. Give each shift a name, the time it starts and ends, an unpaid break and a color. The hours are computed: a shift that ends before it starts is an overnight shift (22:00 to 06:00 is 8 hours).
The shifts.
The shifts.

Plan the week

In plain words: Employees → Shift roster → Weekly rosters → New. Choose the week (it always starts on a Monday) and, if you want, a department. Click Add the employees to get one row per employee, then pick the shift of each day in the grid: a day left empty is a day off.
The weekly rosters.
The weekly rosters.
A published roster: one row per employee, one column per day.
A published roster: one row per employee, one column per day.

Assign a shift quickly

In plain words: Assign a shift opens a small window: choose the shift, the employees and the days (Monday to Friday by default). Employees who are not on the roster yet are added. Leave the shift empty to clear those days.
Assigning a shift to several employees.
Assigning a shift to several employees.

Warnings

In plain words: A line turns red and the top of the roster lists the reason for each employee: more hours than the weekly maximum (48 by default, set in the company), or a shift on a day of approved time off. They are warnings: you decide.
A roster with its warnings.
A roster with its warnings.
Tip: An employee can be on only one roster a day: if you rostered them twice, Odoo tells you where.

Publish

In plain words: Publish sends each employee a notification with their shifts. From then on the roster is read-only; Set to draft reopens it. Copy to next week makes a new draft with the same shifts, a week later.

My shifts and the calendar

In plain words: Employees → Shift roster → My shifts shows an employee their own published shifts on a calendar or in a list. HR officers see everybody in Shifts calendar, with filters for today, this week, the shift or the department.
Everybody's shifts on a calendar.
Everybody's shifts on a calendar.
In plain words: Print gives the roster as a landscape PDF: the employees, the days with the shift and its times, the hours of each employee and the total.
The printed roster.
The printed roster.

Settings

In plain words: In the company (Settings → Companies → Shift roster) set the weekly maximum hours that triggers the warning. Put 0 to switch the warning off.

Who can do what

WhoCan
Every employeeSee the shifts defined, and their own shifts once the roster is published.
HR officersCreate and edit shifts and rosters, publish, copy, print, and see everything.
Other usersNo access.

Arabic and right to left

My shifts in an Arabic interface.
My shifts in an Arabic interface.

Limits

LimitDetail
WeeksA roster is a week that starts on a Monday.
One shift a dayAn employee has at most one shift on a given day; two shifts in a day are not planned.
WarningsThey inform; they never block the roster.

For developers

In plain words: Skip this chapter if you only use the module.
roster = env['taqnix.roster'].create({'date_from': '2026-10-26', 'row_ids': [(0, 0, {'employee_id': employee.id, 'shift_0': morning.id, 'shift_1': morning.id})]})
roster.row_ids.hours, roster.warning_text
roster.action_publish()          # notifies each employee
roster.action_copy_next_week()   # the same roster, a week later

Troubleshooting

ProblemWhat to do
The employee says they see nothingThe roster is not published yet, or the employee is not linked to a user.
Odoo says the employee is already on a rosterThey have a shift on that day in another roster: change it there.
I cannot edit a rosterIt is published: set it back to draft.
The time off warning does not appearOnly approved time off counts; check that it is validated.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_shift_roster. Your shifts and rosters are kept.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.