- Home
- Blog
- EDGEBIC Platform
- How to Set Up Shifts and Holidays in EDGEBIC, Step…
How to Set Up Shifts and Holidays in EDGEBIC, Step by Step
Set up the plant calendar before anything else, because a work center with no working hours has zero capacity and will never receive a job. The order that works is always the same: shifts first, holidays second, work centers third, and one-off exceptions handled as capacity overrides rather than calendar edits.
EDGEBIC by User Solutions keeps shifts and plant holidays together on one screen, which makes the whole plant clock a five-minute setup for a typical two-shift operation. This guide walks each step and flags the two entries that behave differently from how people expect. For the concepts behind the layers, read shifts and calendars explained first.
Before You Start
| Prerequisite | Why |
|---|---|
| You can see the Daily Hours tab | Shifts and plant holidays both live there |
| You know the plant's real working pattern | The scheduler believes the calendar literally |
| At least one work center exists, or will soon | A shift only affects scheduling once a work center works under it |
Step 1: Create a Shift
- Open the Daily Hours tab, then the inner Shift tab. The Shift Management page lists existing shifts with their daily working hours and weekly total.
- Click Add Shift. The Shift Configuration dialog opens.
- Enter the Shift Name, for example
Day Shift. Name it by when it runs, not by who works it: the name appears on every capacity screen and every allocation. - In the Daily Working Hours section, tick the checkbox on each day the shift runs, then set Start: and End: for that day. Each row shows the computed duration as you type.
- Click Save Shift. The shift appears in the grid with its weekly Total Hours.
| Field | Required | What it does |
|---|---|---|
| Shift Name | Yes | Display name used everywhere the shift appears |
| Working-day checkbox (one per weekday) | n/a | Toggles whether the shift runs that day. Unchecked days contribute zero hours |
| Start: | Per working day | Time work begins that day |
| End: | Per working day | Time work ends. An end at or before the start is treated as running past midnight |
| Reset All Days | n/a | Clears every day to 00:00 so you can start over |
Two notes worth having in mind while you type.
Overnight shifts need no special handling. Enter 16:00 to 00:00 or 22:00 to 06:00 as they are. The scheduler handles the wrap and attributes the hours to the calendar day the shift starts on.
Breaks are not a field here. Define the shift hours net of the break. A daily lunch cannot be a recurring holiday, because the recurring flag matches the same month and day each year rather than every day, so netting it into the hours is the practical route. If no job may span the break, define two shifts (Morning 08:00 to 12:00 and Afternoon 13:00 to 16:00) rather than one.
Step 2: Attach Shifts to Work Centers
Shifts and work centers meet on the work center editor. For most of the plant there is nothing to do:
- Open the Workcenter tab and click Edit on a work center row.
- Select the Associated Shifts tab.
- If Use Global Shifts is checked, the work center already inherits every plant-wide shift, including the one you just created. Nothing further is needed.
- To give one machine its own calendar, untick Use Global Shifts, then use Add Existing Shift to copy a pattern locally, or Create New Shift for a machine-specific pattern.
- Click Save.
The work center grid's Shift Calendar column shows which mode each machine is in: a green Global badge, or an amber Custom one. Prefer Global. Every custom calendar is another place to update when the plant pattern changes, and global shift edits do not reach it. The full work center side is in how to set up work centers.
Step 3: Add Plant Holidays
- Open the Daily Hours tab, then the inner Holiday tab. The Plant Holidays page lists closures affecting all work centers and shifts.
- Click Add Holiday.
- Fill in the dialog:
| Field | Required | What it does |
|---|---|---|
| Name | Yes | Shown in the grid and used for audit |
| Date | Yes | The calendar day. For recurring holidays only the month and day matter |
| Recurring each year | No | Matches the same month and day every year |
| Closes the whole day | No | When checked, the whole day is blocked for every work center |
| Start Time / End Time | Partial only | The blocked window when the whole-day box is unchecked |
| Description | No | Free-text note |
| Active | No | Untick to keep the record but stop the scheduler honoring it |
- Click Save. The grid shows Scope = Whole Day.
Use Recurring each year for anything on the public calendar. Entering one row per year works, but the year nobody remembers to add is the year the scheduler books straight through the holiday.
Step 4: Add a Partial Holiday
A partial holiday blocks part of a day: an early release, a union assembly, a quarterly all-hands.
- On the Plant Holidays page, click Add Holiday.
- Enter a Name (for example
Quarterly All-Hands) and the Date. - Untick Closes the whole day. The Start Time and End Time fields appear.
- Enter the blocked window, for example
10:00to10:45. - Click Save. The grid shows Scope = Partial and the window in the Window column.
The scheduler charges each shift only its own overlap:
blocked hours = max(0, min(shift end, holiday end) − max(shift start, holiday start))
| Shift | Window | Overlap | Result |
|---|---|---|---|
| Day | 08:00 to 16:00 | 0.75 h | 8 h becomes 7.25 h per machine |
| Night | 16:00 to 00:00 | none | unchanged |
On a two-instance work center that day shift offers 14.5 hours instead of 16, because the reduction applies before the instance multiplier. One record covers the whole plant and repeats automatically if you tick recurring.
Step 5: Handle One-Off Days With Overrides
Approved Saturday overtime, a half-day PM window, a temporarily de-rated machine: none of these belong in the shift.
- On the work center's row, click the per-day capacity button. You can also double-click a Total Capacity cell in Schedule > Resource Calendar.
- Select the shift and adjust the date range.
- Find the day in the grid and type the hours in the Capacity (h) column.
- Add a Reason, for example
Overtime approved, rush order. - The change saves as you edit and the Overridden column ticks. Click Reset on the row to undo it.
Three rules make overrides behave:
- Enter the day total, not per-machine hours. Three instances at four hours each is a Capacity (h) of 12. The engine uses the number exactly as typed.
- Overrides are per shift. A work center running day and night needs both overridden to change the whole day.
- They persist until you reset them. Nothing expires an override, so a stale zero from last month's shutdown will quietly hold that day closed.
For a longer period, work out the per-day number once and enter it down the column. A retooling week that can only guarantee 60 machine-hours across five days on one shift is 12 hours a day, typed five times with the same reason. A date-range override that would hold the whole budget in a single record exists in the engine but has no visible entry point in the current release, so the per-day route is the one to use.
Step 5b: Maintenance and Downtime
The slug of this page promises downtime, so here is the honest answer, because it is not where people expect it.
EDGEBIC's engine understands standalone downtime records, including ones that recur on a weekday. The current release has no screen for creating them, and no recurrence picker anywhere in the calendar. So maintenance reaches the plan by one of the two routes you already have:
| The loss | Where it goes |
|---|---|
| Standing and weekly, for example an hour every Friday | Into the shift hours. Give that machine its own calendar with a shorter Friday, and it never needs maintaining again |
| Dated, for example a teardown on the 14th | A per-day capacity override on that work center, shift, and date, with a reason |
| Plant-wide and dated, for example a safety stand-down | A partial plant holiday, which charges each shift only its own overlap |
Note what is not available: there is no way to say "every Wednesday" once. The plant holiday's Recurring each year flag matches the same month and day annually, not a weekday, so it will not carry a weekly PM. Standing weekly losses belong in the shift definition for exactly that reason.
Step 6: Model the Awkward Cases
Three patterns come up in almost every implementation and none of them has an obvious field.
A lunch break. Define the shift hours net of the break (08:00 to 16:00 with a working lunch). A partial holiday works for a one-off interruption but not for a daily break, since the recurring flag repeats annually by month and day rather than every day. If no job may span the break, define two shifts instead: Morning 08:00 to 12:00 and Afternoon 13:00 to 16:00. The two-shift version is the only one that hard-splits an operation.
A machine down for one day. Use a per-day capacity override set to zero on the affected work center and shift, with a reason. That blacks out the cell, keeps the plant calendar untouched, and documents itself.
Retiring a shift. Untick the shift's active flag rather than deleting it. Schedules already generated keep their dates either way, but the next run will have no capacity from that shift, so the plan will move. Check which work centers use it before you retire it, and clean up their shift lists afterwards: a work center still referencing a retired shift keeps the association and loses the hours, which reads as a mysterious capacity drop.
Step 7: Run the Schedule
Nothing you have done so far has moved a single job. Saving a shift or a holiday changes only the capacity calendar. Existing schedules keep their dates, including allocations that may now sit outside working hours.
Run Drive Schedule and review the result before communicating dates. Completed work is never moved by a reschedule, so rerunning is safe on jobs already in progress. The run itself is described in the scheduling engine guide.
Here is what the rerun is worth. A 20-hour milling job on a single-instance work center, day shift only, starting Monday morning:
| Shift length | Monday | Tuesday | Wednesday | Finishes |
|---|---|---|---|---|
| 8 h/day | 8 | 8 | 4 | Wednesday 12:00 |
| 10 h/day | 10 | 10 | 0 | Tuesday 18:00 |
A full day earlier, with nothing changed but the calendar.
A Worked Setup, Start to Finish
A two-shift plant setting up from scratch:
- Day Shift: Monday to Friday, 08:00 to 16:00. Total Hours 40.
- Night Shift: Monday to Friday, 16:00 to 00:00. Total Hours 40.
- Every work center keeps Use Global Shifts checked, so all six show the Global badge and work 16 hours a day per instance.
- Independence Day: whole day, recurring each year.
- Quarterly All-Hands: partial, 10:00 to 10:45.
- Run Drive Schedule. The engine skips the holiday entirely, charges 7.25 hours instead of 8 on the all-hands day, and the Gantt shows jobs flowing around both with no manual intervention.
Next
Understand exactly how those layers resolve into a number in how EDGEBIC resolves capacity day by day. Read the shift and calendar mistakes before you go live. And if a machine turns up with no hours at all, the zero-capacity checklist works through the causes in order.
Expert Q&A: Deep Dive
Q: We added Saturday hours to our day shift, but jobs still refuse to schedule on Saturdays. What is going on?
A: Weekend production is off by default at the work center level, so a Saturday can carry shift hours and still be skipped by the date gate before capacity is ever calculated. The practical route for occasional weekend work is a per-day capacity override on the specific Saturdays you actually intend to run, entered per shift and per work center, with a reason recorded. That also gives you an audit trail explaining why one Saturday was worked and the next three were not, which a permanent shift change never does.
Q: Our night shift work shows up on the Gantt a day earlier than the crew expects. Did we enter the shift wrong?
A: Probably not. An overnight shift, say 22:00 to 06:00, is attributed to the calendar day it starts on. A slice running 22:00 Tuesday to 06:00 Wednesday belongs to Tuesday's allocation, even though most of the hands-on time happens on Wednesday. That is consistent across the Gantt, the allocation records, and the capacity screens, so once you read overnight rows against their start day the numbers reconcile. If you want the split to read differently for reporting, model the pattern as two shifts rather than reinterpreting one.
Frequently Asked Questions
Ready to Transform Your Production Scheduling?
User Solutions has been helping manufacturers optimize their production schedules for over 35 years. One-time license, 5-day implementation.

User Solutions Team
Manufacturing Software Experts
User Solutions has been developing production planning and scheduling software for manufacturers since 1991. Our team combines 35+ years of manufacturing software expertise with deep industry knowledge to help factories optimize their operations.
Share this article
Related Articles
How an Open EDGEBIC Screen Notices Someone Else's Edit
On a shared database, a change made on one workstation reaches every other open screen within a few seconds, without anybody pressing anything. How the change signal works and why your selection survives it.
What Changes When EDGEBIC Moves to a Shared Database
Moving EDGEBIC from one workstation to a shared SQL Server changes three assumptions at once: who may overwrite whom, how an open screen stays current, and who may run the scheduler.
What the EDGEBIC Refresh Button Actually Does
The refresh button forces a full re-read from the database, which is not the same as closing a screen and reopening it. Why the distinction matters on a shared database, and when to press it.
