Attendance Management

time logging

How to use Attendance Management

Video tutorials and webinars for Easy Redmine
What is Attendance
Types of view
Attendance settings
Roles and permissions
Approving of attendance for subordinates
How to setup an attendance calendar on the homepage
Synchronize Attendance with other systems
How to set attendance day limits for individual users
How to display autocomplete field with attendance status of users
Online/offline status of a user
Corner situations


What is Attendance

This Easy Redmine plugin will help you to professionalize your attendance monitoring. Monitor vacations, home-office, day-offs, sick leaves or simply time in office in your Redmine.

  • Users plan their vacation, users log time in work - easily via one button - start / stop. Users log sick days or home offices.

Everything easily via module from their personal dashboard.

  • System administrators are notified about planned vacations, home-offices or sick days via e-mail.

  • While logging to the particular day, the user just chooses the time period and activity.

  • Administrators, managers have perfect stats about vacations and sick days as well as worked time.

  • Or have it as a list with a possibility of export.


Types of view

When you go to More: Attendance, you can switch between 4 basic types of view of attendance records as follows:

  • Calendar - attendance records are displayed per days, weeks or months in a calendar view

  • List - attendance records are displayed in a list, which can be filtered and columns may be added/removed as per your needs

  • Report - attendance records are displayed per selected user and time interval in a report view

  • Detailed report - attendance records are displayed in a detailed table encompassing all users and their hourly attendance values per days, weeks, months, quarters or years, which you can easily switch between


Upgrade your project management

Get next-level Redmine features that adapt to your needs and bring you perfect overview.

Attendance settings

In More » Attendance » Attendance settings, you can set up all working time calendarsattendance categories, and attendance settings.

I. All working time calendars

The working calendar can also be edited directly from the Administration.

You can either choose from existing calendars or you can add a new custom one on the right. You can name the calendar, set when work starts and ends, set working hours per day, working days in a week, whether the calendar is the default one, and you can import holidays via an ICS file if needed. Please note that default starting/ending time of work, as well as working hours per day, have a direct impact on which data will be pre-filled automatically in the window for signing arrival/departure, so it can ease your work a bit. Of course, all the data can be manually edited for each attendance record separately.

When logging an attendance record, you may either insert the from-to time manually (if enabled by the category settings) or automatically by choosing a portion of the day, which might be: all day (=from start to end of your working time as per your calendar), morning (=Work starts at + the number of working hours / 2) or afternoon (=Work ends at - the number of working hours / 2).

Once your calendar is created you can edit it even further, add working exceptions and edit working hours for only some days.

II. Attendance categories

In Attendance settings, also attendance categories can be created, edited or deleted. To create a new category, just click on the "New value" button on the right. To edit a category, click on its name. To delete it, just use the "Delete" button with trash icon on the right of each item. To rearrange the order of categories as they appear in the list, use the "Reorder" button on the left of each item.

When creating a new category, such as Vacation, there are some settings to be configured, such as:

  • Name - Fill in the name for this category
  • Select color scheme - Choose color scheme for this category as it appears in the calendar
  • Notice mail - Which e-mail address will receive notification when time is logged under this category
  • At work? - Choose whether this category means working hours or non-working hours
  • System activity (not available for users) - This checkbox refers to an activity that is used for operations using REST API, such as importing activities from an external system. The activity is included in purchased licenses. The activity appears only at the necessary locations, otherwise, its state is hidden.
  • Enter hours as - Choose between automatic/manual range of time interval
  • Default value - This category will be preselected by default when logging attendance
  • Approval required - Do attendance records in this category require approval from the superior worker?
  • Without logging time - No logging this time on any project
  • Also log time to project - Select a project the logged time will also appear on. Please note that you have to be a member of such a project to see its related attendance records. This setting is sensitive to the settings of the project. Make sure that you never disable the activity on the given project - you won't be able to approve attendance in that case.

By the way, when "Approval required" checkbox ticked, any added vacation by the worker will be subject to approval. This change does not affect already existing vacation entries. To approve or deny vacation request, go to More » Attendance » List and filter out what you want to approve or deny. In this case, the user filled in he wants a vacation on a specific day. Click on it with the right mouse button and choose Reject, or Approve. The worker can see if his vacation was approved or denied, or when it waits for approval. If an attendance record requires approval, it is saved as unapproved. If additional changes are made to an already approved attendance record in arrival, departure, user, or activity, it automatically returns to an unapproved status, requiring a new approval.

III. How to set up office IP to separate office and home office time

If your users can also work from home, you can keep track of from where they are working, easily by setting the office IP. When a user logs in in the morning, the system automatically logs his attendance with the default attendance which is usually Office.

This is how you can set the IP of your office, so if the user logs in from another location, the attendance will log him in as "Home office".

Office IP range

Here you fill in your office IP ( you can find out what IP you got on this page or by simply writing a search in google " What is my IP" google will tell you.

Activity in the range

Here you choose which activity will be assigned to the user who logs in in the office.

Activity outside of range

Here you will choose which activity will be assigned when a user logs in, for example at home.

Round time

You can allow logged attendance time to be rounded up. If you put a number 15 there, for example, means that if the user logs in at 9:05 the system will log him in as if he came at 9:15. The same comes with departure. The time between 11,46pm – 11,59pm is automatically rounded to 11,59pm because 0,00am is already the time of the next day.


Roles and permissions

The permissions for Attendance can be set up in More » Administration » Roles and permissions (see below).


Approving of attendance for subordinates

  1. Activate plugin Org structures (More -> Administration -> Plugins -> Other -> Easy - organisation structure).
  2. Create the structure of users

  3. Modify roles and permissions for users who can approve attendance for subordinates

  4. Prepare filters for a quick view of attendance entries waiting for approval

Connection with other plugins

  1. Org Structures - creating of structure of users to approve their attendance
  2. Meeting Manager - visibility of out of office activities of the user when planning a meeting


How to setup an attendance calendar on the homepage

By default, the attendance calendar is available in More: Attendance: Calendar. To add attendance calendar on your personalised homepage, go down on the page and click on the following button. Then choose the box where you would add the Attendance module and select Attendance from the list of available modules as shown below.

In the next step, configure your attendance module. You can change basic attributes, filters, list options, chart options, calendar options, report options etc.

When configured, save the page by clicking on the green button on the top. Now, you should see the module on your homepage. Depending on how did you set it up, it might look variously like the below example.

To add Attendance module on a homepage for all or selected users in bulk, you must create a template of My dashboard first by going to More: Administration: dashboard customisation: My dashboard: Templates overview: New template. More information can be found in this tutorial. Afterward, go to User's account: Edit: My dashboard and apply the created template on this user's homepage (only Administrator has permission to change homepages of other users).


Synchronize Attendance with other systems

Examples of use:

  • gathering data from arrival/departure monitoring devices
  • reporting attendance to external systems

Documentation of Easy Swagger (Easy Redmine API) is here.

Here is a case study of how attendance can be synchronized to a biometric logging system:


How to set attendance day limits for individual users

You can set daily limits for attendance categories that represent time off work (such as vacation or sick) for individual users independently. This can be done in More: Users: select a user: go to Working time tab: scroll down to Attendance days limits as illustrated below. Here you find some fields to enter days per activity per 1 year. For example, vacation 20 means the user has 20 days of vacation per year, analogically it applies for sick days. Accumulated days for vacation/sick are calculated automatically after a year-end and that's why they should not be filled in manually by a user. This value represents an amount of unexpended leave (remaining days) which passes to the next year.

How to display autocomplete field with attendance status of users

When you browse through an autocomplete field of users (such as Assignee), you can watch their attendance status instantly in the list. For this purpose, simply activate the rys plugin called "EasyAutocompleteWithAttendanceInfo", which is available in Administration » Plugins.

The result will then look like this. Such a feature can simplify assigning tasks to available users, who are ready to work on them right away.

Online/offline status of a user

The online/offline status of a user can be seen regardless of his/her attendance status. Each user avatar is equipped with an indicator of this status based on the real-time activity of the user. This indicator takes the form of a green dot (online) or grey dot (offline) next to the avatar at the bottom right. To have this feature (WebSockets) activated, the Action Cable / Redis framework for Ruby on Rails needs to be enabled.

Corner situations

  • When you have set vacation for some day and you click on the button "I just come to work" on the same day, your office attendance gets started regardless of the vacation, which also runs simultaneously. However, when you click on "Leaving work" button then, it will say "Date is already taken by another activity". That is intentional behavior that forces you to change your attendance status either to vacation or office, not both at the same time.
  • In the Attendance Report (/easy_attendances/overview), Remaining days and Allowed days can be found for each non-working attendance category such as Vacation or Sick. While Allowed days represent this year's limit, Remaining days represent unexpended days of this year's limit + accumulated days from previous years, which have passed to this year. The problem may occur when you need to see Remaining days for another year than this one. Since there is no history tracking of Remaining days for previous years, this value is always calculated as the currently valid amount of remaining days minus amount of days spent in the respective year. Therefore, the number of Remaining days can only be considered correct for this year, but not for any older one.
  • When you have synchronized Easy Attendance Calendar with an external calendar system via CalDav, a valid approval of attendance (such as a vacation) in Easy Redmine would be canceled by accidentally moving this attendance to another day in the external calendar system, without notification of this change in the CalDav journal. The very same thing might happen even without CalDav synchronization just by moving an approved attendance to another day in Easy Attendance Calendar, however, in such a case, notification of this change is available in the CalDav journal.
  • When exceptions are entered in the user's calendar, it takes one more day for them to appear in the user's attendance report (the number of attendance hours) as the attendance report is recalculated only once a day due to performance reasons.
  • In the Detailed report page of Attendance, the "Quarter" and "Yearly" views don't show data for "Vacation" and "Sick leave" columns for the time filters "this year" and "next year".
  • If you use the accumulated days feature and need to get the data from the previous year for your reports, make sure to have the respective rake task turned off and export the reports at the beginning of the new year. Afterward, turn on the rake task for the recalculation of accumulated days. Once the recalculation for the current year performs, it will no longer be possible to get the correct data for the previous year. Each following year is calculated with the current amount of accumulated days. We are not able to give you back historical data (such as for the previous year). Accumulated days cannot go to a minus value (this is called unpaid leave). The best course of action is to export the vacation report first and then recalculate the accumulated days manually by running the rake task.

    Example of accumulated days:

    Step 1) Current status
    Available vacation: 25
    Accumulated days: 25
    Used vacation: 21
    Remaining vacation: 4

    Step 2) Run the rake task
    A one-time recalculation will be performed to fill in the new values for vacation. After that, the old values are permanently rewritten with no recovery possibility.

    Step 3) New status
    Available vacation: 25
    Accumulated days: 29
    Used vacation: 0
    Remaining vacation: 29

    Important note: Running the rake task at a wrong time means that you will have to adjust the values manually to make them correct for the new year. Running the rake task twice in a row will also make the values completely incorrect.

Try Easy Redmine in 30 days free trial

Full features, SSL protected, daily backups, in your geolocation