The Zurich release has arrived! Interested in new features and functionalities? Click here for more

ginesdoleratorm
ServiceNow Employee
ServiceNow Employee

A sometimes ignored feature in the On-Call scheduling functionality is the ability to add child schedules, in order to include or exclude other schedules to build complex but clear rosters.

To make the feature description easier, let's consider the use case below.

Example use case

We need to have at least one member of the Development team available on-call during working hours. That is, from Monday to Friday from 8:00 to 17:00, excluding bank holidays. Additionally, we are performing some automated maintenance tasks the third Saturday of every month, so we also need a development team member to be available on-call in case something goes wrong. The developer on-call should rotate every week.

To easily define this roster, we can split its requirements and build a composed schedule for each of them individually. In other words, we can have a main schedule (Monday to Friday, 8:00 — 17:00), and add other schedules which complete or refine the main one (exclude bank holidays, include extra Saturdays).

This will allow us to manage them independently whereas having all of them integrated in the same roster. For example, if we need to exclude an additional vacation day, we can set it in the holidays schedule, without affecting the others, and the rosters will be updated accordingly. Similarly, if requirements change and we decide to include additional support days for a period of time, we can define and include another schedule without rearranging existing ones.

The following sections show how to define a rota to match the example use case.

Define base schedule (working hours)

To define a basic 8-5 On-call schedule, you can follow the tutorial in: Define basic On-call rota schedule

Exclude bank holidays

The next step is to refine the created schedule to exclude bank holidays. We can go to the details page of the schedule by clicking on the reference link of the Schedule field in the Rota page.

Screen Shot 2016-12-08 at 17.04.19.png

Our goal is to exclude from our schedule all the spans that fall in a bank holiday. However, instead of adding all the spans to the existing schedule, we are defining them in its own schedule, and "include" or "exclude" the schedule, so they can be managed independently.

In the Schedule page, we can include and exclude other schedules under the Child Schedules section. The Edit button shows a menu where to add/remove predefined schedules to the child schedules list, whereas the New button allows us to define a new Schedule from the scratch.

Note: Excluding spans can be done in two different ways

1) take a schedule whose spans are of type "exclude" and add the child schedule as "include".

2) take a schedule whose spans are not of type "exclude" (e.g., on-call, appointment, time-off, etc.) and add the child schedule as "exclude"

For our example, we click in Edit because we are going to reuse and existing schedule.

Screen Shot 2016-12-08 at 17.05.10v2.png

Then, we select the U.S. Holidays schedule, which already defines the spans for the US public holidays.

Screen Shot 2016-12-14 at 09.24.02.png

Since the type of the spans of the U.S. Holidays is "exclude", we need to set the type of the child schedule as "include". In other words, we are "including" all the "excluded" spans of the child calendar to our main schedule.

Screen Shot 2016-12-13 at 16.56.28.png

Screen Shot 2016-12-13 at 17.19.12v2.png

Note: If the spans of the U.S. Holidays schedule were not already of type exclude we should have set the type of the child schedule to "exclude".

Include extra Saturdays

Being again in the Schedule page, we want to refine the schedule a bit further to include the third Saturday of every month in our On-call schedule. Again, instead of mixing up the existing schedule adding additional spans, we are creating a new schedule defining the new requirement, and include it to the existing schedule.

To include a new schedule, we are clicking now the New button in the Child Schedules list. This opens the Schedule Entry form where we can define our new schedule.

We set the name of the schedule (e.g., Saturday Maintenance) and Save the record to stay in the same page so we can further edit.

Screen Shot 2016-12-12 at 14.25.13.png

In the new schedule record we can now create the entry to define period when this schedule is applicable by clicking New in the Schedules Entries listScreen Shot 2016-12-12 at 14.25.43v2.png

To specify the third Saturday of every month, we set the date of the next Saturday the event is happening in the When field. Then we select Monthly in the Repeats field and Day of the Week in Monthly type field.

Screen Shot 2016-12-12 at 14.26.33.png

Finally, make sure that the type of the new schedule is include in the Child Schedules list, which indicates that all the spans belonging to the child schedule will be included when generating the rosters for this rota.

Screen Shot 2016-12-13 at 17.16.34v2.png

In the On-call Calendar view, we can see that the rosters have been calculated taking the holidays and extra Saturdays into account.

Screen Shot 2016-12-12 at 14.23.14.png

1 Comment