I hope this helps make this more clear. This is the best attempt at trying to bridge Communication with Computer Science.
"DentPal Holiday Rules (No Hardcoding)
- Core requirement
All holidays must be created/edited in UI and stored as data. No holiday names, dates, or logic may be hard-coded.
- Holiday rule types (must support all)
Each Holiday must be one of these rule types:
Fixed Date (Yearly): same month/day every year (e.g., 07/04).
Fixed Date Range (Yearly): same start/end month/day every year (e.g., 12/24–12/26).
Nth Weekday of Month (Yearly): e.g., 4th Thursday of November (Thanksgiving), 3rd Monday of January.
Last Weekday of Month (Yearly): e.g., last Monday of May.
Relative to Another Holiday (Yearly): base holiday + offset days (e.g., “Day after Thanksgiving”, “Good Friday = Easter - 2”).
One-Time Date: single non-recurring closure (e.g., weather closure).
One-Time Date Range: non-recurring multi-day closure.
- Observed holiday handling (optional per holiday)
For yearly holidays, support an Observed Policy (UI-selectable):
None (exact date only)
If on Saturday → observe Monday or Friday
If on Sunday → observe Monday or Friday
Nearest weekday (Fri/Mon)
(Observed date is treated as the holiday for automation purposes.)
- Duration + hours (must support)
Each holiday can be either:
All-day, or
Partial-day (start time → end time), including cross-midnight support.
- Scope (must support)
Holidays must be assignable at:
Customer default (template) and
Clinic override (add/remove/modify per clinic)
Clinic evaluation uses the clinic’s timezone.
- What holidays control (minimum)
Holidays must be usable by automation rules to:
Pause or reschedule outbound messages (reminders/campaigns)
Enable “office closed” messaging behavior (optional templates)"