Managed Hosting / Redmine Products / Redmine HRM Plugin - Feature List

Overview

This feature list provides an overview of the functions of the Redmine HRM Plugin.

Legend:

  • Available - Feature is fully implemented
  • Limited - Feature available, but with limitations
  • Not available - Feature is not implemented

Special Feature: Dynamic Real-time Calculations (on-the-fly)

Advantage: The plugin works with a lean, performant calculation model. All evaluations (performance, availability, resource planning) are created dynamically at runtime - without additional storage requirements for historical snapshots.

How it works: The system uses the current working time calendar for all calculations, even when analyzing past periods. This requires an adjusted workflow compared to systems with historical data storage. Over and under hours are not stored. If the working time calendar changes, the values of past periods change as well.

Table of Contents

  1. Attendance Management
  2. Resource Planning
  3. User Management
  4. Permission System
  5. Working Time Calendar
  6. Holidays
  7. Supervisors & Hierarchies
  8. Reports & Dashboards
  9. Integration & API
  10. Advanced Features

Attendance Management

Basic Functions

FeatureStatusDescription
Book attendanceUsers can record presence/absence
Book vacationRecord and manage vacation days
Record sicknessDocument sick days
Record home officeBook home office days
Booking for othersSupervisors and user managers book for their employees
OvertimeNo overtime account. Extra hours show up in the attendance list via “% Daily target” and the filter “Daily target exceeded”, calculated live and not stored

Booking Options

FeatureStatusDescription
Full-day bookingFull day, morning or afternoon
Hourly bookingFrom-to time with automatic calculation
Repeated bookingsBook period (e.g., 2 weeks vacation)
Retroactive bookingsEntries for past days possible
Future bookingsAdvance planning possible
Multiple entries per dayOnly with from-to bookings. Full or half day can be booked once per day

Attendance Types

FeatureStatusDescription
Unlimited attendance typesAny number of types definable
Event typesAttendance, Absence, Absence (time missing)
Color codingEach type can have its own color
Quota managementLimit in days per year per type, adjustable per user (e.g., 30 vacation days / year)
Approval workflowConfigurable approval requirement
IP range restrictionAllow/deny booking from specific networks
Email notificationsNotify users defined per type and optionally the supervisors on new and changed bookings

Approval Workflow

FeatureStatusDescription
Approval requiredAttendance must be approved
Conditional approvalOnly for entries in past / during work time / outside work time
Multi-level approvalOnly one approval level. Supervisors, administrators and user managers have equal rights
Partial approvalEach day of a multi-day booking is a separate entry and can be approved or rejected individually
Rejection with reasonRejection reason can be specified
Bulk approvalDecide on several entries at once via right-click in the list
Automatic approvalNo time-based auto-approval
EscalationNo automatic escalation on pending approval
Approval statusUndecided / Approved / Not approved
NotificationsEmail to defined recipients and supervisors on new and changed entries
Notification to employeeNo automatic email to the employee on approval or rejection

Limits and Validations

FeatureStatusDescription
Quota limitsMaximum days per year/type configurable
Individual limitsPer user overridable
Carry over remaining vacationNo automatic carry-over to following year
Vacation planning across yearsPossible, but no cross-year quota management
Conflict checkPrevents duplicate full or half day entries, multi-day bookings skip days already booked
Holiday checkPrevents absence on holidays
Working day checkPrevents absence on non-working days
Hours limitFrom-to bookings max. 24 hours per day and type, absences no longer than the day’s working time

Calendars and Views

FeatureStatusDescription
Absence calendarMonthly view with all absences
List viewFilterable and sortable table
FiltersBy user, type, event type, date, approval, daily target and custom fields
GroupingBy user, type, date, approval, author
List exportCSV, XLSX, PDF
iCal exportDedicated feeds for the absence calendar and the personal calendar
Team calendarShow absences of groups/teams (HRM area)
Personal calendarMonthly calendar with own attendances, holidays, tickets and planned hours

Resource Planning

Basic Functions

FeatureStatusDescription
Capacity planningAvailable capacity per user and day/week/month
Visualize ticket assignmentsPlanned hours from assigned tickets
Workload indicatorColor coding: optimal / free capacity / overloaded
ForecastAutomatic planning based on tickets and deadlines
Historical dataTime spent vs. working time (calculated on-the-fly)
Project resourcesResources filtered by project
Global resourcesAll users with a working time calendar across projects

Planning Logic

FeatureStatusDescription
Automatic distributionHours are automatically distributed to working days
Deadline-based planningWith equal priority, the earlier due date comes first, with the setting “Use date in issue” the version date counts as well
Priority-based planningAll tickets are scheduled by priority, highest first
Velocity considerationMax. planned hours per day in the working time calendar, plus max. hours per ticket and day per priority
Consider absencesVacation/sickness reduces available capacity
Consider holidaysHolidays are automatically excluded
Consider weekendsBased on working time calendar
Overload warningShows days with overallocation
Delay warningTickets that won’t be finished by deadline

Considered Tickets

FeatureStatusDescription
Tickets with estimated timeOnly tickets with estimated hours
Assigned ticketsOnly tickets assigned to a user
Group ticketsTickets assigned to groups are ignored
Open ticketsClosed tickets are excluded
Active projectsTickets from closed or archived projects are not scheduled
Status filterExclude specific statuses (e.g., “Postponed”)
Priority filterTickets without due date whose priority has max assignment 0, and inactive priorities, are excluded
Already booked timeRemaining hours = Estimated - Logged

Views and Reports

FeatureStatusDescription
Table - Planned hoursForecast of future workload
Table - Time spentBooked time compared with working time from the current working time calendar
Resource problemsOverview of planning issues
Day/Week/Month viewScalable time periods
User filterBy individual users or groups
Time period filterPredefined periods (current week, month, quarter, etc.)
Project filterIn project view
Planning in the ticketTicket shows “Planned completion”, planning hints and whether the assignee is absent today
VersionsDue versions appear below the timeline
List exportThe resource view is an on-screen report without export. For figures to process further, use the attendance list or the API
Gantt chartNo Gantt visualization

Problems and Warnings

FeatureStatusDescription
Overloaded daysShows days where capacity is exceeded
Delayed ticketsTickets that will miss deadline
Non-scheduled ticketsTickets excluded from planning (with reason)
Group-assigned ticketsWarning on group assignment
Unassigned ticketsCount with link to the filtered ticket list
Tickets without estimationWarning on missing effort estimation
Invisible ticketsWarning when assignee cannot see ticket
Velocity = 0 noticeNotice on the user and in the ticket that no planning takes place

User Management

User Functions

FeatureStatusDescription
Create usersCreate new Redmine users
Edit usersChange user data
Lock usersDeactivate users (without deleting)
Delete usersAs administrator via the context menu, individually or several at once
Bulk operationsLock, unlock or delete multiple users simultaneously
Assign groupsAdd several users to a group or remove them via the context menu (with “Manage groups”)
ImportAdministrators only, via the Redmine import. User type, working time calendar and supervisors are not imported
ExportList as CSV or XLSX

HRM-specific Fields

FeatureStatusDescription
Assign user typeDefine HRM permissions
Assign working time calendarChanges affect historical reports retroactively
Assign supervisorsMultiple supervisors per user possible
Attendance type limitsOverride individual limits
Upload avatarCustom profile picture (overrides Gravatar)
Custom fieldsRedmine user custom fields, visibility configurable per user type

User Manager

FeatureStatusDescription
User manager roleWith the “Manage users” permission in the user type, non-admins can manage users
Limited rightsCannot create or edit admins or users with management permissions. New users only with user types without “View HRM”
Own user type lockedCan edit their own account but not change their own user type. Other users with management permissions cannot be edited
Lock usersCan lock and unlock users, also several at once (except admins and users with management permissions)
Manage groupsWith separate permission

User Profile

FeatureStatusDescription
Attendance and calendarSeparate pages in the user menu with list, totals and calendar view
PerformanceSeparate page comparing time entries with working time, calculated on the fly. Requires “View HRM”
Tickets for todayPlanned tasks for current day
Projects tabProject memberships
Resources viewPersonal resource planning
Show groupsWith corresponding permission
Show supervisorsOwn supervisors always visible
Further tabsActivity, files, spent time (weekly view with Timesheet), assigned and reported tickets

Permission System

User Types

FeatureStatusDescription
Unlimited user typesAny number of types definable
Internal vs. ExternalDistinction with different functions
Default user typeOne type can be marked as default
User type sortingPosition definable
Symbol/IconIcon from the Redmine icon set for the user type (optional)
User type changePossible, but caution with internal↔non-internal
Attendance accounting requiredWithout a booking a day counts as absent. Internal types only
Anonymize activitiesShow other users’ activities anonymously, individual user types can be exempted

Permissions

FeatureStatusDescription
View HRMBasic permission for HRM access
View supervisorsSee supervisors of all users
View attendanceSee attendance of all users
View groupsSee groups in user profiles
View admin/user typeUser type symbol next to name
Manage usersCreate, edit, lock users
Manage groupsCreate and edit groups. Delete only groups that are not a member of any project
Manage holidaysManage holidays
Manage working time calendarsChanges affect historical reports retroactively
Fine-grained permissionsConfigurable per user type
Project permissionsRole permission “View resources” (module Issue tracking) for the project resources

Permission Hierarchy

FeatureStatusDescription
AdministratorsAlways have all HRM permissions
Dependencies“View HRM” is required for all manage permissions
Auto-activationview_hrm automatically activates view_superiors/groups/attendance

Special Permissions

FeatureStatusDescription
Supervisor rightsSupervisors can manage attendance of their subordinates
Own data always visibleUser sees own attendance/resources
Project-specific permissionsResource view controllable per project
FeatureStatusDescription
Custom menu itemsUp to 5 menu items per user type
SubmenusEach main item can have sub-items
Variables in URLsDynamic placeholders for user IDs and login names
IconsIcon selectable from the Redmine icon set
Help menuShow/hide help menu
My Page menuShow/hide My Page
Watched projectsShow watched projects in top menu

Working Time Calendar

Calendar Functions

FeatureStatusDescription
Unlimited calendarsAny number of working time calendars definable
Default calendarOne calendar can be marked as default
Hours per working dayDaily working time, applies to every working day. Weekly hours result from it
Define working daysMonday-Sunday individually enable/disable
Core timeWork start and end (e.g., 09:00 - 18:00)
VelocityMaximum assignment per day for resource planning
Flexible working hoursOne calendar per user, and every working day has the same number of hours. Different hours per weekday are not possible

Important: Working Time Calendar Changes

FeatureStatusCritical Notes
Change calendarAffects all historical reports retroactively
Change calendar propertiesAffects all users with this calendar
Historical calendar versionsAre not saved
Working time by periodA different working time for a past period cannot be stored

Recommended approach:

  • Avoid changing existing working time calendars
  • Reassigning a calendar also applies retroactively, because the current calendar always counts
  • Export the affected reports before any calendar change or reassignment

Possible Working Time Models

FeatureStatusDescription
Full-timeE.g., 40h/week, Mon-Fri
Part-timeE.g., 18h/week, Mon-Wed
4-day weekE.g., 32h/week, Mon-Thu
6-day weekE.g., 48h/week, Mon-Sat
Different hours per weekdayE.g. Mon-Thu 8h, Fri 6h not possible, every working day has the same hours
Overtime accountNo account, only dynamic calculation for selected period

Holiday Integration

FeatureStatusDescription
TAG systemCalendars can have holiday TAGs
Regional holidaysVia TAGs (e.g., “Bavaria”, “NRW”)
Global holidaysHolidays without TAG apply to all
Multiple TAGsOne calendar can have multiple TAGs

Velocity and Resource Planning

FeatureStatusDescription
Configure velocityMax. hours/day for resource planning
Velocity = 0Exclude user from resource planning
Velocity per priorityMaximum assignment per ticket and day for each priority, for tickets without due date. With 0, tickets of this priority are not planned
Dynamic velocityNo time-of-day dependent velocity

Holidays

Holiday Management

FeatureStatusDescription
Unlimited holidaysAny number of holidays definable
Holiday with dateFixed date holiday (e.g., Jan 1)
Recurring holidaysNo automatic recurrence rule. Yearly holidays can be created for a whole year range at once via iCal import
Half-day holidayOnly full-day holidays possible
Regional holidaysVia TAG system
URL/LinkOptional link to additional information

TAG System

FeatureStatusDescription
Holiday TAGsTAGs for regional assignment (e.g., “Bavaria”, “Hamburg”)
Multiple TAGs per holidayOne holiday can have multiple TAGs
Global holidaysHolidays without TAG apply to all calendars
Calendar TAGsWorking time calendars can have TAGs
System TAGsTAGs configurable for non-internal users

Import/Export

FeatureStatusDescription
iCal import (.ics)Upload in the holidays area with year range selection. Yearly recurring entries are created for every year of the range. TAGs can be assigned during import. Only single-day entries are imported, school holidays and other ranges are skipped
iCal export (.ics)Download of the filtered holiday list as iCal file for import into other calendars
API accessREST API for holidays
CSV importNo CSV import - use the iCal import instead
List export (CSV/XLSX/PDF)Holidays can only be output as iCal or via the API

Supervisors & Hierarchies

Supervisor Management

FeatureStatusDescription
Multiple supervisorsUser can have multiple supervisors
Hierarchy levelsFlat hierarchy (user → supervisors), no tree structure
Assign supervisorsSimple assignment via user editing
Show supervisorsIn user profile and lists

Supervisor Rights

FeatureStatusDescription
View subordinate attendanceAlways, independent of view_attendance permission
Approve attendanceWhen type requires approval
Reject attendanceWith rejection reason
Edit attendanceCan create/change entries for subordinates
Email notificationsOn new and changed entries, configurable per attendance type
Resource viewSee resources of subordinates
View time entriesVia Redmine project permissions, not HRM-specific

Team Functions

FeatureStatusDescription
Team viewFilter by group and by supervisor in resources and absence calendar
Team calendarShow absences of a team in HRM absence calendar
Team workloadResources by group

Reports & Dashboards

Dashboard Blocks

FeatureStatusDescription
Upcoming holidaysNext holidays (considers working time calendar)
BirthdaysUser birthdays (requires custom field)
AnniversariesWork anniversaries (requires custom field)
Absent todayNo dedicated block. The “Query: Users” block with the filter “Today away” shows who is away today
My planned hours (today)Hours planned for today with the related issues. “Issues for today” also as a tab in the user profile
Required actionsAttendance entries for approval
My required actionsOpen approvals for superiors
My attendanceQuickly add a new booking
Missing attendancesOwn missing days (current and last month) in the attendance list. For all users via the “Query: Users” block with a filter
Custom reportsQuery blocks for attendances, holidays, members, users, groups and working calendars, each with saved filters
ChartsNew users, user fields (lists), attendance, spent time distribution. The attendance chart only in the HRM dashboard

Attendance Reports

FeatureStatusDescription
Attendance listFilterable table with all entries
GroupingBy user, type, date, approval, author
FiltersBy user, type, date, event type (attendance, absence, time missing), approval, “Daily target exceeded” and custom fields
TotalsDays, hours
StatisticsDays per year and booked days (current and previous year) per type, plus target/actual attendance and availability in %
Daily valuesColumns “% Availability” and “% Daily target”, filter “Daily target exceeded”
List exportCSV, XLSX, PDF
ChartsThe attendance list itself is tabular. The HRM dashboard has an attendance chart

Resource Reports

FeatureStatusDescription
Planned hoursForecast table
Time spentBooked time compared with working time. Working time comes from the current working time calendar
Resource problemsDetailed problem listing
Workload overviewColor-coded table
Capacity overviewAvailable vs. planned hours
List exportNo export of the resource view (see Resource Planning)
ChartsThe resource view itself has no charts. Gantt and burndown charts are available in Redmine and the Reporting plugin

Performance Reports

FeatureStatusDescription
User performancePer user (calculated on-the-fly)
Working time vs. effortTarget-actual comparison (target value based on the current working time calendar)
AvailabilityAttendance rate in the attendance list, calculated from the current working time calendar
Excess hoursTime beyond working hours and effort on non-working days. No hours account, based on the current working time calendar
Time periodAlways one month, freely selectable or step to the previous and next month
VisualizationSummary table and bar chart of time spent per day
List exportThe performance page is an on-screen report without export

Note: All performance calculations are based on the currently assigned working time calendar. If the calendar changes, the values for past periods shift with it.

API Reports

FeatureStatusDescription
REST APIAttendances, holidays, working calendars, user and attendance types. Not resources and performance
JSON/XMLBoth formats supported
AuthenticationAPI key or username and password
PaginationFor large datasets
Filter parametersAPI-side filtering

Integration & API

Redmine Integration

FeatureStatusDescription
Redmine usersUses Redmine user management
Redmine groupsUses Redmine groups
Redmine projectsProject-specific resource view
Redmine ticketsResource planning based on issues
Redmine time entriesAutomatic TimeEntry creation possible
Redmine versionsVersion date as fallback when the issue has no due date (setting “Use date in issue”)
Redmine activitiesFor automatic time bookings
Redmine custom fieldsFor users and attendance
Redmine dashboardsHRM blocks in dashboards
PermissionsHRM rights via user types, the project resource view via the role permission “View resources”
Absence in issuesColumn and filter “Assigned to (absent today)”, marker on the task board

Plugin Integration

FeatureStatusDescription
Holidays by tagAssign holidays to working calendars via tags
Redmine ReportingRequired, provides dashboards, charts and log
Other AlphaNodes pluginsCompatible, optional feature extension possible (e.g., Automation)

REST API

FeatureStatusDescription
User API/users.json (extended with HRM fields)
Attendance API/hrm/attendances.json
Attendances per user/users/:id/attendances.json
Holiday API/hrm/holidays.json
Working calendar API/hrm/working_calendars.json
User types API/hrm_user_types.json
Attendance types API/hrm_attendance_types.json
CRUD operationsCreate, Read, Update, Delete
Filter parametersURL parameters for filtering
AuthenticationAPI key or username and password

Export Formats

FeatureStatusDescription
CSV exportAttendance, user, project member and group list
Excel export (XLSX)The same four lists, as a real XLSX file (not a renamed CSV)
PDF exportAttendance list only
iCal exportAbsence calendar, personal calendar and holiday list
JSON/XML exportVia API
Resource and performance viewOn-screen reports without file export

Import Functions

FeatureStatusDescription
User importVia Redmine Core (not HRM-specific)
Attendance importVia API possible, no CSV import in UI
Holiday importiCal import (.ics) in the UI with year range selection, additionally via API
Bulk importHolidays only (iCal). No dedicated import workflow for users and attendances

Advanced Features

Automation

FeatureStatusDescription
Automatic time bookingAutomatically create time entry on attendance booking
Email notificationsOn creating and changing a booking, to superiors and defined watchers of the attendance type
Automatic approvalNo time-based auto-approval
EscalationNo automatic escalation
RemindersWith the Automation plugin, e.g. email to users with missing attendances. Without Automation the attendance list shows the missing days
Scheduled tasksVia the Automation plugin
User automationWith the Automation plugin: own triggers and actions for users, condition by user type

Customizability

FeatureStatusDescription
Custom fieldsFor users and attendance
Custom attendance typesUnlimited
Custom user typesUnlimited
Custom menusUp to 5 menu items per user type
Custom dashboardsVia integrated dashboard system
Custom queriesSaved filters for lists
Custom workflowsNo workflow engine

Security & Compliance

FeatureStatusDescription
IP range restrictionFor attendance types
Change logVia the Reporting plugin log (who created, changed, deleted what and when). No version history of bookings
AnonymizationAnonymize activities (GDPR)
Privacy optionsConfigurable visibility
EncryptionVia Redmine/Rails, not HRM-specific
2FAVia Redmine, not HRM-specific
LDAP/SSOLDAP via Redmine, SSO via an add-on plugin
Audit-proofNot given, as values are calculated at runtime

Performance

FeatureStatusDescription
Large datasetsResource view designed for many users, paginated lists
CachingDashboard blocks are cached
PaginationFor large lists
Lazy loadingPartially implemented

Functional Limitations Due to Architecture

FeatureLimitationWorkaround
Historical reportsRecalculated with current calendarRegular exports. Switching to another calendar also applies retroactively
Booking extra hoursOnly attendances with a time span (from to) can exceed the daily working time. Absences at most up to the daily working timeUse an attendance type with time span
Multiple entries per dayOnly one entry per day for full and half daysUse an attendance type with time span (from to), several per day are possible
Velocity = 0User is not scheduled, hint “Velocity 0, resource planning deactivated”Intended for people without planning, otherwise set a velocity above 0
Group ticketsNot scheduledAssign tickets to specific users
User type change internal↔non-internalAll users of this type lose their calendar assignment (with “internal” the default calendar applies afterwards)Create new user types instead of changing
Repeated bookingsAbsences skip holidays and non-working days, all bookings skip days already bookedBook individual days manually or check calendar
Issue date vs. version dateThe issue due date takes precedence, the version date only counts without oneTo use the version date: enable the setting “Use date in issue” in the Reporting plugin and leave the issue due date empty
Approval statusPending and rejected bookings do not count in planning, but are deducted from the available daysDelete rejected bookings

Technical Limitations

LimitationDescription
Redmine dependencyPlugin requires Redmine Core (no standalone version)
Browser compatibilityModern browsers required (Chrome, Firefox, Safari, Edge)
DatabasePostgreSQL or MySQL (SQLite not recommended for production)
Performance with very large installationsFor >1000 users, appropriately performant infrastructure is required
No historizationWorking time calendar changes falsify historical data

Summary by Use Cases

Perfectly suited for:

  • Attendance management (vacation, sickness, office, home office)
  • Resource planning based on Redmine tickets
  • Capacity planning for development teams
  • Flexible working time models (full-time, part-time, 4-day week)
  • Regional holiday management
  • Approval workflows for absences
  • Supervisor hierarchies (flat)
  • Permission management (fine-grained)
  • Reporting (lists, tables, export)
  • API integration (connect external systems)

Please note the limitation of the on-the-fly calculations (see above).

Conditionally suitable for:

  • Historical evaluations (only with regular snapshots/exports)
  • Audit-required environments (external archiving required)
  • Detecting extra hours (display only, no account)
  • Group-based resource planning (tickets must be assigned to users)
  • Complex hierarchies (only flat supervisor structure)
  • Very large installations (>1000 users require appropriately sized hardware infrastructure for optimal performance)

NOT suitable for:

  • Audit-proof systems (working time calendar changes falsify historical data)
  • Compliance without external archiving (no historical calendar versions)
  • Punch clock and access control (no clock-in and clock-out, a time span is booked, also afterwards)
  • Multi-level approvals (only one level)
  • Vacation carry-over to the next year (entitlement restarts on 01.01., transfer remaining days manually via an own attendance type)
  • Shift planning
  • Payroll
  • Time accounts and overtime account (over and under hours are only shown, not stored)
  • Break rules (no automatic break deduction, no check of legal breaks)
  • Team hierarchies (sub-teams, departments)
  • Standalone HRM system (requires Redmine)
  • Native mobile app (responsive web only)

Quick Check: Does the plugin meet your requirements?

You need:

  • Multilingual application
  • Vacation management with approval workflow
  • Resource planning based on tickets
  • Flexible working time models
  • Holiday management (regional)
  • Supervisor hierarchy
  • Capacity planning for teams
  • API integration
  • Reports and dashboards
  • On-the-fly calculations for realistic resource calculation of future projects

If you checked 8+ main points, the plugin is suitable for you!


Buy HRM Plugin v4.6.0

Affordable prices regardless of your team size

Documentation, Support, Downloads & Updates 12 Months
Support Languages DE, EN
Support E-mail via customer area
Right to use the obtained version Lifetime
* All prices are net prices excl. VAT.
1 Does not run stand-alone. Requires Redmine Reporting.