Managing absences

This screen and the Contract menu can be seen by any user that has active contract settings. The Absence screen can be seen by any user that has the absence permission.

Email notification

When managing absences, emails including the type of absence/comment/action/username/date-range will be sent out.

Notification emails will be sent to the user and the supervisor (if one is configured). The supervisor is a setting in the users profile.

Set up your teams

To ensure the workflow functions properly, you need to set up your teams in a specific way.

Create a team for each department or organisational unit.

  • Add the supervisor as the team lead.
  • Add each subordinate as a team lead.

This setup is required because otherwise the supervisor might not be able to see the user in the dropdown menu.

Approval workflow

There are 2 phases that each absence has to go through:

  • New absence: moves the absence to the Requested list and sends an email to the supervisor to ask for confirmation
    • Approval by the supervisor: the absence will be moved to the Approved list and an email is sent to the user to confirm the approval
    • Rejection by the supervisor: the absence will be moved back to the New list and an email is sent to the user to inform about the rejection
  • Approved absences: can still be deleted, until they are locked

How absences affect expected working time

Kimai supports two calculation modes for absences:

  1. Absences count as worked time and compensate the expected working time for the day (default)
  2. Absences reduce the expected working time for the day

The selected mode affects how total expected hours and worked hours are calculated for each month. This can be relevant for payroll, overtime, and PTO calculations.

You can configure the mode individually for each absence type in System → Settings, depending on your company rules and industry requirements.

1. Absences compensate expected working time for the day

In this mode, every scheduled working day keeps its full expected number of hours.

This means Kimai assumes that time must be accounted for on every working day, regardless of whether the employee is working, on vacation, sick, or absent due to a public holiday.

The absence duration is then counted as worked time and offsets the expected time.

Example: if a working day has 8 expected hours, a full vacation day will count as 8 worked hours.

2. Absences reduce the expected working time for the day

In this mode, an absence reduces the expected working time for the affected day by the duration of the absence.

Example: if a working day has 8 expected hours, a full vacation day reduces the expected working time for that day to 0 hours, and the worked time will also be 0 hours.

Absence types

Please read the chapter “How calculations work” to understand how your Working times are calculated.

Holiday / Vacation

When you are eligible for holidays, meaning that your contract settings have a value for Holidays per year, you can schedule your vacations here.

  • Vacation days need to be approved
  • Vacation days can be full days or half-days
  • You can book ranges of holidays
  • Days without expected working hours will be ignored when creating vacations

Sickness

Everyone can enter sickness entries.

  • Sickness days are auto-approved
  • Sickness days can be entered as date-range
  • Sickness entries will always account for the (remaining) daily working time
  • If you have already entered working-time the same day, sickness will fill up the remaining open time
  • There are no “half-day” entries available, because a half-day of sickness means, that there needs to at least one time-entry with 50% of the expected working-time. Example:
    • The expected working-time for the day is 8h
    • The users entered a timesheet of 4h
    • The user now adds a sickness entry: this will fill up the remaining 4h

My child is sick

Use the drop-down next to the “Report sickness” button and select the Sickness of a relative category.

Time-Off

PTO (personal time-off) entries are for informational purpose, they do NOT influence your actual workimg time by themselves.

  • Time-Off needs to be approved
  • Kimai reduces your working time account for that period, because you do not record working-time during your PTO

Other absences

Please add everything that does not fit the other categories in Other absences.

  • The type Other absences needs to be approved
  • Can be a date range or a duration

Parental leave

Parental leaves always cover a date-range of full days.

Unpaid holidays

Unpaid holidays cover a date-range of full days.

Absence calendar

The absence calendar is a monthly report at Report → Absence calendar. It shows one row per user and one column per day of the selected month, so you can see at a glance who is absent and when.

Absence calendar

Typical use cases are planning team capacity, checking whether a requested vacation collides with another team member, or getting an overview of the current month before approving new requests.

Permissions

The permission absence is required to open the report. With that permission alone, you only see your own row.

To see the absences of other users, you need one of these permissions:

  • view_other_absence by default set for the Teamlead role
  • view_team_absence this can be safely assigned to the normal User role

Both permissions unlock the same rows in this report and additionally show the team dropdown. The difference: only with view_other_absence the usernames become links to the absence screen of that user, as it gives access to other features as well.

Which users are shown

  • Without one of the above permissions, only your own row is shown
  • With one of them, you see all members of your own teams
  • Admins see all users, including users that are not assigned to any team
  • Deactivated users and system accounts are never shown

By default, only users with an approved absence in the selected month are listed. Use the chevron button next to the filter to toggle the rows of users without absences. Showing all users turns the report from an absence calendar into an availability calendar.

If you select a team from the dropdown, all members of that team are shown right away, no matter whether they have absences in that period. The toggle works the same way and lets you reduce the list to members with absence entries again.

What the calendar shows

  • Only approved absences are displayed - requested and rejected entries are not part of this report
  • Each absence type has its own color and icon, hover a day to see the type as tooltip
  • Public holidays of the user are highlighted with their own color and icon
  • Days that are not working days for that user (for example weekends or days without expected working time) are shown in a different shade

Creating absences for next year

You can always only select absences for the currently selected year. If you want to create absence requests in advance for next year, you have to change the selected year by:

  • clicking on the year dropdown and selecting the correct entry
  • clicking on the button to move to the next year

Carry over absences into the new year

While this video talks about your time balance, the workflow is the same.

  • Switch to the next year
  • Go to “Manual bookings: Holiday”
  • Open it and click “Create”
    • Select the 01. January and
    • Enter the remaining days from the previous year
    • Enter a comment like “Remaining vacations from previous year”
    • Save

Switch back to the previous year and remember to lock the entire year.

Read more about manual bookings in the Working times chapter.

Settings

Settings for Absences can be found under “Employment contract”.

You can configure these at System → Settings.

  • Absence: Comment is a mandatory field — Whether users have to enter a comment with their absence requests
  • Allow half days for holidays — Whether users can request half days of vacation. Turn it off if you only agree to full vacation days
  • Allow time entries only for days for which expected hours are defined in the employment contract — Prevents timesheets on days without expected working hours, e.g. a user working Monday to Thursday cannot record time on Fridays. The permission workdays_override_timesheet allows to bypass this validation
  • Only count entries of the selected project as working time — If a project is selected, only timesheets of this project are used to calculate the actual working time and all other timesheets are ignored for the employment contract. Leave it empty to count all timesheets
  • Public holidays — The service used by the import dialog in the public holiday administration. Yasumi is the recommended default, use Google only if Yasumi does not return any results for your country or region
  • Count as expected hours: Public holiday — When enabled, a public holiday counts as worked hours towards the expected daily hours. When disabled, the expected hours for that day are set to 0
  • Count as expected hours: Sickness — When enabled, a sickness fills up the remaining hours of the day until the expected duration is reached. When disabled, it reduces the remaining expected hours of that day instead
  • Count as expected hours: Absence — Applies to the absence type Other. When enabled, the configured absence duration counts as worked hours. When disabled, it reduces the expected hours by the same duration
  • Count as expected hours: Holiday — Applies to vacation. When enabled, the vacation counts as worked hours towards the expected daily hours. When disabled, it reduces the expected hours by the duration of the vacation

The four Count as expected hours settings control the absence calculation mode and can be configured individually for every absence type. Please note that the labels use the internal absence type names: Holiday means vacation, Public holiday means a day from the public holiday administration and Absence means the absence type Other. The absence type Time-Off has no setting, because it never influences the working time calculation.

Permissions

Name Description
absence View absences, e.g. the Absence screen at Employment contract > Absence or the Absence calendar
edit_own_absence Edit the own absences
edit_other_absence Edit other users absences
delete_own_absence Delete the own absence entries
delete_other_absence Delete other users absence entries
view_team_absence Users can see all team members in the Absence calendar report
view_other_absence Allows to switch the user in the Absence screen. Works like view_team_absence in the Absence calendar. Influences the visibility of absences in the calendar.
approve_own_absence Approve own absence requests
approve_other_absence Approve absence requests of team members (or whose supervisor is not set)
approval_other_absence Request an approval on behalf of another user
  • Working times – Contract management and working times
  • Public holiday – Configure public holidays for your employees with working contracts.
Top