workforce optimization - agent calendar

Joshua Chen FX
Mega Sage

is there  a way to configure holidays if using WFO? similar to schedule > child schedule (holidays/schedule entries)

i havent found an easy way other than creating schedule plan/shift plan for each week with a holiday and excluding that day in the shift OR a custom event .  i tried many things, played with all the tables below but it doesnt seem to work if i enter a child schedule (for holidays)

Table

Technical name

Schedule

sn_shift_planning_schedule_plan

 

Schedule x work shift

sn_shift_planning_schedule_shift

Shift x agent

sn_shift_planning_schedule_shift_agent

Agent x schedule

sn_shift_planning_agent_schedule
(to delete schedules)

Shift plan (days and break config)

sn_shift_planning_shift_plan

Event types

sn_shift_planning_event

 Time off tn

request

 sn_shift_planning_agent_schedule_request

Other event or personal, e.g. training

cmn_schedule_span (entries)

 

2 REPLIES 2

ifti122
Giga Guru

Hi @Joshua Chen FX ,
Unfortunately, there is no direct "child schedule" or holiday calendar feature within the ServiceNow Workforce Optimization (WFO) module in the way that it exists for standard schedules in ServiceNow. You are correct in that the current methods for handling holidays are a bit cumbersome.

The most common and effective workaround is to create a custom event type for holidays and then add those events to the agents' schedules. While not as automated as a dedicated holiday calendar, this approach provides a clear record of the holiday and can be used to manage shift assignments accordingly.

 

Recommended Method: Custom Event Type

The most efficient way to manage holidays within ServiceNow WFO is to create a custom event type for them. This method gives you a repeatable process and a clear distinction between holidays and other types of leave.

  1. Create a Holiday Event Type: Navigate to Workforce Optimization for ITSM > Time Off Management > Event Types. Create a new record and name it something like Holiday. Set the Category to Other and the Behavior to Non-Working. This will ensure that the day is recognized as a non-working day. Create or enable access to event types to add them to the team calendar

  2. Add Holiday Entries: Navigate to Workforce Optimization for ITSM > Agent Schedules > Schedule Entries. For each holiday, create a new entry for each agent who is supposed to be off. Set the Type to the Holiday event you created, specify the date, and set the Start time and End time to cover the full work day (e.g., 08:00:00 to 17:00:00). Work scheduler in Workforce Optimization for ITSM

  3. Manage with Shift Planning: When creating your shift plans for weeks that contain a holiday, you can either:

    • Manually adjust the shift plan: When creating shifts for that specific week, simply do not assign agents to the holiday.

    • Use the sn_shift_planning_event table: The event records will be visible on the Agent Schedule and Daily Schedule views, helping schedulers to visually see which days are holidays and to not assign shifts. 

 

Why this is the best approach

While this still requires some manual effort, it's a better solution than creating a new shift plan for every single holiday week. By using a dedicated Holiday event type, you're leveraging the existing WFO data model to accurately reflect an agent's non-working time, which is essential for accurate forecasting and shift management.

Thanks & Regards,
Muhammad Iftikhar
If my response helped, please mark it as the accepted solution so others can benefit as well.

@ifti122 

We were considering the same approach — it looks like we’re forced to adopt WFO if we want multiple managers for a group. But WFO doesn’t even provide an OOTB way to handle basic holidays, which is pretty wild.

Our likely path is to create a custom event type for holidays and design a form that can generate all holidays for the year at once, instead of manually adding them one by one.

Also, not sure if FSM WFO works differently than your ITSM WFO solution, but schedule entries are automatically created when you add an event to the agent in manager workspace > calendar. 
A record is created in sn_shift_planning_agent_schedule. 
- IF you manually add a record in the table, the event will not appear in the calendar. Your AI generated solution might be wrong (?).

below ''meeting josh'' createad via manager workspace, and ''test sep04, a copy of the record created manually'. only ''meeting josh'' appears - i am thnking there is a script in play here.

JoshuaChenFX_2-1756996674173.pngJoshuaChenFX_3-1756996692219.png