Calendars are here
Cron expressions are precise but context-free. 0 2 * * * means every night at 2 AM, with no idea whether that night is Christmas Eve, the middle of a change-control freeze, or the peak of a Black Friday traffic surge. CTFreak 1.39.0 adds calendars to fill that gap.
The idea is simple: you define a named set of time periods, attach it to a scheduled task, and tell CTFreak whether those periods are off-limits (Exclude mode) or the only time it may run (Restrict mode). What changes is that the context finally comes from your business, not from a cron string.
Automation that respects your business calendar
Consider a few situations that are awkward or impossible to express with cron alone:
An e-commerce platform
Your nightly database maintenance window is 0 3 * * *, normally fine. Then Black Friday arrives. Traffic is still high at 3 AM, the support team is watching dashboards, and the last thing you want is a vacuum running on your orders table. With an EXCLUDE calendar, you mark those 72-hour periods once, and the task skips them automatically every year. No intervention, no “has anyone thought about unscheduling this task?”
A managed service provider with change-control windows
Each client contract defines when you’re allowed to push changes: Client A allows Saturday night only, Client B allows anytime outside business hours, Client C has a quarterly freeze in June. Instead of maintaining separate cron schedules per client, you define one calendar per client and attach it to their deployment task. Adding a new freeze is editing a calendar, not rewriting a cron expression.
A finance team running regulatory reports
Reports must be delivered during business hours so that a human can review and sign off before the data leaves the building. The catch: business hours are asymmetric (Monday to Thursday 9 AM–6 PM, Friday 9 AM–5 PM), and the office closes for a two-week audit window every year. Encoding all of that into cron would take multiple entries and still couldn’t handle the audit window. A single RESTRICT calendar does it cleanly, and your audit window is just a period in the calendar.
An on-call team with a rotation
A task that sends a high-priority alert should only fire when someone is actually on call. If your on-call rotation lives in any tool that exports a standard iCal feed, you can point a URL calendar at that feed and attach it to the alerting task in RESTRICT mode. The calendar stays in sync with your rotation automatically; you never have to touch the task when the schedule changes.
A trading desk running intraday snapshots
Position snapshots run every 15 minutes during market hours: */15 9-16 * * 1-5. That cron expression handles time-of-day and day-of-week, but it still fires on market closure days, and on those days the data feeds may return stale or partial values that corrupt the snapshot. The fix is a RESTRICT calendar subscribed to the exchange’s holiday feed (NYSE, Euronext, LSE and others publish standard iCal feeds). The task only runs on actual trading days; the calendar updates itself when the exchange publishes its holiday schedule for the next year.
Why we chose iCal as the calendar import format
CTFreak does let you add periods manually, one at a time, which is the right tool for occasional additions or one-off adjustments. But it’s not how you want to load 250 public holidays for a country or a full year of exchange closures.
iCal (RFC 5545) is the right answer for that. Every calendar application exports it: Google Calendar, Outlook, Apple Calendar, Nextcloud. Hundreds of public feeds exist for public holidays, market closures, sports schedules, and more, with no authentication required. The format supports recurring events natively, so a first Sunday of the month maintenance window is a single iCal rule, not 12 separate entries. And because it’s a plain text standard, an AI assistant can generate a valid .ics file from a plain-language description in seconds.
Where to start
If you’re already running CTFreak, upgrade to 1.39.0 and open Calendars in the navigation. The documentation covers the setup in detail, including how to import public holiday files and subscribe to live iCal feeds.