isInSchedule and GlideDateTime not working as intended
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-12-2017 07:42 AM
Hello SN Community,
I am currently trying to resolve an issue regarding sending a notification only within a scheduled window. The client only wants to receive emails between Mon-Fri 8am-6pm. In the code I subtract 5 hours to compensate for the UTC time. However, the isInSchedule resolves to false.
Here is the code I am working with along with the results.
var schedule = new GlideSchedule('cbef152d2bd8660049fe199667da1578', 'US/Eastern');
var date = gs.nowDateTime();
gs.log("NOW DATE FIELD : " + date);
var gdt = new GlideDateTime();
gdt.setDisplayValue(date);
var sub = new GlideTime();
sub.setValue("05:00:00");
gdt.subtract(sub);
gs.log("GLIDE DATE TIME: " + gdt);
if (schedule.isInSchedule(gdt)){
gs.log("RESOLVED TRUE DATE : " + gdt);
answer = true;
}
else{
gs.log("RESOLVED FALSE DATE : " + gdt);
answer = false;
}
Output:
*** Script: NOW DATE FIELD : 2017-12-12 10:27:02 AM
*** Script: GLIDE DATE TIME: 2017-12-12 10:27:02
*** Script: RESOLVED FALSE DATE : 2017-12-12 10:27:02
As you can see, the script is resolving to false even though this date and time are within the desired schedule. I have checked many other community posts regarding this problem before but they did not work for me. Does anyone have a solution to this? Does this have something to do with the way I set up my GlideDateTime object?
I am working with a Helsinki instance as well if that helps at all.
Thank you SN Community!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-12-2017 09:06 AM
Can you Try this
var schedule = new GlideSchedule('cbef152d2bd8660049fe199667da1578', 'US/Eastern');
var date = gs.nowDateTime();
gs.log("NOW DATE FIELD : " + date);
if (schedule.isInSchedule(date)){
gs.log("RESOLVED TRUE DATE : " + gdt);
answer = true;
}
else{
gs.log("RESOLVED FALSE DATE : " + gdt);
answer = false;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-12-2017 11:23 AM
Unfortunately, isInSchedule() does not accept strings which is what gs.nowDateTime() returns.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-12-2017 11:38 AM
replace var date = gs.nowDateTime();
with
var date = new GlideDateTime(gs.nowDateTime())