Quick answer
Generate dates from a stable rule and treat holidays and skips as separate exceptions. A hand-maintained list of dates decays within one cycle.
Weekly intervals are stable
Anything expressed in days or weeks lands on a predictable weekday forever. Every 14 days from a Tuesday is always a Tuesday. This makes weekly and fortnightly rules easy to timetable, easy to remember and easy to verify.
If you have a choice, prefer them. A four-week cycle gives thirteen occurrences a year instead of twelve, keeps the weekday fixed, and avoids every complication that monthly rules introduce.
Use this guide with the right tool: Open the Recurring Date Calculator for the next occurrence in a repeating day, week, month or year schedule. If the question shifts, compare it with the Add Months to Date Calculator or the Add Years to Date Calculator.
Monthly rules carry the end-of-month problem
A monthly rule keeps the day number and moves the month, so it drifts across weekdays and hits the short-month problem whenever the anchor day is 29, 30 or 31. A schedule anchored on the 31st exists in only seven months of the year.
The correct handling anchors on the original day number and clamps per occurrence — 31 January, 28 February, 31 March — rather than continuing from each clamped result, which would migrate the whole schedule to the 28th permanently. Any implementation that gets this wrong fails silently and is hard to notice.
Nth-weekday rules
"The second Tuesday of each month" is a different kind of rule and often the better one for meetings. It keeps the weekday, never hits a short-month problem, and moves between the 8th and the 14th, which is predictable enough to plan around.
The one edge case is 'the fifth Friday', which does not exist in every month. Rules using a fifth occurrence need an explicit fallback — usually the last occurrence instead.
Exceptions belong outside the rule
Holidays, shutdowns and one-off skips interrupt a sequence without changing what the sequence is. Model them that way: generate the full series from the rule, then mark individual occurrences as cancelled or moved.
Editing the rule to route around an exception is what produces schedules nobody can maintain. Six months later the rule no longer describes the pattern, and the next person has to reverse-engineer the intent from a list of dates.
Worked example
The shape of the calculation stays the same with your own figures. What changes is the source of the rule, so check that before treating the number as settled.
Common mistakes to avoid
- Continuing a monthly sequence from each clamped date. Anchor on the original day number every time, or the schedule migrates and never recovers.
- Using a monthly rule for a timetabled meeting. It drifts across weekdays. A four-week rule keeps the day fixed.
- Building exceptions into the interval. Generate from a clean rule and mark exceptions separately, or the schedule becomes unmaintainable.
Use the right calculator
Start with whichever matches the information you already hold. The other two are there for when the question shifts.
Frequently asked questions
What happens to a 'fifth Friday' rule?
Some months have no fifth Friday. Define a fallback — usually the last Friday — or those months are silently skipped.
Should recurring dates avoid weekends?
Only if the rule says so. If they should, decide whether to move forward or backward and apply it consistently.
How far ahead should I generate?
Far enough to be useful, close enough to be accurate. Regenerate from the rule rather than extending a stored list.

