Automation Blog

How to Run Zaps Only During Business Hours in Zapier

How to add a business-hours gate to any Zap — checking the current time and day of week and stopping execution outside of working hours, so notifications, tasks, and messages only fire when your team is available to act on them.

ZapierSchedulingZapier Tips

By Troy Tessalone · · 4 minutes

Automation Guide

A practical field guide from Automation Ace.

How to Run Zaps Only During Business Hours in Zapier

Zaps triggered by real-time events — a new form submission, a CRM record update, an inbound webhook — fire whenever the triggering event occurs, including nights, weekends, and holidays. For workflows that send Slack messages, create tasks, or notify humans, firing outside business hours creates noise and trains users to ignore alerts. Adding a business-hours filter to a Zap is a practical way to gate time-sensitive automations so they only run when someone is available to act.

Approach: Code Step Business Hours Check

The most reliable method is a JavaScript Code step that checks the current time in a specified timezone and outputs a boolean flag, followed by a Filter step that stops execution if outside business hours:

// Business hours gate: Mon–Fri, 9 AM–6 PM in a specified timezone
const tz = inputData.timezone || 'America/New_York';

const now = new Date();
const parts = new Intl.DateTimeFormat('en-US', {
  timeZone: tz,
  weekday: 'short',
  hour: 'numeric',
  hour12: false
}).formatToParts(now);

const weekday = parts.find(p => p.type === 'weekday')?.value; // 'Mon', 'Tue', etc.
const hour = parseInt(parts.find(p => p.type === 'hour')?.value || '0', 10);

const isWeekday = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'].includes(weekday);
const isBusinessHours = hour >= 9 && hour < 18; // 9 AM to 6 PM

output = {
  is_business_hours: (isWeekday && isBusinessHours) ? 'true' : 'false',
  current_weekday: weekday,
  current_hour: String(hour),
  timezone: tz
};

After this Code step, add a Filter by Zapier step: "Only continue if is_business_hours (Text) Exactly matches true." The Zap stops at the filter for any run outside business hours.

Configuring the Timezone

Pass the timezone as an input data field to the Code step. Use IANA timezone identifiers:

  • US Eastern: America/New_York
  • US Central: America/Chicago
  • US Mountain: America/Denver
  • US Pacific: America/Los_Angeles
  • UK: Europe/London
  • Central Europe: Europe/Berlin
  • Australia Eastern: Australia/Sydney

For a team spread across timezones, choose the timezone that defines business hours for the people who need to act on the notification — typically the team that owns the workflow.

Customizing Hours and Days

Adjust the hour range and weekday list for your business schedule:

// 8 AM to 5 PM, Monday through Saturday
const isWeekday = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'].includes(weekday);
const isBusinessHours = hour >= 8 && hour < 17;
// Lunch break exclusion: 9–12 and 13–18 (skip noon hour)
const isBusinessHours = (hour >= 9 && hour < 12) || (hour >= 13 && hour < 18);

Alternative: Formatter by Zapier for Simple Day/Time Checks

If a Code step is not available on your plan, Formatter by Zapier can extract the current time for use in a Filter. Add a Formatter step using "Date/Time → Format" with "now" as the input and set the output format to the day of week or hour. This requires multiple Formatter steps (one for day, one for hour) and produces less flexible output than the Code step approach. For most practical cases, the Code step is cleaner.

Handling After-Hours Triggers: Delay vs. Drop

Filtering out after-hours runs means those events are dropped — the Zap stops and the work is not done later. If you need after-hours events to be processed at the start of the next business day, filtering is not enough. The two alternatives:

  • Queue-and-drain pattern: Store the trigger payload (via Zapier Storage API or Zapier Tables) when received outside business hours. A second Zap on a scheduled trigger at business-hours start drains the queue. This requires more infrastructure but ensures no events are lost.
  • Delay Until: Use Delay by Zapier's "Delay Until" action to hold the Zap in a paused state until the next business day at 9 AM. This works for low-volume workflows where holding Zaps in queue is acceptable. Note that paused Zaps consume a queue slot, and very long delays (overnight, weekend) may behave differently depending on your Zapier plan's timeout limits.

Zapier Tables as a Business-Hours Queue

For a more robust queue-and-drain, Zapier Tables can act as the holding store:

  1. Zap A triggers on the event, runs the business-hours check, and if outside hours, writes the payload to a Zapier Tables record.
  2. Zap B runs on a Schedule by Zapier trigger (e.g., daily at 9 AM on weekdays), queries Zapier Tables for pending records, processes each one, and marks them as processed.

This pattern handles overnight events and weekend accumulation without losing records, at the cost of additional Zap complexity and Zapier Tables usage.

The business-hours Code step pattern is three lines of logic: get the current day and hour in the right timezone, check if they fall in range, output a flag. Pair it with a Filter step and you have a reliable gate that prevents any downstream step from running outside the window you define. Timezone handling is the part that trips people up — always specify an IANA timezone explicitly rather than relying on server time.

For scheduling Zaps at custom intervals, see running Zaps on a custom schedule. For parsing timestamp parts including day of week in a Code step, see parsing a timestamp into parts with JavaScript. For help designing a business-hours workflow, talk to Automation Ace.

ZapierSchedulingZapier Tips

Disclaimer: This article may include links to apps, products, or services. Some links may be affiliate links, which means Automation Ace may earn a commission at no extra cost to you.

Build Better Systems

Ready to automate with confidence?

Share your tools, process, and goals. Automation Ace can design the workflow, integration, AI assist, or code bridge that fits your business.

Start a Project →