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.
Supervisors and user managers book for their employees
Overtime
No 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
Feature
Status
Description
Full-day booking
Full day, morning or afternoon
Hourly booking
From-to time with automatic calculation
Repeated bookings
Book period (e.g., 2 weeks vacation)
Retroactive bookings
Entries for past days possible
Future bookings
Advance planning possible
Multiple entries per day
Only with from-to bookings. Full or half day can be booked once per day
Attendance Types
Feature
Status
Description
Unlimited attendance types
Any number of types definable
Event types
Attendance, Absence, Absence (time missing)
Color coding
Each type can have its own color
Quota management
Limit in days per year per type, adjustable per user (e.g., 30 vacation days / year)
Approval workflow
Configurable approval requirement
IP range restriction
Allow/deny booking from specific networks
Email notifications
Notify users defined per type and optionally the supervisors on new and changed bookings
Approval Workflow
Feature
Status
Description
Approval required
Attendance must be approved
Conditional approval
Only for entries in past / during work time / outside work time
Multi-level approval
Only one approval level. Supervisors, administrators and user managers have equal rights
Partial approval
Each day of a multi-day booking is a separate entry and can be approved or rejected individually
Rejection with reason
Rejection reason can be specified
Bulk approval
Decide on several entries at once via right-click in the list
Automatic approval
No time-based auto-approval
Escalation
No automatic escalation on pending approval
Approval status
Undecided / Approved / Not approved
Notifications
Email to defined recipients and supervisors on new and changed entries
Notification to employee
No automatic email to the employee on approval or rejection
Limits and Validations
Feature
Status
Description
Quota limits
Maximum days per year/type configurable
Individual limits
Per user overridable
Carry over remaining vacation
No automatic carry-over to following year
Vacation planning across years
Possible, but no cross-year quota management
Conflict check
Prevents duplicate full or half day entries, multi-day bookings skip days already booked
Holiday check
Prevents absence on holidays
Working day check
Prevents absence on non-working days
Hours limit
From-to bookings max. 24 hours per day and type, absences no longer than the day’s working time
Calendars and Views
Feature
Status
Description
Absence calendar
Monthly view with all absences
List view
Filterable and sortable table
Filters
By user, type, event type, date, approval, daily target and custom fields
Grouping
By user, type, date, approval, author
List export
CSV, XLSX, PDF
iCal export
Dedicated feeds for the absence calendar and the personal calendar
Team calendar
Show absences of groups/teams (HRM area)
Personal calendar
Monthly calendar with own attendances, holidays, tickets and planned hours
Resource Planning
Basic Functions
Feature
Status
Description
Capacity planning
Available capacity per user and day/week/month
Visualize ticket assignments
Planned hours from assigned tickets
Workload indicator
Color coding: optimal / free capacity / overloaded
Forecast
Automatic planning based on tickets and deadlines
Historical data
Time spent vs. working time (calculated on-the-fly)
Project resources
Resources filtered by project
Global resources
All users with a working time calendar across projects
Planning Logic
Feature
Status
Description
Automatic distribution
Hours are automatically distributed to working days
Deadline-based planning
With equal priority, the earlier due date comes first, with the setting “Use date in issue” the version date counts as well
Priority-based planning
All tickets are scheduled by priority, highest first
Velocity consideration
Max. planned hours per day in the working time calendar, plus max. hours per ticket and day per priority
Consider absences
Vacation/sickness reduces available capacity
Consider holidays
Holidays are automatically excluded
Consider weekends
Based on working time calendar
Overload warning
Shows days with overallocation
Delay warning
Tickets that won’t be finished by deadline
Considered Tickets
Feature
Status
Description
Tickets with estimated time
Only tickets with estimated hours
Assigned tickets
Only tickets assigned to a user
Group tickets
Tickets assigned to groups are ignored
Open tickets
Closed tickets are excluded
Active projects
Tickets from closed or archived projects are not scheduled
Status filter
Exclude specific statuses (e.g., “Postponed”)
Priority filter
Tickets without due date whose priority has max assignment 0, and inactive priorities, are excluded
Already booked time
Remaining hours = Estimated - Logged
Views and Reports
Feature
Status
Description
Table - Planned hours
Forecast of future workload
Table - Time spent
Booked time compared with working time from the current working time calendar
Resource problems
Overview of planning issues
Day/Week/Month view
Scalable time periods
User filter
By individual users or groups
Time period filter
Predefined periods (current week, month, quarter, etc.)
Project filter
In project view
Planning in the ticket
Ticket shows “Planned completion”, planning hints and whether the assignee is absent today
Versions
Due versions appear below the timeline
List export
The resource view is an on-screen report without export. For figures to process further, use the attendance list or the API
Gantt chart
No Gantt visualization
Problems and Warnings
Feature
Status
Description
Overloaded days
Shows days where capacity is exceeded
Delayed tickets
Tickets that will miss deadline
Non-scheduled tickets
Tickets excluded from planning (with reason)
Group-assigned tickets
Warning on group assignment
Unassigned tickets
Count with link to the filtered ticket list
Tickets without estimation
Warning on missing effort estimation
Invisible tickets
Warning when assignee cannot see ticket
Velocity = 0 notice
Notice on the user and in the ticket that no planning takes place
User Management
User Functions
Feature
Status
Description
Create users
Create new Redmine users
Edit users
Change user data
Lock users
Deactivate users (without deleting)
Delete users
As administrator via the context menu, individually or several at once
Bulk operations
Lock, unlock or delete multiple users simultaneously
Assign groups
Add several users to a group or remove them via the context menu (with “Manage groups”)
Import
Administrators only, via the Redmine import. User type, working time calendar and supervisors are not imported
Export
List as CSV or XLSX
HRM-specific Fields
Feature
Status
Description
Assign user type
Define HRM permissions
Assign working time calendar
Changes affect historical reports retroactively
Assign supervisors
Multiple supervisors per user possible
Attendance type limits
Override individual limits
Upload avatar
Custom profile picture (overrides Gravatar)
Custom fields
Redmine user custom fields, visibility configurable per user type
User Manager
Feature
Status
Description
User manager role
With the “Manage users” permission in the user type, non-admins can manage users
Limited rights
Cannot create or edit admins or users with management permissions. New users only with user types without “View HRM”
Own user type locked
Can edit their own account but not change their own user type. Other users with management permissions cannot be edited
Lock users
Can lock and unlock users, also several at once (except admins and users with management permissions)
Manage groups
With separate permission
User Profile
Feature
Status
Description
Attendance and calendar
Separate pages in the user menu with list, totals and calendar view
Performance
Separate page comparing time entries with working time, calculated on the fly. Requires “View HRM”
Tickets for today
Planned tasks for current day
Projects tab
Project memberships
Resources view
Personal resource planning
Show groups
With corresponding permission
Show supervisors
Own supervisors always visible
Further tabs
Activity, files, spent time (weekly view with Timesheet), assigned and reported tickets
Permission System
User Types
Feature
Status
Description
Unlimited user types
Any number of types definable
Internal vs. External
Distinction with different functions
Default user type
One type can be marked as default
User type sorting
Position definable
Symbol/Icon
Icon from the Redmine icon set for the user type (optional)
User type change
Possible, but caution with internal↔non-internal
Attendance accounting required
Without a booking a day counts as absent. Internal types only
Anonymize activities
Show other users’ activities anonymously, individual user types can be exempted
Permissions
Feature
Status
Description
View HRM
Basic permission for HRM access
View supervisors
See supervisors of all users
View attendance
See attendance of all users
View groups
See groups in user profiles
View admin/user type
User type symbol next to name
Manage users
Create, edit, lock users
Manage groups
Create and edit groups. Delete only groups that are not a member of any project
Manage holidays
Manage holidays
Manage working time calendars
Changes affect historical reports retroactively
Fine-grained permissions
Configurable per user type
Project permissions
Role permission “View resources” (module Issue tracking) for the project resources
Supervisors can manage attendance of their subordinates
Own data always visible
User sees own attendance/resources
Project-specific permissions
Resource view controllable per project
Menu Configuration
Feature
Status
Description
Custom menu items
Up to 5 menu items per user type
Submenus
Each main item can have sub-items
Variables in URLs
Dynamic placeholders for user IDs and login names
Icons
Icon selectable from the Redmine icon set
Help menu
Show/hide help menu
My Page menu
Show/hide My Page
Watched projects
Show watched projects in top menu
Working Time Calendar
Calendar Functions
Feature
Status
Description
Unlimited calendars
Any number of working time calendars definable
Default calendar
One calendar can be marked as default
Hours per working day
Daily working time, applies to every working day. Weekly hours result from it
Define working days
Monday-Sunday individually enable/disable
Core time
Work start and end (e.g., 09:00 - 18:00)
Velocity
Maximum assignment per day for resource planning
Flexible working hours
One 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
Feature
Status
Critical Notes
Change calendar
Affects all historical reports retroactively
Change calendar properties
Affects all users with this calendar
Historical calendar versions
Are not saved
Working time by period
A 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
Feature
Status
Description
Full-time
E.g., 40h/week, Mon-Fri
Part-time
E.g., 18h/week, Mon-Wed
4-day week
E.g., 32h/week, Mon-Thu
6-day week
E.g., 48h/week, Mon-Sat
Different hours per weekday
E.g. Mon-Thu 8h, Fri 6h not possible, every working day has the same hours
Overtime account
No account, only dynamic calculation for selected period
Holiday Integration
Feature
Status
Description
TAG system
Calendars can have holiday TAGs
Regional holidays
Via TAGs (e.g., “Bavaria”, “NRW”)
Global holidays
Holidays without TAG apply to all
Multiple TAGs
One calendar can have multiple TAGs
Velocity and Resource Planning
Feature
Status
Description
Configure velocity
Max. hours/day for resource planning
Velocity = 0
Exclude user from resource planning
Velocity per priority
Maximum assignment per ticket and day for each priority, for tickets without due date. With 0, tickets of this priority are not planned
Dynamic velocity
No time-of-day dependent velocity
Holidays
Holiday Management
Feature
Status
Description
Unlimited holidays
Any number of holidays definable
Holiday with date
Fixed date holiday (e.g., Jan 1)
Recurring holidays
No automatic recurrence rule. Yearly holidays can be created for a whole year range at once via iCal import
Half-day holiday
Only full-day holidays possible
Regional holidays
Via TAG system
URL/Link
Optional link to additional information
TAG System
Feature
Status
Description
Holiday TAGs
TAGs for regional assignment (e.g., “Bavaria”, “Hamburg”)
Multiple TAGs per holiday
One holiday can have multiple TAGs
Global holidays
Holidays without TAG apply to all calendars
Calendar TAGs
Working time calendars can have TAGs
System TAGs
TAGs configurable for non-internal users
Import/Export
Feature
Status
Description
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 access
REST API for holidays
CSV import
No 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
Feature
Status
Description
Multiple supervisors
User can have multiple supervisors
Hierarchy levels
Flat hierarchy (user → supervisors), no tree structure
Assign supervisors
Simple assignment via user editing
Show supervisors
In user profile and lists
Supervisor Rights
Feature
Status
Description
View subordinate attendance
Always, independent of view_attendance permission
Approve attendance
When type requires approval
Reject attendance
With rejection reason
Edit attendance
Can create/change entries for subordinates
Email notifications
On new and changed entries, configurable per attendance type
Resource view
See resources of subordinates
View time entries
Via Redmine project permissions, not HRM-specific
Team Functions
Feature
Status
Description
Team view
Filter by group and by supervisor in resources and absence calendar
Team calendar
Show absences of a team in HRM absence calendar
Team workload
Resources by group
Reports & Dashboards
Dashboard Blocks
Feature
Status
Description
Upcoming holidays
Next holidays (considers working time calendar)
Birthdays
User birthdays (requires custom field)
Anniversaries
Work anniversaries (requires custom field)
Absent today
No 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 actions
Attendance entries for approval
My required actions
Open approvals for superiors
My attendance
Quickly add a new booking
Missing attendances
Own missing days (current and last month) in the attendance list. For all users via the “Query: Users” block with a filter
Custom reports
Query blocks for attendances, holidays, members, users, groups and working calendars, each with saved filters
Charts
New users, user fields (lists), attendance, spent time distribution. The attendance chart only in the HRM dashboard
Attendance Reports
Feature
Status
Description
Attendance list
Filterable table with all entries
Grouping
By user, type, date, approval, author
Filters
By user, type, date, event type (attendance, absence, time missing), approval, “Daily target exceeded” and custom fields
Totals
Days, hours
Statistics
Days per year and booked days (current and previous year) per type, plus target/actual attendance and availability in %
The attendance list itself is tabular. The HRM dashboard has an attendance chart
Resource Reports
Feature
Status
Description
Planned hours
Forecast table
Time spent
Booked time compared with working time. Working time comes from the current working time calendar
Resource problems
Detailed problem listing
Workload overview
Color-coded table
Capacity overview
Available vs. planned hours
List export
No export of the resource view (see Resource Planning)
Charts
The resource view itself has no charts. Gantt and burndown charts are available in Redmine and the Reporting plugin
Performance Reports
Feature
Status
Description
User performance
Per user (calculated on-the-fly)
Working time vs. effort
Target-actual comparison (target value based on the current working time calendar)
Availability
Attendance rate in the attendance list, calculated from the current working time calendar
Excess hours
Time beyond working hours and effort on non-working days. No hours account, based on the current working time calendar
Time period
Always one month, freely selectable or step to the previous and next month
Visualization
Summary table and bar chart of time spent per day
List export
The 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
Feature
Status
Description
REST API
Attendances, holidays, working calendars, user and attendance types. Not resources and performance
JSON/XML
Both formats supported
Authentication
API key or username and password
Pagination
For large datasets
Filter parameters
API-side filtering
Integration & API
Redmine Integration
Feature
Status
Description
Redmine users
Uses Redmine user management
Redmine groups
Uses Redmine groups
Redmine projects
Project-specific resource view
Redmine tickets
Resource planning based on issues
Redmine time entries
Automatic TimeEntry creation possible
Redmine versions
Version date as fallback when the issue has no due date (setting “Use date in issue”)
Redmine activities
For automatic time bookings
Redmine custom fields
For users and attendance
Redmine dashboards
HRM blocks in dashboards
Permissions
HRM rights via user types, the project resource view via the role permission “View resources”
Absence in issues
Column and filter “Assigned to (absent today)”, marker on the task board
Plugin Integration
Feature
Status
Description
Holidays by tag
Assign holidays to working calendars via tags
Redmine Reporting
Required, provides dashboards, charts and log
Other AlphaNodes plugins
Compatible, optional feature extension possible (e.g., Automation)
REST API
Feature
Status
Description
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 operations
Create, Read, Update, Delete
Filter parameters
URL parameters for filtering
Authentication
API key or username and password
Export Formats
Feature
Status
Description
CSV export
Attendance, user, project member and group list
Excel export (XLSX)
The same four lists, as a real XLSX file (not a renamed CSV)
PDF export
Attendance list only
iCal export
Absence calendar, personal calendar and holiday list
JSON/XML export
Via API
Resource and performance view
On-screen reports without file export
Import Functions
Feature
Status
Description
User import
Via Redmine Core (not HRM-specific)
Attendance import
Via API possible, no CSV import in UI
Holiday import
iCal import (.ics) in the UI with year range selection, additionally via API
Bulk import
Holidays only (iCal). No dedicated import workflow for users and attendances
Advanced Features
Automation
Feature
Status
Description
Automatic time booking
Automatically create time entry on attendance booking
Email notifications
On creating and changing a booking, to superiors and defined watchers of the attendance type
Automatic approval
No time-based auto-approval
Escalation
No automatic escalation
Reminders
With the Automation plugin, e.g. email to users with missing attendances. Without Automation the attendance list shows the missing days
Scheduled tasks
Via the Automation plugin
User automation
With the Automation plugin: own triggers and actions for users, condition by user type
Customizability
Feature
Status
Description
Custom fields
For users and attendance
Custom attendance types
Unlimited
Custom user types
Unlimited
Custom menus
Up to 5 menu items per user type
Custom dashboards
Via integrated dashboard system
Custom queries
Saved filters for lists
Custom workflows
No workflow engine
Security & Compliance
Feature
Status
Description
IP range restriction
For attendance types
Change log
Via the Reporting plugin log (who created, changed, deleted what and when). No version history of bookings
Anonymization
Anonymize activities (GDPR)
Privacy options
Configurable visibility
Encryption
Via Redmine/Rails, not HRM-specific
2FA
Via Redmine, not HRM-specific
LDAP/SSO
LDAP via Redmine, SSO via an add-on plugin
Audit-proof
Not given, as values are calculated at runtime
Performance
Feature
Status
Description
Large datasets
Resource view designed for many users, paginated lists
Caching
Dashboard blocks are cached
Pagination
For large lists
Lazy loading
Partially implemented
Functional Limitations Due to Architecture
Feature
Limitation
Workaround
Historical reports
Recalculated with current calendar
Regular exports. Switching to another calendar also applies retroactively
Booking extra hours
Only attendances with a time span (from to) can exceed the daily working time. Absences at most up to the daily working time
Use an attendance type with time span
Multiple entries per day
Only one entry per day for full and half days
Use an attendance type with time span (from to), several per day are possible
Velocity = 0
User is not scheduled, hint “Velocity 0, resource planning deactivated”
Intended for people without planning, otherwise set a velocity above 0
Group tickets
Not scheduled
Assign tickets to specific users
User type change internal↔non-internal
All users of this type lose their calendar assignment (with “internal” the default calendar applies afterwards)
Create new user types instead of changing
Repeated bookings
Absences skip holidays and non-working days, all bookings skip days already booked
Book individual days manually or check calendar
Issue date vs. version date
The issue due date takes precedence, the version date only counts without one
To use the version date: enable the setting “Use date in issue” in the Reporting plugin and leave the issue due date empty
Approval status
Pending and rejected bookings do not count in planning, but are deducted from the available days
Delete rejected bookings
Technical Limitations
Limitation
Description
Redmine dependency
Plugin requires Redmine Core (no standalone version)
Browser compatibility
Modern browsers required (Chrome, Firefox, Safari, Edge)
Database
PostgreSQL or MySQL (SQLite not recommended for production)
Performance with very large installations
For >1000 users, appropriately performant infrastructure is required
No historization
Working 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)