ShiftController Employee Shift Scheduling


ShiftController is a lightweight, easy to use WordPress staff scheduling and rostering, rota planning plugin for any business that needs to manage and schedule employees.

Keep Organized

Associate your employees with calendars, configure shift types, assign managers, and keep your staff scheduling under control anywhere at anytime online from your WordPress powered website!

Escape Schedule Conflicts

Quickly see and correct any conflicts due to overlapping shifts or timeoffs. Each conflicting entry is highlighted in the schedule calendar so you will not miss it.

Mobile Friendly

Responsive design that works perfectly well for iPhone, Android, Blackberry, Windows as well as for desktops, laptops and tablets.

Pro Version Features

Bulk Edit
The Bulk Edit function lets you change or delete multiple shifts at once.

Repeat Shifts
Quickly create new or repeat existing shifts months ahead.

Shift Pickup
With the Shift Pickup module shifts can be marked as requested for pickup, and other employees can pick them up.

Schedule Templates
Quickly create new week schedules from schedule templates.

Custom Fields
Additional fields for shifts to keep custom information.

Schedule Limits
Limit total number or duration of shifts within a day, a week, or a month.

Please visit our website for more info and get the Premium version now!.


Please contact us at

Author: Plainware
Author URI:


  • Front-end of the plugin.
  • Back-end of the plugin.


  1. After unzipping, upload everything in the shiftcontroller folder to your /wp-content/plugins/ directory (preserving directory structure).

  2. Activate the plugin through the ‘Plugins’ menu in WordPress.


4 June 2024 2 replies
Hi, this plugin is too slow, with a few more calendars it becomes unusable. how can I do? I’ve asked support several times, but they don’t respond
29 March 2023
This plugin and the developers supporting it are great. When I asked question about the plugin, the developer implemented the feature in my question even though I had not bought the plugin at that point.
8 December 2020
Plugin fit our needs almost perfectly – support with author was fantastic, he answered immediately and customized the plugin for our needs. Five stars out of five!
9 October 2019
We have been using ShiftController for a couple of months now and love all its features. Being in a diverse leisure environment with over 100 employees, this software manages all staff with ease. We use the Pro version and love all of it’s features. What I can’t praise high enough is the support. We have made a number of requests/suggestions and each of these have been honored and integrated into the system. Thanks very much.
Read all 20 reviews

Contributors and Developers

“ShiftController Employee Shift Scheduling” is open source software. The following people have contributed to this plugin.


“ShiftController Employee Shift Scheduling” has been translated into 5 locales. Thank you to the translators for their contributions.

Translate “ShiftController Employee Shift Scheduling” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change Log


  • BUG: the “Custom Time” text wasn’t translatable in some places.
  • BUG: the Print View link wasn’t working properly on some front end pages.


  • Several optimizations for database queries that should improve performance.
  • BUG: a front end page with route=”myschedule” could redirect to everyone’s schedule after shift update.


  • Minor fixes


  • Minor fixes


  • BUG: the “Assigned Shift” filter was not working in the schedule view.
  • BUG: an error might have appeared after a template shift was deleted.
  • Modified the SMS module so that a phone number can be associated directly with the employee, even if there is no a linked user account.


  • BUG: a shift wasn’t displayed in the schedule if the shift’s employee was later removed from the calendar of the shift.
  • Adjusted style of the output to better fit into front-end themes, especially in dark mode.


  • BUG: shift time might be displayed incorrectly on dates when the daylight saving time clock change happened.
  • BUG: REST API GET /shiftcontroller/v4/shifts endpoint might work incorrectly under some WordPress configurations.
  • Added a page break in the schedule list print view after each calendar or employee, so each section is printed on a new page.


  • Added new options for the “hideui” shortcode parameter: date-nav, report-duration, report-qty.


  • Bug: changing date option wasn’t available for shifts and time off that were full day or many days.


  • Bug: the form error messages were not displayed for form inputs after the first one.
  • Bug: previous text might remain in form inputs.


  • Added an option to specify the CSV delimiter in shifts export file. Both default setting in Administration, Date and Time, and personal preference in Profile, Preference.


  • In the schedule day view we extended the end time range to fully display overnight shifts.
  • Modified the session code that didn’t work properly with action result messages and user preferences in some setups.


  • Added an option to change calendar and employee for a template shift in Schedule Templates module of the Pro version.


  • Added a new REST API end point to find available employees during a certain date and time range.


  • Added a delete shift email notification for employees and managers/admins.


  • BUG: Calendar filter in schedule view didn’t work due to error in version 4.9.44.
  • BUG: When a shift copied to another employee, the new employee didn’t get a notification.


  • BUG: Couldn’t create shifts for a selected employee due to error in version 4.9.44.


  • BUG: Shifts of archived employees and calendars were not visible in the schedule view.
  • BUG: Custom fields module may have produced a critical error (Pro Version).


  • Minor fixes to ensure compatibility with PHP 8.


  • Minor fixes to display better for RTL languages.


  • BUG: Copy To Another Employee link was visible to users who were not allowed to do this action.
  • Minor fixes.


  • Added an option to choose shift, time off or both in when sending reminders.


  • BUG: In Administration, Employees, various actions were not working properly for the first item in the list.
  • BUG: footer custom date picker in the schedule view didn’t work properly.
  • Copy & Change Employee option from the Change Employee screen moved to a separate acton Copy To Another Employee.
  • In the shortcode “calendar” parameter can accept negative value to skip specified calendar(s), for example [shiftcontroller4 calendar=”-123,-321″]
  • Added an option to make a copy of schedule template (Pro Version).
  • Added an option to edit time in template shifts in schedule templates (Pro Version).
  • Minor fixes.


  • For Schedule Limits module, if an employee has individual limits, they override possible common limits set for all employees (Pro Version).
  • Minor fixes.


  • Minor fixes.


  • Minor fixes in upgrade from legacy version 3 module.


  • Added Custom Number of Days option for shift schedule templates module (Pro Version).


  • Include custom fields too when copying a shift to another employee.
  • Added new options for the “hideui” shortcode parameter: filter, pagetitle, pagemenu.


  • Added an option to copy shift to a new employee.


  • Added a setting to specify the max end date for iCal feed.
  • PHP 8.2 compatibility fixes.
  • BUG: The date picker input might not be working for employees.


  • Minor fixes.


  • BUG: If an employee wasn’t allowed to view Everyone’s Schedule, their date selection form didn’t work in the My Schedule page.


  • BUG: If an employee wasn’t allowed to edit published shifts, but allowed to create published shifts, they still could unpublish a shift, edit it, then publish back.
  • Added an option to make a custom field required (Pro version).
  • Added a setting to define the date range when employees can create shifts for themselves. For example, from the start of the current week to the end of next month.


  • Added a shortcode parameter hideui=”bulk” to disable bulk actions for shifts (Pro version).


  • Added a setting if to enable slim view for month schedule grouped by calendar or employee.


  • Minor fixes.


  • Minor fixes.


  • BUG: The feed export file had broken columns if different shifts had different set of columns like custom fields or break time start/end.
  • Minor fixes.


  • BUG: If shift was with a break, the break time didn’t display in notifications.
  • BUG: If a custom field contained options with special characters, they didn’t display corrrectly.


  • Added an option to query custom fields in the API and export calls.


  • Added bulk actions for employees in admin view.
  • BUG: wrong links were given in Profile:iCal Sync, Administration:Shifts Feed, Administration:Reminders, Administration:Shift Pickup Request Reminders.


  • After creating shifts from a week template, it gets back to this week schedule rather than to the current week.
  • Don’t send a confusing “pick up request cancelled” notification to the original employee of the shift after the shift has been picked up by a new employee. (Pro version).
  • Added a setting to display n (3,4,5,6) weeks in the schedule view.
  • BUG: managers (not admins) weren’t allowed to create shifts from schedule templates. (Pro version).


  • Added the filter detail if any to the print view of the schedule.
  • BUG: The order of shifts in schedule templates didn’t follow the Week Starts On setting, always starting from Sunday. (Pro version).
  • BUG: False conflicts with changing employee of an existing shift, the bug appeared since 4.9.16.


  • A bit of modification for version 4.9.17, when doing pickup and employee assign bulk actions on grouped open shifts, pick only one of the grouped shifts as otherwise it would create overlapping conflicts for the employee. (Pro version).


  • BUG: If open shifts were grouped together in the schedule view, the bulk action process handled only one of them rather than all. (Pro version).
  • Added a shortcode parameter to display shifts with or without conflicts.


  • Added “Shifts With Conflicts” filter option for the schedule view, available for logged in users only.
  • BUG: It might display “new shift” and “new time off” links in schedule list view for users whose permissions didn’t allow that.


  • BUG: There was an error related to timezone settings with PHP 8.1.
  • Default shift duration can be selected with half-hour steps (was full hour before).


  • Custom fields for shifts in schedule templates, and they can edited too before making new real shifts from template. (Pro version).
  • Shift order in schedule view now also considers the employee sort order.
  • BUG: Shift create from REST API might fail with the Pro version.


  • Added bulk actions for calendars in admin view.
  • Do not display calendar label in schedule view if only one calendar exists.
  • Changed a bit misleading “Shift Type” naming to “Shift Time”.
  • Added break start/end times to shift export file.


  • BUG: Custom fields were not displayed for calendar managers when creating a shift.
  • BUG: Error when displaying a schedule day view for a disabled day of week.
  • BUG: When displaying shifts with the same time, their sort order wasn’t following the calendars sort order.
  • Added 2 week view.


  • BUG: Time reports may have been calculated incorrectly with overnight shifts.


  • BUG: Changes in version 4.9.9 broke the timezone setting in the iCal output.
  • BUG: Custom fields were not copied then copying an existing calendar to a new one (Pro version).
  • BUG: It didn’t allow a valid mobile phone number if it was shorter than 11 digits.
  • Custom fields can now be copied from another calendar (Pro version).


  • BUG: Custom fields might not be displayed in the JSON feeds output.
  • Added an option to copy settings from an existing calendar when creating a new calendar.
  • Added SMS text reminders for employees for the next day shift.
  • Minor bug fixes.


  • BUG: Labels of shift types ending in 12:00am (end of day) weren’t displayed in the schedule view.
  • BUG: Viewers (view only managers) were not able to view shifts of their calendars.
  • BUG: 4 week view showed today’s date for all days
  • Weekly reminders can now be sent on any day of the previous week, not only the last one.
  • Minor bug fixes.


  • Added Danish language.
  • Minor bug fixes.


  • BUG: schedule template shifts could not be created if the calendar had only one employee.
  • Added {EMPLOYEE_ID} and {EMPLOYEE_NAME} to reminder subject templates.
  • Modified Limits module to allow setting limits per specific employee. (Pro Version)
  • Modified Limits module to allow min hours or number of shifts. (Pro Version)
  • Modified Schedule Templates module to allow selection of available employees for open shifts. (Pro Version)
  • Minor bug fixes.


  • BUG: wrong markup in admin config for reminders that might cause the form submit failure on some sites.
  • BUG: employees might have less permissions than defined in some configurations


  • BUG: weekly and monthly reminders were resending every day if the cron job ran daily.


  • Added monthly reminders for the Email Reminders module.
  • Added Shift Pickup Email Reminders module which sends out daily, weekly or monthly reminders of shifts with pickup request.


  • Added “Change Date” option for shifts.


  • BUG: fixed session and REST errors in WordPress SiteHealth.


  • Added Email Reminders module.
  • BUG: if employees were allowed to edit their shifts, the time change didn’t work.


  • Added default schedule view type and group by settings.
  • Automatic notifications when changing shift employee: Shift Unpublished for the old employee, and Shift Published for the new one.


  • BUG: An error in session function that lead to double action result messages and caching of form values.


  • Added pickup shortcode parameter to display shifts that have (or have no) pickup request.
  • Minor fixes.


  • Added a few more settings for REST API shifts list interface.
  • Separate internal schedule preference settings storage for admin area and front end schedule, otherwise it might have produced issues.
  • Minor fixes.


  • Added short time formats like 8pm or 8p, no minutes if time is like 8:00pm.
  • Don’t show shift conflicts for not logged in users.
  • BUG: In schedule limits module shifts in the last day of the range were counted incorrectly.


  • Added REST API and WordPress Filters API for shifts.


  • Added an option to change shift type on existing shifts.


  • Added the “year” range in the Schedule Limits module (Pro Version).
  • BUG: Schedule Templates module may produce a fatal error after a calendar was deleted.
  • For Custom Fields added an option to allow edit for visitors (Pro Version).
  • Updated translation files.
  • PHP 8 compatibility fixes.
  • BUG: draft shifts were not accessible for visitors even if permission settings allowed it.


  • In Schedule Limits added a setting if to take into account premliminary shifts (in the new shift process).
  • Enhanced permissions in calendars – to “Create” we also added “Edit” and “Delete” permissions.


  • Schedule Limits module: changed number and duration inputs to allow any number (Pro Version).
  • Redesigned the admin New Calendar Manager page to group users by WordPress role to work better with a large number of users.
  • Added Swedish translation.


  • Added Schedule Limits module (Pro Version).
  • Fixed iCal issues when description and custom fields contained multiple lines.


  • Added Schedule Templates module (Pro Version).
  • Added calendar description to iCal export.
  • BUG: newlines in comments could break iCal export.


  • Shift types now can have the same start/end times if they have different lunch breaks.


  • Added an option to list shifts for an exact date and time, including current time.
  • BUG: The front end page with shortcode didn’t properly redirect to login form if an authenticated user is required to view the page.
  • BUG: Localized datepicker may have worked incorrectly


  • Added display sort order configuration for calendars and employees.


  • Added radio and checkbox custom fields (Pro Version).


  • BUG: Fixed bugs with false links to new shift/timeoff when the current user isn’t allowed to perform these actions.
  • Added JSON shifts output feed option (in Administration/Shifts Feed).


  • Optimized week and month schedule views so it should be rendered faster.


  • ShiftController’s ownership is changed to


  • Added Next/Previous labels for schedule navigation links.
  • Added labels for new shift/timeoff links in the schedule view.
  • Make new shift/timeoff links visually muted for past dates.
  • Added a setting if to disable using of Draft shift status.
  • Moved Everyone Schedule / My Schedule to separate links in main menu


  • BUG: “loopback request” error in WordPress SiteHealth.


  • Added a setting if a conflict is considered for overlapping shifts only in the same calendar.
  • BUG: there was a “REST API” error in WordPress SiteHealth.


  • Added label for textarea custom field in the admin area.
  • When creating a shift or assigning new or another employee, unavailable employees are displayed below available ones.
  • Added a setting for default shift duration.
  • In the admin calendars list view we added the quantity of notifications and permission options enabled for each calendar.
  • The schedule view remembers last filtered calendars and employees.


  • Added an option to filter our open shifts from a display, i.e. see assigned shifts only.
  • Added a new 4 weeks schedule view.
  • Added employee description to the shift details view.
  • Added My Profile link to the schedule view on a shortcode front end page.
  • Make it compatible with Polylang multi language plugin – if a front end page is set to a language, then we switch to that language.


  • Calendar permission settings were not working correctly for visitors (not logged in users).
  • Added the timezone setting.
  • BUG: Notifications still sent the shift type title even if it was disabled (instead of the time).


  • Added a permission settings per each calendar if to allow employees from other calendars see shifts in this calendar. It configures the feature added in version 4.5.5.
  • BUG: Custom fields were not saved when repeating a shift for multiple days (Pro Version).


  • BUG: Employees could see shifts from other calendars that they are not allowed to participate in.


  • Added a setting to define the time increment for time selectors (5, 10, 15 etc minutes).
  • Added a setting to define if the lunch break input is needed.


  • BUG: A calendar manager could not create open published shifts.


  • BUG: Open shifts from different calendars were also grouped which was wrong.
  • New setting if to automatically create a pickup request for open published shifts. (Pro Version)
  • Disabled rich text/HTML editor for custom fields if edited from front end. (Pro Version)


  • Group multiple open shifts for the same time in the schedule view.
  • New setting if employees are allowed to create shifts for themselves with conflicts (overlapping existing shifts).
  • BUG: compatibility issue – the date picker might have failed to work with some front end themes.


  • BUG: The weekly repeat function included the current day of the week even if it was unchecked (Pro Version).
  • Removed hyphens and underscores from the abbreviated labels if the full labels contained any.


  • In the month schedule view the shift widget now displays abbreviated label of the calendar title or of the employee name, depending on the grouping selected.
  • Modified the permissions part so that if an employee can’t see others shifts in a calendar, so this employee can’t also see others employees names.


  • Added “Every 2 Weeks”, “Every 3 Weeks”, “Every 4 Weeks” shifts repeat options (Pro Version).
  • BUG: The Email From Name setting was not taking effect.
  • BUG: Backward schedule navigation button worked incorrectly in the day view.
  • BUG: Minor translation related and other fixes.


  • Schedule header with date labels now sticks to the top when scrolling down the schedule view.
  • BUG: Another attempt to fix a fatal error in print view in some configurations.


  • Changed calendar description field to a wysiwyg editor. Also WordPress shortcodes are now processed in this field.
  • A small change when creating multiple shifts: for example if there are 2 new shifts for 1 Sep and 1 Oct, after submit you return back to 1 Sep calendar, rather jumping forward to 1 Oct.
  • BUG: Attempted to fix a fatal error in print view in some configurations.


  • Changed how links to shifts in calendar are displayed. That allows other links in custom fields if any to work properly.
  • Schedule navigation links now in the footer too.


  • Custom textarea fields now use rich text/HTML editor (Pro Version).
  • Shifts duration summary view now separates shifts and time off.


  • BUG: Wrong URLs if the server address was configured with a port.
  • If from the schedule week or month view switching to the day view, for the current week/month it shows today rather than the first day of the week/month.


  • Added an option to select all employees when creating a shift.
  • Added “viewers” for calendars – users who can only view shifts.


  • Added a setting to change email sender name and address.
  • New notification to all employees when other employee picks up a shift (Pro Version).


  • BUG: Repeat shifts function didn’t work after 4.3.9 version update.


  • Modified “X Days On / Y Days Off” automatic repeat option to accept manual entry that enables any repeating shift schedule.
  • Internal code change to enable WordPress’ apply_filters() function call ShiftController functions.
  • BUG: forms with multiple action buttons may not have worked properly in some installations.


  • Edit custom fields in one form rather than save button per each field (Pro Version).
  • New notification to manager when an employee picks up a shift (Pro Version).
  • Added an option to import existing WordPress users as employees.
  • Added an option to select calendars when creating a new employee.


  • BUG: Wrong urls for our plugin if the website was configured for a port other than 80.
  • BUG: Multiday shifts were not shown if they begin before the displayed range.
  • When repeating a shift with custom fields, these fields get pre-filled with the current values from this shift.
  • Added several automatic repeat options (like weekly, biweekly, etc) when creating a new shift (Pro Version).


  • BUG: in 4.3.5 we used a function that is available since WordPress 5.0 that broke setups with earlier versions.


  • BUG: Error when creating multiday shifts when choosing a start date that was not initially appeared on screen.
  • Added calendar description to the new shift form.
  • Redesigned the multiple days selector so that the checkbox and the date label are stacked rather than shown on one line as sometimes the date got truncated on narrow screens.
  • For localized installations prioritize our translations over the ones from the Translate WordPress site as the latter may appear incomplete.
  • Added “Toggle On” options when assigning employees to calendars in the admin area.


  • BUG: There was an error when creating a new shift from a front end page with the filter parameter for multiple calendars.
  • Added a link to the administration options in the front end page.
  • Added “sh4-bulk-form” CSS class for the bulk form so it can be hidden in the front end if needed.


  • Minor code fixes to remove warnings in PHP 7 in iCal exports.
  • Added from/to date parameters for shifts feed output.
  • BUG: Managers were not able to view or edit custom fields (only admins could).
  • BUG: Employees could pickup past shifts.
  • BUG: Shift titles on mouseover were without spaces.
  • BUG: When in a front end page configured for “My Schedule”, after any action on shifts it returned back to “Everyone Schedule”.
  • BUG: In WP 5.0 time selector was not working in a front end page.
  • BUG: There was an error when saving a post with ShiftController shortcode in Gutenberg or some other page builders like Elementor.


  • Added the all week select in the shift repeat and new recurring shift screens. (Pro Version)
  • Added French translation.
  • Minor fixes to address possible errors with shift break times.
  • Minor fix to make sure jQuery is loaded in the front end for WordPress 5.0.
  • BUG: custom fields didn’t show up in the iCal feed. (Pro Version)


  • Updated the translation file.
  • Added the date label when selecting a shift type after calendar view.
  • Minor fix in the view when selecting repeating dates for new shifts.
  • Added a week number in the schedule week view.
  • Added a setting if to send notification emails in HTML or plain text.
  • BUG: Employees could delete their published shifts if they were only allowed to create draft shifts.


  • If employees/visitors are not configured to view others shifts in all calendars, then the Everyone Schedule view is not available for employees and visitors.
  • BUG: Minor error notice “Undefined index: cfield_details”. (Pro Version)
  • BUG: Custom fields were not included in email notifications after shift create. (Pro Version)
  • Added a setting if to hide hours counters in the schedule view.
  • Added the “Toggle Selected” button in the bulk actions form. (Pro Version)


  • Added shifts duration summary per day in the week view.
  • BUG: An error occured if WordPress timezone was set to an UTC relative option (like UTC-7 etc).


  • BUG: Creating new shifts from a front end page failed if the “type” shortcode parameter was used.


  • Added a new drop down type for custom fields. (Pro Version)
  • Custom fields are now also included in the iCal export. (Pro Version)
  • BUG: Shifts view permissions may be processed incorrectly for employees’ iCal export.


  • BUG: Schedule download didn’t work properly in WordPress front end.
  • BUG: After reschedule notification emails still displayed old time.
  • BUG: Error in the iCal export feed for employees.
  • BUG: It didn’t allow to update a custom field if there was already another one with the same label in another calendar. (Pro Version)
  • BUG: Overlap conflicts function may show false alerts sometimes.
  • Schedule day view now shows 7 days at once.


  • Optimizations to improve speed for heavy schedules with many employees and shifts.


  • BUG: “Not allowed” error when trying to create new open shifts.


  • BUG: Date labels were not visible in the print view.
  • BUG: Calendar type (shift/timeoff) was reset after editing a calendar.


  • Added the description field for employees which is also displayed when creating shifts or changing employees.
  • BUG: The shortcode parameter route=”myschedule” doesn’t bring up the correct view.
  • BUG: The repeat function didn’t correctly added shift lunch breaks (Pro Version).


  • BUG: the shifts were not showing in the week/month view for the last day for the week/month.


  • Redesigned the new shift process so that shifts can be created for multiple employees at once.
  • Shortcode can now show the My Schedule page, the shifts of the currently logged in user.
  • Added a shortcode parameter to disable the link to the shift details (hideui=”shiftdetails”).
  • Custom fields added to notification templates (Pro Version).
  • BUG: it wasn’t allowing to create a lunch break for overnight shifts, like shift 11pm-3am and break 1am-2am.


  • Added the day shifts calendar view.
  • Added a setting to specify min and max time, which is convienient if you don’t need 24 hours.
  • When creating new shifts, the initial visible dates calendar extended to 4 weeks.
  • BUG: a date wasn’t preselected in the Select Dates view when adding a shift from calendar (Pro Version).
  • BUG: bulk action form to change employee was displayed even if it wasn’t allowed for the current user (Pro Version).
  • BUG: filtering for “open shifts” was not working in the schedule view.


  • Added several shortcode parameters to configure the front end view.
  • BUG: lunch break was not removed if the checkbox was unchecked when changing shift time.


  • BUG: error when an employee tried to create own shift even if it was allowed.


  • BUG: custom fields added to the export download did not work properly if multiple calendars were using custom fields. (Pro Version)
  • Added a function to change or assign employee for multiple shifts at once. (Pro Version)


  • Custom fields are now added to the export download file too. (Pro Version)
  • Updated JavaScript files to help avoid conflicts with other plugins and themes.


  • Added a setting for a calendar if it is for time off. This lets to create 2 separate buttons for new shifts and time off. Also the shifts in the time off calendars are not counted for the totals results in the schedule view.
  • Added a check to avoid shift types with duplicated start and end times.
  • BUG: Timezone was not properly set in the iCal feed.
  • BUG: Full day shift type title was not shown in the schedule view.


  • Added custom fields module for the Pro addon.
  • BUG: error when creating a new shift type (on a site with PHP 7.1).
  • BUG: error when creating a shift for a calendar which had only one, custom time shift type.


  • Added shift detailed information on mouse over in month schedule view.
  • Added CSV feed of upcoming shifts (in Administration, Upcoming Shifts Feed), it can be used to export shifts to other applications.
  • BUG: error after trying to change employee (appeared since 4.0.7).


  • Added an option to create multiple open shifts at once.
  • Display current timezone in the iCal details page.
  • Added links for iCal feeds per employee.
  • Added an option to skip notification emails on shift create or update.
  • Added an option to hide certain days of the week.
  • Added a description field for calendars, the calendar description is displayed in the shift detailed view.
  • BUG: several calendar permission settings might work incorrectly.


  • Fixed a few translation issues.
  • Added a configuration if to show shift type title in the calendar.
  • BUG: Time off were not imported if upgrading from v3.


  • Enabled HTML editor for email notification templates.
  • BUG: Fatal error when deleting a calendar.
  • BUG: Language file wasn’t get loaded properly.