Scheduled Job Condition - First Monday of Every Month

tyler_ford
Giga Contributor

I have a number of tasks that I am looking to assign to IT members using scheduled jobs in Service Now.   I would like to create a monthly schedule that will run on the first Monday of every month as most do not work on weekends.   Has anybody had success creating a schedule like this?    

1 ACCEPTED SOLUTION

Right, but the requirement is for the first Monday of the month.   The isFirstDayOfWeek method simply tells you if it is a Monday or not.



This condition should work:


new Date().getDay() == 1 && new Date().getDate() <=7



It checks to see if it is a Monday (new Date().getDay() == 1) and if it is less than or equal to 7 days into the month (new Date().getDate() <=7).


View solution in original post

20 REPLIES 20

harikrish_v
Mega Guru

Hi Tyler,



What you can do is, create a scheduled job to run daily, then check the conditional checkbox and give the condition like this:-



var answer=gs.isFirstDayOfMonth(gs.now());


answer;



I have never tried this, you might want to test before you implement this.



Regards,


Hari


Thank you very much for your quick reply!



I have to apologize I am not very experienced with scripting.   If I use this as the condition, what happens if the first Monday of the month is actually the 3rd.   and Saturday was the 1st?  


Now I understand.   Sorry.


You would need to make a condition that checks if its a Monday (isFirstDayOfWeek(Object)) and that the date is 1-7 (this way it will only fire on the 1st Monday)


This second part can be maybe with getDayOfMonth().


It should work ideally, as per wiki-



isFirstDayOfWeek(Object)

Checks whether the date is the first day of the week. This uses the ISO standard of Monday being the first day of the week.