Skip to main content

Setting up calendars for the planning board

Calendars define when resources are available to work. This guide walks you through a full calendar setup for the planning board. By the end you will:

  • Create a hierarchy of calendars
  • Assign resources to calendars
  • Apply calendars on the planning board

Calendars also drive the Gantt chart, but to keep this guide focused we stay on the planning board. The behavior is the same in both views, and once configured the integration is seamless.

The example here is deliberately simple and does not mirror a real-world setup, but it shows how calendars optimize resource planning. The feature is straightforward, yet because it plugs into the core of the application it is powerful, so it is worth taking the time to learn.

Permissions

Before you start, confirm your user has the right permissions. Most administration and settings views require an augmented authorization level:

  • To reach the settings modules, you need a role that contains the 'Settings Module' user action.
  • The 'Administration Module' user action grants access to the views in the administration area.

An administrator can assign a role to you, but you have to log out and back in to see the changes.

Creating calendars

Calendars navigation

With the right permissions, open the 'Calendars' view from the sidebar navigation menu:

Navigation to calendar setup.

Alternatively, you can navigate to the relative URI Settings/Calendars.

Create a calendar hierarchy

The calendar setup screen is divided into two areas:

  • The tree list with calendars on the left
  • The selected calendar's details, business hours and overrides

The main panel reflects whichever item is selected in the tree. Here is how a default calendar looks in the setup screen 1:

Default calendar

By the end of this guide, you will have a setup like this:

.
+-- Base calendar 2019
| +-- Business hours
| +-- 08:00 - 12:00
| +-- 13:00 - 15:00
| +-- 15:15 - 17:30
| +-- Holidays
| +-- December 25th
| +-- Modified schedule
| +-- December 24th (partially working)
| +-- Every Tuesday between December 16th and December 22th:
| +-- 08:00 - 12:00
| +-- 12:30 - 19:00
| +-- Every Friday
| +-- 09:00 - 14:00
| +-- Child calendars
| +-- Workers 2019
| +-- Holidays
| +-- Week of the July 15th
| +-- Clerks 2019
| +-- Holidays
| +-- December 24th
+-- Default calendar
| +-- Business hours
| +-- 08:00 - 16:00

Add a calendar

You will add three calendars: one base calendar used by two other calendars. Nested calendars let you manage common schedules across teams and keep data duplication to a minimum. They are not required, but they are recommended when you have many resources to manage.

To add a calendar, click the "Add" button. A new line appears and the center panel focuses on it. Start with the base calendar: give it a code (a unique value that can serve as a reference in back-office systems) and a descriptive name.

These form fields are not saved automatically. The red circling sync icon in the tree signals pending changes. Click it to save the calendar's master data: the form fields (code, name, default, etc.) and the first tab in the panel below (the settings tab). Refresh the page and you will see the record has been persisted.

Setting the business hours

Next, change the business hours, which default to 08:00 - 16:00. Go to the corresponding tab, which holds a grid where you add, update and remove business hours. Business hours are sets of working hours that, together, make up a working day. Most people don't work eight hours straight; they take some kind of lunch break. To update an existing set, double click the cell (either start or end) to reveal a selection list:

Changing business hours

You can create as many sets as you need:

Changing business hours

The one caveat: business hours must not overlap. For example, 08:00 - 12:00 and 11:30 - 13:30 is an invalid setup and will cause problems in the system. Changes are persisted immediately, so there is no need to synchronize the calendar manually.

Adding a day override

Now add some holidays to the base calendar that apply to everyone in the organization. Holidays like Christmas belong in a base calendar. Go to the "Day overrides" tab, which is empty by default. This grid works together with the date picker in the area above the tab panel.

In the date picker, navigate to December and select the 25th. The selected day is marked in a different color. Press the "Add" button in the day overrides grid, and a new record is appended with the date pre-populated:

Adding a day override

This transaction is persisted as a full non-working day. Edit the cells in the grid to change the name and/or the date:

Adding a day override

Now add another day override on Christmas Eve, when people may leave the office at 15:00. This differs from Christmas because people still work, just not the whole day, so it takes an extra step. Add a record in the day overrides grid, keep it selected, and click the "Edit" button. A window opens where you indicate whether this is a working or a non-working day. If you choose the working time option, specify the working hours for this day. These hours can be anything and override the default business hours for this day only.

Adding a day override

As before, date conflicts cause problems, so don't create two day overrides on the same day. Click 'OK' to save the changes. There is no need to synchronize the calendar; changes are saved automatically.

Adding a week override

A week override is a range of week days for a limited time range. Long holidays or temporary altered work schedules are good cases for a week override. Like a day override, select a start date in the date picker and click "Add" in the week overrides grid. The overridden week is visualized in the date picker:

Adding a week override

One difference from the other grids: this transaction is not saved right away. You must configure at least one day in the "Edit" dialog to save the override. After that, changes save automatically. This prevents empty overrides, which would cause confusion and undesirable results.

Adding a week override

Alongside the two familiar options - working and non-working hours - a third option exists: the default time. This inherits the calendar's settings for that day during the overridden week. In this example, if you set Monday to use the default settings, Monday 16 December is a normal business day. Tuesday 17 December differs because the week override sets different working hours for Tuesdays between 16 December and 22 December.

You can always click a colored cell in the date picker to see the details of that override:

Working hours for Dec 16, 2019:
15:15-17:30
13:00-15:00
08:00-12:00
Based on: override "[Without name]: 2019-12-16 - 2019-12-22" in calendar "Base calendar 2019"
----
Working hours for Dec 17, 2019:
08:00-12:00
12:30-19:00
Based on: override "[Without name]: 2019-12-16 - 2019-12-22" in calendar "Base calendar 2019"

Adding a week day

The last override option is the simplest: week day overrides are perpetual overrides for a given week day. For example, every Friday afternoon people leave the office at 15:00 instead of 16:00. As with day overrides, you specify whether the day is working or non-working. Unlike the other two override types, week days are not visualized in the date picker, but they are applied in the recalculation algorithms.

Adding a week day

Calendar inheritance

So far you have a base calendar for 2019 with a few overrides. This calendar is usable on its own, but now create two more specialized calendars: one for workers and one for clerks. Assume all workers take time off in July to escape the heat, while clerks get extra time off at the end of the year.

Add two new calendars: 'Workers 2019' and 'Clerks 2019'. Besides the code and the name, select a parent calendar: the base calendar 2019. Save the calendars. Changes to all calendars are saved in one transaction, so there is no need to process them one by one. The calendar tree should now look like this:

Calendar inheritance

Both calendars inherit the settings from the base calendar. In other words, unless you override something at a lower level (the workers or clerks calendar), the settings from the higher level (the base calendar) apply. Here, all workers and clerks work less on Christmas Eve and get Christmas day off. Settings from a higher level - the parent calendars - are not shown in the date picker of the inherited child calendars, so keep the hierarchy in the tree in mind.

Navigate to Christmas Eve for the clerks calendar, which the parent calendar marks as a shorter working day. Override this day and mark it as non-working (no action is needed, since this is the default value). Then select the workers calendar, add a week override in July 2019, and flag all days as non-working.

You are almost ready to see the two calendars in action. Before you head to the planning board, assign these calendars to some resources.

Assigning resources to calendars

Resource calendars navigation

A separate setup screen handles the assignment of calendars to resources (or vice versa). Open the resource calendar assignment screen from the sidebar navigation menu:

Navigation to resource calendars setup.

Alternatively, you can navigate to the relative URI Settings/ResourceCalendars.

Calendar assignment

By default, all resources use the default calendar. Administrators can assign a calendar to a resource for a particular time range. The process is straightforward: choose a resource, pick a calendar, and set when and how long the calendar applies.

Navigation to resource calendars setup

Read a line in the grid as: 'this calendar applies to this resource between this date and that date'. A resource is therefore not limited to one calendar. Because each assignment is limited in time, you can build detailed, flexible work schedules. Think of everyone who works in shifts.

For this guide, locate two resources that appear close to each other on your planning board. That makes the different calendars easier to spot later. One final step remains before you can use the calendars in the planning board.

Configuring the application

Application navigation

If you can access the administration module, open the application setup:

Navigation to application setup

Alternatively, you can navigate to the relative URI Administration/Application.

Configuring calendars for the planning board

In this view, open the "Planning" tab. Three fields matter here:

  • Visualize resource calendars
  • Resource zone color
  • Switch on calendar mode

The first two control how calendars are visualized in the planning board. The third decides whether calendars factor into appointment durations. For this guide, enable both flags and pick a bold color from the color picker.

Administration

Now open the planning view.

Working with the planning board

Visualizing calendars

Go to the planning board and navigate to the resources you configured in the resource calendars setup. Use the date picker to jump to the 2019 Christmas period. If all went well, the two resources show quite different shaded time slots. That is the calendars at work.

Calendars in the planning board

The shaded areas represent each resource's unavailable times, leaving the empty areas as working times. In this example, Wylma Charlet is clearly a clerk: she doesn't work on Christmas Eve. Willy McReynolds does work, so he is a worker. Further down the list, you will find resources on the default calendar: Burch Mougel follows the default calendar's schedule.

Working with appointments

Our setup has calendar mode switched on. Without it, nothing in this or the next section would apply: unavailable times can still be shown, but they are not enforced.

Switch to the day view and locate Christmas Eve on the planning board:

Creating an appointment

Select the 11:00 time slot, right click, and press the "New" button. The editor opens. Do not disable the calendar mode button; it is enabled by default, so keep it that way.

Creating an appointment

Nothing notable has happened yet, but that changes when you drag this appointment slightly to the right:

Creating an appointment

This is the result after you drop the appointment:

Creating an appointment

Notice how the total duration differs from the working time. That is because of the 30 minute break between 12:30 and 13:00. The task takes one hour to complete, so keeping the appointment at one hour would be wrong, since the resource is unavailable for half an hour. Dime.Scheduler looks at the calendars that apply and extends the appointment's duration until the working time is complete.

Do the same for the other resource and you'll see a more dramatic change:

Creating an appointment

The first available time slot is two days away, so the appointment's duration is extended until the task can be completed. Here the appointment lasts 45 hours for a task that takes only one hour. This kind of planning is extreme, but it makes the point.

Resolving the leading resource

Looking at the image above, you may wonder what happens when an appointment has two or more resources assigned and those resources have different schedules. We call this resource calendar constraint resolution, and you see it the moment you add a second resource to an appointment. Use SHIFT + drag to add a resource. Before you drop the appointment, the resolution window appears:

Creating an appointment

This window lets you choose the 'leading resource': the resource used as the source for calculating the appointment's duration. In other words, this resource's calendars (if any) are applied.

The recalculation is correct for the leading resource, but not necessarily for the others. This constraint resolution window appears every time you modify the appointment, giving you the chance to pick the most relevant resource.

If that gets in the way, you can switch off calendar mode at three levels: globally, per planning board, or per appointment. For the appointment level, there are three ways to toggle calendar mode:

  • Via the constraint resolution window:

    Creating an appointment

  • Via the context menu:

    Creating an appointment

  • Via the editor:

    Creating an appointment

While calendar mode is off, the appointment ignores calendars and behaves as if none exist. The moment you switch it back on, you are asked to choose a leading resource.

Creating an appointment

The settings on appointments are (temporarily) ignored when calendar mode is off on the planning board 2. When calendar mode is off entirely, the buttons are not even available. As explained in appointment recalculation, this is a cascading setting that allows for maximum flexibility.

Summary

You built a calendar hierarchy in which common settings and holidays are inherited by specialized calendars that reflect how the organization works. You then assigned resources to those calendars, configured the application, and created appointments to see the effect of calendars on the planning board.

Read more

Footnotes

  1. There must always be a default calendar. Changes that would leave the setup without a default calendar are rejected until this constraint is met.

  2. This can lead to interesting situations when the same appointment appears on multiple planning boards in your user profile and one of them has calendar mode switched off.