How To Exclude Weekends From Scheduled Jobs In ServiceNow
How To Exclude Weekends From Scheduled Jobs in ServiceNow
Use Cases
There's a lot of reasons that you may need a script that excludes (or includes) weekends when developing for a client in ServiceNow. A couple examples are:
You have a scheduled job that triggers an email notification, but you don't want it to send on weekends
You want all incidents that are created on the weekend to be set to a priority of High
Use the code templates and examples below to fit your requirement. You can update the IF statement to whatever you need (i.e. exclude weekdays, only run on Tuesdays and Thursdays, etc.).
The code:
var d = newDate();
var day = d.getDay();
if ( day > 0 && day < 6 ) {
answer = true;
} else {
answer = false;
}
The code, with comments explaining it:
// get the date in 'Thu Dec 08 2022 07:00:53 GMT-0800 (PST)' formatvar d = newDate();
// convert the date to a number between 0-6 (0 is Sunday, 6 is Saturday)var day = d.getDay();
// if the day is between 1 and 5 (Monday - Friday), then return true if ( day > 0 && day < 6 ) {
answer =true;
} else {
answer = false;
}
Example - Scheduled Job:
In this example, we add this script to the 'Condition' field of a Scheduled Job. This will ensure that the job does *not* run on weekends.
Note: Wrapping the script in the function is not necessary, but is good practice.
( function () {
var d = newDate();
var day = d.getDay();
if ( day > 0 && day < 6 ) {
answer =true;
}
answer =false;
} ) ();
Here's what your Scheduled Job should look like:
Example - Business Rule:
In this example, we write a Business Rule script (before insert), that sets the Urgency field to '1 - High' if the Incident was created on the weekend.
(functionexecuteRule(current, previous /*null when async*/) {
var d = newDate();
var day = d.getDay();
if ( day > 0 && day < 6 ) {
current.urgency = 1;
}
})(current, previous);
Summary
This script can be modified however you need it to be. Keep in mind that each day of the week is assigned a number, so you can set the IF statement to include or exclude whichever days you need! For quick reference, the number assigned to each day is:
Sunday - 0
Monday - 1
Tuesday - 2
Wednesday - 3
Thursday - 4
Friday - 5
Saturday - 6
And that's it! If you need any additional scripting templates, check out our Cheat Sheets.
Looking for something else? Check out our other posts below!