v 8.0 v 9.0 v 10.0 v 11.0 v 12.0 Third Party 5370
Download for v 12.0 Deploy on Odoo.sh
Required Apps Employees (hr)
Leaves (hr_holidays)
Project (project)
Included Dependencies
Lines of code 4469
Technical Name hr_employee_time_clock
Also available in version v 13.0 v 11.0 v 10.0 v 9.0 v 8.0
You bought this module and need support? Click here!
Required Apps Employees (hr)
Leaves (hr_holidays)
Project (project)
Included Dependencies
Lines of code 4469
Technical Name hr_employee_time_clock
Also available in version v 13.0 v 11.0 v 10.0 v 9.0 v 8.0

Employee Time Clock

Tracking employees' over- and undertime with ease

by Bytebrand Outsourcing AG

 Help Mail   Bugs   Request new Features
Employee Time Clock calculates over- and undertime for each employee and allows employees to sign in or sign out with a mobile app or with a QR code at company's entrance.

Once you install the module, you'll see addional tab on the emloyees' timesheet pages called Overtime Analysis. On this tab you can observe:

  • Employee's "duty hours" which represent how much time one should spend working per day
  • Duty hours are assigned to employee based on his contract/schedule, which should be defined in Odoo
  • Time spent in the office (calcucalted based on the check in/out records)
  • Saldo time per day
  • Running over/under-time
(Go to Attendances -> My current attendance sheet)

Includes iPhone/iPad apps for signing in and leave requests!


  • Calculates "duty hours" based on individual employee contracts
  • Allows to import public holidays from a CSV/XLS files
  • Includes two iOS apps:
    • one for employees to sign in/out, track their over- and undertimes, request leaves
    • and another for you to use as a sign in terminal at your company's entrance

How it works

The module adds a new data type called duty hours, which is the baseline for all calcualtions. Duty hours are calculated based on the time schedule assigned to an employee/contract and therefore can be configured on a daily basis. Whenever an employee gets an approved leave, duty hours for those days are set to 0.

Once you have a time schedule set up for an employee, his working hours are tracked using sign in/out timestamps. Each employee can use one of these methods to sign in/out:

  • Sign in/out to your Odoo instance
  • Sign in/out from our iPhone app
  • Sign in/out at the company's entrance using our QR code scanning iPhone/iPad app (see below)

Odoo Time Clock (iPad & iPhone)

Allows employees to sign in to Odoo using a simple QR code, printed on a card


  • Allows to sign in to Odoo using personal QR code
  • Displays company-wide announcement upon sign in if defined
  • Allows to order lunch (if Lunch module installed) upon sign in
  • Free for up to 3 users

How to make a QR code

To allow employees use your sign in system you'd need to:

  • export employee IDs;
  • convert IDs into QR codes;
  • print out QR codes and hand them out to your employees.
Export employee IDs

Follow below steps to export each employees' ID.

  • Open Odoo's Employees page and switch to the list view.
  • Select all employees and press Action -> Export
  • Select Export all data and pick info fields that you want to put on the sticker with QR code
  • Important: make sure you also picked ID field, because it is used to generate QR codes
  • Select desired export format (doesn't make big difference), press Export and save the file on your PC
Convert IDs into QR codes

Online HERMA tool will allow you to import employees' information that we exported in the previous step and generate a printable PDF with everything, including QR codes. We made a quick video tutorial for you, check it out!

Let's go through creating stickers with QR codes step-by-step.

  • Go to HERMA tool using the link above
  • Select any preferrable design template (we will go with the Address labels, design 10)
  • Remove unneeded labels by selecting them and hitting Delete
  • Click on the Mail merge button and upload previously exported file
  • Now select needed fields and press Add fields
  • Now select "Set up barcode/QR code" checkbox and press the little QR code button next to the ID field to add a QR code
  • That's it, press Finish up and continue and Print preview

After above steps HERMA will generate same stickers per each employee in your CSV/XLS file automatically and you don't need to repeat the same procedure for each employee. You will be offered to download the generated PDF which later can be printed on the sticker paper.

If you wish, you can use any other online tool for making QR codes, like The QR Code Generator. But note, that QR code should have an employee ID encoded in a text format!

Setting up Odoo to work with QR codes

Before you give the QR codes to your employees make sure you have created a Timesheet for each of them for the upcoming days. You can do so by navigating to Attendances - My current attendance sheet where you can select attendance sheet date range and an employee, whom this sheet will be assgined to. Once the timesheets are created, you will have to connect Odoo Time Clock iOS app to your Odoo server.

Open the app and enter your Odoo server information, press Connect and select needed database from the list. That's it, if timesheets were created and QR codes generated correctly, you will be able to sign in with QR code and see the greetings mesasge.

Lunch ordering

If odoo module Lunch is installed and lunch items are defined, they are shown after each sign in and a user is allowed to choose his preference. The app can operate in "Lunch order" only mode. App settings:

  • Define which categories have to be shown
  • Lunch only mode: no sign in/out will be recorded. This is useful e.g. for coffee consummation book keeping.
  • You can define if the lunch screen only has to be shown for one order per day or of after each sign in.

Company info message

A company wide information message can be defined as a calender entry, tagged with "Station". The message will be shown for the entry period. The calender entry has to be created with the same user which is used for signing in to the app.

The app checks your calendar every 5 minutes, thus you might need to wait a little bit until next employee sees it upon signing in. Your company logo, if available, is displayed as well.

Odoo HR (iPhone)

App for signing in/out, tracking personal over- and undertime, requesting leaves


Sign in/out

Sign in/out history

Attendance analysis

Leave requests

Bytebrand Outsourcing AG

Bytebrand.net Facebook LinkedIn

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
There are no ratings yet!
Odoo Server Error
Thomas Brunner
on 8/16/19, 8:05 AM

Fehler: Odoo Server Error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/http.py", line 656, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python3/dist-packages/odoo/http.py", line 314, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise raise value File "/usr/lib/python3/dist-packages/odoo/http.py", line 698, in dispatch result = self._call_function(**self.params) File "/usr/lib/python3/dist-packages/odoo/http.py", line 346, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in checked_call result = self.endpoint(*a, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 941, in __call__ return self.method(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 519, in response_wrap response = f(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 962, in call_kw return self._call_kw(model, method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 954, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 749, in call_kw return _call_kw_multi(method, model, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 736, in _call_kw_multi result = method(recs, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/hr_employee_time_clock/models/hr_employee.py", line 183, in attendance_manual return self.with_context(ctx).attendance_action(next_action) File "/usr/lib/python3/dist-packages/odoo/addons/hr_employee_time_clock/models/hr_employee.py", line 209, in attendance_action self.user_id.id).attendance_action_change() File "/usr/lib/python3/dist-packages/odoo/addons/hr_employee_time_clock/models/hr_employee.py", line 265, in attendance_action_change attendance = self.env['hr.attendance'].create(vals) File "", line 2, in create File "/usr/lib/python3/dist-packages/odoo/api.py", line 430, in _model_create_single return create(self, arg) File "/usr/lib/python3/dist-packages/odoo/addons/hr_employee_time_clock/models/hr_attendance.py", line 538, in create attendance, values) File "/usr/lib/python3/dist-packages/odoo/addons/hr_employee_time_clock/models/employee_attendance_analytic.py", line 137, in recalculate_line_worktime value_check_in = values.get('check_in').split(' ')[0] AttributeError: 'datetime.datetime' object has no attribute 'split'

Re: Odoo Server Error
Marco Kundert
on 8/16/19, 9:47 AM Author

Hello Thomas, Can you contact our support at odoo@bytebrand.net? So we can take a look at how we can help you with the installation.

R12 - several errors and warnings during deploing on odoo.sh and automatic tests
on 5/21/19, 5:47 AM

more then 300 positions

Re: R12 - several errors and warnings during deploing on odoo.sh and automatic tests
Marco Kundert
on 6/6/19, 6:45 AM Author

Hello Krystian, we will contact you and try to help you out. Possibly you did something incorrect during the installation.