My Low Tech Holiday Guardrail System for Cold Outbound
MacOS notification + Claude Code session start hook + one bash script
As a majority of my prospects (I work at Riverside as a GTM engineer) are based in the USA, the performance of my outbound campaigns naturally drops whenever there’s a federal holiday.
Typically, replies tend to slow on:
1 to 2 days before the holiday
The holiday itself
Hence, the intention here is to pause all outbound sends on federal holidays.
US Federal Holidays in 2026
New Year’s Day, Thursday, January 1
Martin Luther King Jr. Day, Monday, January 19
Presidents’ Day, Monday, February 16
Memorial Day, Monday, May 25
Juneteenth, Friday, June 19
Independence Day (observed), Friday, July 3
Labor Day, Monday, September 7
Columbus Day, Monday, October 12
Veterans Day, Wednesday, November 11
Thanksgiving Day, Thursday, November 26
Christmas Day, Friday, December 25
My Low Tech Holiday Guardrail System
I wanted a reminder system that prompts me proactively whenever there’s a federal holiday. And it should be built on top of the two things I use most at work:
Claude Code
My Macbook Pro
I also wanted the system to self renew. Meaning when 2026 ends, it should remind me to add the 2027 dates. Same for 2028, 2029, and so on. Otherwise I’ll forget and the whole thing quietly stops working.
Build #1: Bash logic, federal holiday reminder
This is the brain of the whole holiday guardrail system. A single bash script that holds the 11 holiday dates for 2026, checks today’s date against the list, and pops a macOS dialog if today is a holiday. There’s a once-per-day guard so it won’t spam me twice on the same day.
Build #2: Bash logic, renewal nudge
Inside the same script, a single if-branch checks whether today is December 15, 2026. If yes, it gives me a reminder to add the 2027 dates.
Build #3: macOS LaunchAgent (launchd)
This is the macOS popup, built using a LaunchAgent. It runs my script every day at 12:00 SGT. If today is a holiday, the popup fires. If not, the script stays silent.
Build #4: Claude Code SessionStart hook
This is the Claude Code trigger, built using a SessionStart hook. It runs the same script whenever I start, resume, or /clear a Claude Code session. On a holiday, it pops the dialog AND injects a reminder into Claude’s context, so Claude will push back if I try to send something outbound that day.
This is also what triggers the renewal nudge on December 15, 2026.
Why I Stopped at a Reminder?
I could have gone one step further: have Claude Code automatically pause my Instantly campaigns on federal holidays. This is 100% possible but I just chose not to.
For me personally, I retain things best when I do them hands on first. Pausing campaigns manually on a few holidays gives me the muscle memory of opening Instantly, checking which sequences are active, and making the call myself.
Once I’ve done that a few times and actually understand the flow, then full automation becomes the next step that I’d take.

