- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-05-2025 12:24 AM
I shared the sample script, please enhance
Also why not to use schedule for this calculation?
It will be much easier for you to determine the next available time
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 10x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-05-2025 12:44 AM
check these links
Get next business day (date/time - based on schedule)
Calculate next date based on schedule
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 10x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-05-2025 01:04 AM
Hello @Chandra18 ,
Here is a quick and easy script to get this information.
// SET THIS TO THE USER'S SYS_ID
var USER_SYS_ID = '...';
// this is the OOTB 'Workday 9:00 - 5:00' Schedule in the cmn_schedule table
var SCHEDULE_SYS_ID = '38f9a4e0c0a801640010a471b72952ba';
var timeZone = gs.getSysTimeZone();
var now = new GlideDateTime();
var grUser = new GlideRecord('sys_user');
if (grUser.get(USER_SYS_ID) && grUser.time_zone) {
timeZone = grUser.getValue('time_zone');
}
var schedule = new GlideSchedule(SCHEDULE_SYS_ID, timeZone);
var availableNow = schedule.isInSchedule(now);
if (!availableNow) {
now.add(schedule.whenNext(now));
}
now.setTimeZone(timeZone);
var nextAvailableTime = now.getDisplayValue();
gs.info('Available now: ' + availableNow);
gs.info('Next available time: ' + nextAvailableTime);
Output for a user in India on Monday 1:31pm:
Available now: true
Next available time: 2025-05-05 13:31:28
Output for a user in Los Angeles at the same moment (Monday 1:01am):
Available now: false
Next available time: 2025-05-05 09:00:00
Regards,
Robert
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-05-2025 01:19 AM
Thank You So Much @Robert H for your help.
Could you please add a gs.info for show user current time that will be help for testing with evidance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-05-2025 01:41 AM
Hello @Chandra18 ,
Sure, you can add the following at the end of the script:
function getLocalTime(timeZone) {
var now = new GlideDateTime();
now.setTimeZone(timeZone);
return now.getDisplayValue();
}
gs.info(gs.getMessage('Local time in {0} is: {1}', [timeZone, getLocalTime(timeZone)]));
Output:
Local time in America/Los_Angeles is: 2025-05-05 01:39:54
Regards,
Robert