Jason Occhialin
ServiceNow Employee
ServiceNow Employee

I have received quite a few questions about how to configure blackout and maintenance schedules over the last few months, so I thought an explanation of schedules may help someone else.

Within the Change application, Blackout and Maintenance schedules are an inherent part of conflict detection. The intent of the schedules is to document windows of time when planned maintenance may occur or is not allowed. By default, conflict detection looks at both schedule types in order to highlight a possible conflict and Conflict properties, allow you to tune conflict detection to suit your businesses needs.

Blackout and Maintenance schedules both extend a table called cmn_schedule_condition which extends cmn_schedule. Both are types of schedules which contain a condition.


Schedule table structure

1.png

Before we get started, who can create and edit schedules? ServiceNow has a role called schedule_admin that grants that access. For Change and its related schedules, it's not uncommon for customers to grant this role to their change managers, or a subset of the change management team, and allow them to manage and maintain blackout and maintenance schedules.

The schedule forms are pretty straight forward, but there's a few points that seem to create confusion.

A time zone is associated with the schedule and determines the time zone the schedule is evaluated in. The entry in the time zone choice list that creates the most confusion is 'Floating'. A Floating time zone allows the logged in user's time zone to drive evaluation of the schedule.

Blackout and Maintenance schedules are defined to apply to a specific class, or a subset of a class, within the CMDB. The class association allows detailed conditions to be defined to control the targets of the schedule.

Schedule entries are stored in the cmn_schedule_span table and define the specific windows, the recurrence and duration of time the schedule is intended to cover.

In the following example, a blackout schedule and corresponding schedule entries have been defined for critical business services which prohibits planned maintenance on all, but a handful of hours each week.

2.png

Once a schedule and schedule entries are defined, the "Show Schedule" related link can be used to display the schedule in a calendar format. In the case of my critical business services, here's what a week of blackout time looks like.

3.png

Schedules can have one of two types of parent-child relationships with other schedules and these related schedules impact how schedules are evaluated. The first is the Parent field, which is not exposed on the form, by default. When a schedule defines a Parent, schedule entries from the parent schedule apply to both the parent schedule and the child schedule that references it.

The second parent/child relationship is created when a schedule record has one or more child schedules in the Child Schedules related list. When a schedule contains a child schedule, schedule entries from the child schedule apply to the containing schedule.

A good example of a child schedule in use in the platform "Schedules" module demo data is the 8-5 weekdays excluding holidays schedule.

It includes a child schedule U.S. Holidays and the child schedule has a type of "Include". A type of Include is telling the evaluation to include the schedule spans the child schedule defines. A type of Exclude is the converse.

Many enterprises or services within the enterprise will have additional blackouts around special events, whether special to the business or external events like the holiday season. Parent/child relationships are a tool to define these schedule exceptions once that you can then easily associate with any schedule it applies to.

In the case of the critical business services schedule, I have defined a child schedule of type include. Because I am including this schedule in my schedule evaluation, it essentially eliminates the six hours of time on Saturday that wasn't previously blacked out from Thanksgiving week through the end of the year.  

4.png

There are two important things to make note of now that we have discussed child schedules. First, we previously mentioned the schedule_admin role allows a user who possesses the role to create schedules. It does not, however, grant the ability to associate Child Schedules. This is reserved for users who possess the admin role.

It's also important to note the Show Schedule calendar only shows schedule entries from the current schedule record. It does not include any schedule entries from related child schedules. This is a common area of confusion when evaluating a schedule that contains a child schedule using this visual tool.

The Referenced by related list is exactly as the name implies. This shows schedules that are referencing that particular schedule. In my example above, my End of year Blackout schedule automatically shows the Critical Business Services schedule that references it once I have created the association.

That's schedule creation, in a nut shell. I hope this has eliminated a little confusion for some. Now go get scheduling!

18 Comments