The symptom shows up on the alarm side. Notifications reach a crew that is off rotation, or a night shift gets nothing after midnight. The schedule editor looks right at a glance, but the pattern drifts out of step with the plant calendar within a week or two.
The cause is almost always the same. A 28-day, 12-hour rotation does not fit a single weekly schedule. Each crew has to be broken into small repeating pieces and then recombined.
Skip the Fixes That Don't Work
These are the usual first attempts. Each one fails for a specific reason.
- One weekly schedule per crew with fixed weekdays. A 28-day cycle puts a crew on different weekdays in different weeks. A plain weekly schedule repeats the same weekdays every week. That is not the fault you can tune away.
- One time range of 19:00 to 07:00 on the night days. Day-of-week time ranges run within one calendar day. You have to split the overnight shift into an evening segment (19:00 to midnight) and a morning segment (midnight to 07:00) on the following day.
- An extra child schedule for Sunday because the week seems to start on Monday. This wastes time. The weeks-on/weeks-off counter runs from the start date you enter, not from the calendar week.
- Composite schedules on 7.7.0 or 7.7.1. Composite schedules first appeared in 7.7.0 but did not work correctly until 7.7.2. On an older gateway, upgrade before you debug the logic.
Understand How the Repeat Window Counts
Start here. Two behaviors decide the entire build.
- Repeat window. A weekly schedule can repeat on an N-weeks-on, M-weeks-off pattern. For a 28-day cycle, use 1 week on, 3 weeks off. That gives exactly one active week in every four.
- Anchor date. The on/off weeks are counted from the start date. If the start date is a Wednesday, each counted week runs Wednesday to Tuesday. The start date can be in the past, so you can anchor it to the actual day 1 of the rotation.
- Composite logic. A composite schedule is active when any of its member schedules is active. You can use composites as members of other composites. That nesting is what makes an irregular rotation possible.
The consequence: every contiguous block of a crew's rotation becomes its own child schedule. Each child has its own weekdays, its own hours, and its own start date offset into the 28-day cycle.
Decompose Each Crew's Rotation
Lay the 28-day chart out with cycle day numbers, not weekdays. Then pull each crew's work blocks out as separate pieces. Crew D, with day 1 on a Sunday, breaks down like this:
-
D1: Sun, Mon, Tue, Wed, 07:00 to 19:00. 1 week on, 3 weeks off. Start on cycle day 1. -
D2: Thu, Fri, Sat, 07:00 to 19:00. Same repeat. Start on cycle day 19. -
D3: Thu, Fri, Sat, Sun, 19:00 to midnight, plus Fri, Sat, Sun, Mon, midnight to 07:00. Same repeat. Start on cycle day 12. -
D4: the remaining night block. Same repeat. Start on cycle day 23. Take its weekdays from your chart.
Check each child against one rule: every active day, including the post-midnight morning, must fall inside the 7-day window counted from that child's start date. D3 starts on day 12, which is a Thursday. Its window runs Thursday through Wednesday, so the Monday 00:00 to 07:00 segment is still inside it. If a night block starts on the last day of its window, the morning segment lands in an "off" week and never fires. Move that morning segment into its own child with a start date one day later.
Build the Schedules and Nest the Composites
Do this once per crew. It is repetitive, but you only build it once.
- Confirm the gateway runs Ignition 7.7.2 or later.
- Pick the real calendar date of cycle day 1. Calculate the calendar date for each child's start day from it, for example day 12 = day 1 + 11 days.
- In the gateway alarming schedule configuration, create the first child,
D1. Set the weekdays and the 07:00 to 19:00 range, enable the repeat as 1 week on and 3 weeks off, and set the start date. - Create
D2the same way with its own weekdays and start date. - Create
D3. Enter the evening range on the evening days and the midnight-to-07:00 range on the following days. - Create
D4from the chart. - Create composite
D12fromD1andD2. - Create composite
D34fromD3andD4. - Create the final composite
DfromD12andD34. Assign only this top-level schedule to the crew's users or roster. - Repeat for crews A, B, and C using their own day offsets.
Keep the naming strict: crew letter plus block number for children, and concatenated numbers for the intermediate composites. When a shift pattern changes, you edit one child and leave the rest alone.
Verify at the Shift Boundaries
A schedule that looks right in the editor can still be off by one day. Test the edges, not the middle of a shift.
- Pick one full 28-day cycle and mark each crew's expected on/off state at 06:59, 07:00, 18:59, 19:00, 23:59, and 00:00 on every block change day.
- Assign the crew's top-level composite to a test user in a test roster. Drive a test alarm from a memory tag through a pipeline that notifies that roster.
- Fire the alarm inside and outside each block, and on the first and last day of each child's window. Confirm the notification goes out only when the chart says the crew is on.
- Check the night blocks after midnight on the final morning. A missing notification here means that morning segment fell outside its child's 7-day window.
- Check that exactly one crew is scheduled at every boundary across all 28 days. Two crews active means an overlapping child. Zero means a gap.
Recurring Traps on Rotating Schedules
| Symptom | Likely cause | Fix |
|---|---|---|
| Night crew not paged after midnight on the last night | Morning segment falls outside the child's 7-day window | Split the morning segment into its own child with a later start date |
| Whole crew offset by one or more days | Start date calculated from the calendar week instead of cycle day 1 | Recalculate start dates as cycle day 1 plus the day offset |
| Crew paged every week | Repeat not enabled, or set to other than 1 on / 3 off | Set 1 week on, 3 weeks off on every child |
| Composite never goes active or behaves erratically | Gateway older than 7.7.2 | Upgrade to 7.7.2 or later |
| Two crews paged at 07:00 or 19:00 | Adjacent children overlap on the boundary | Align end and start times exactly at the handover |
| Roster behaves oddly after a pattern change | Users assigned to a child instead of the top-level composite | Assign only the final crew composite |
FAQ
Why does my Ignition alarm schedule ignore the Monday start of the week?
The weeks-on/weeks-off repeat counts 7-day windows from the start date you enter, not from the calendar week. A Wednesday start date gives Wednesday-to-Tuesday windows, so you do not need an extra child schedule for Sunday.
Why does a 19:00 to 07:00 night shift need two time ranges?
Weekday time ranges apply within one day. Enter 19:00 to midnight on the evening days and midnight to 07:00 on the following days, and keep both inside the same child's 7-day window.
Why does my composite alarm schedule not work in Ignition 7.7?
Composite schedules were introduced in 7.7.0 but did not function correctly until 7.7.2. Upgrade the gateway to 7.7.2 or later before you troubleshoot the schedule logic.
When should I escalate an Ignition alarm schedule problem to official support?
Escalate when the gateway runs 7.7.2 or later, every child passes the window check, and a boundary test still shows the composite active or inactive against its members. Send Inductive Automation support the schedule configuration, the test times, and the gateway version through the official support channel.