Back to blog

Guides · May 6, 2026

How to run a Zapier zap every 5 minutes (or any custom interval)

Zapier's Schedule trigger caps at hourly on the free plan and doesn't support real cron syntax. Here's how to fire a zap every 5 minutes, or on any cadence you want, using Crontap as an external trigger.
crontap.com / blog
Zapier's built-in Schedule trigger caps at hourly on the free plan and doesn't support real cron expressions. Here's how to trigger a Zapier zap every 5 minutes, every 10 minutes, or on any custom cron by driving it from Crontap instead.

You want a Zapier zap to run every 5 minutes. Or every 10. Or every weekday at 09:30 local time. Or on the first Tuesday of every month.

Zapier's built-in Schedule by Zapier trigger won't get you there. The free plan caps out at hourly intervals, and even paid plans don't expose full cron syntax or per-zap timezones. If you want a specific cadence, you have to leave the dropdown world and give the zap an external trigger.

The good news: Zapier already has the tool for this. It's called Webhooks by Zapier. The missing piece is something to call that webhook on a schedule. That's where Crontap comes in.

Why the built-in Schedule trigger isn't enough

Zapier's Schedule trigger works for simple cases. It falls over when you need any of these:

  • Intervals under 1 hour: not available on the free plan, and even on paid plans the shortest option is 1 minute via the built-in Delay, not the Schedule trigger.
  • Real cron syntax: */10 * * * * or 0 */2 * * * aren't things you can type into a dropdown.
  • Per-zap timezones: your account has one timezone; every scheduled zap inherits it.
  • Retries and failure alerts: if a zap skips a run, you find out in your next Task History audit, which is too late.

Driving the zap from an external scheduler gets you all of this, plus a log of every run that's independent of Zapier's own.

The shape of the setup

Crontap (cron)  →  HTTP POST  →  Webhooks by Zapier  →  rest of the zap

The Webhook trigger lives at the start of the zap instead of the Schedule trigger. Crontap pings it on the cadence you want.

Step 1: Build a zap with a webhook trigger

Log in to Zapier and create a new zap.

  1. For the trigger, pick Webhooks by Zapier.
    • Trigger event: Catch Hook.
    • Press Continue.
  2. No child key needed, just press Continue again.
  3. Zapier shows you a Webhook URL like https://hooks.zapier.com/hooks/catch/1234567/abcdefg/. Copy it. We'll need it for Crontap.
  4. Leave this tab open; we'll come back to finish the test.

You can add whatever action steps you need after the webhook. For this guide we'll assume the zap does something like "send a Slack message" or "add a row to Airtable"; the specifics don't matter for the scheduling.

Step 2: Create a Crontap schedule pointed at the webhook

Open Crontap (sign up free if you don't have an account yet).

  1. Create a new schedule.
  2. Paste the Zapier Webhook URL into the URL field.
  3. Set the Method to POST.
  4. Optionally, add a JSON Body payload. Anything you put here shows up in the Zap as input data for later steps. A minimal version:
{
  "source": "crontap",
  "run_reason": "scheduled"
}

Step 3: Pick the cadence you actually want

This is the part Zapier's Schedule trigger can't do. Crontap accepts both human-readable and cron input.

Human-readable examples:

  • every 5 minutes
  • every 10 minutes
  • every 2 hours
  • every weekday at 09:30
  • every Monday at 08:00

Cron examples:

*/5 * * * *        # every 5 minutes
*/10 * * * *       # every 10 minutes
0 */2 * * *        # every 2 hours on the hour
30 9 * * 1-5       # weekdays at 09:30
0 8 1 * *          # 1st of the month at 08:00

As you type, Crontap shows the next runs so you can sanity-check. If you're stuck on cron syntax, our cron cheat sheet has the common patterns.

Set the Timezone per schedule. This is the bit Zapier itself won't do for you, and it's useful if your team is global and you want a zap to fire at "9am local time in Singapore" regardless of where your Zapier account sits.

Step 4: Test the trigger

Before you save, press Perform test in Crontap. It sends a real request to your Zapier webhook.

Then go back to the Zapier tab:

  1. Press Test trigger.
  2. You should see Zapier confirm it received the request and show you the request data.

If it didn't work, double-check:

  • Did you copy the webhook URL without trailing whitespace?
  • Is the method set to POST in Crontap?
  • If your payload is JSON, is the Content-Type set to application/json? Crontap adds this automatically when you use the JSON editor.

From here, continue configuring the zap's action steps and press Publish when you're happy.

Step 5: Wire up failure notifications

Zapier has Task History, but it's a pull-based audit, not a push-based alert. Add a failure integration in Crontap so you hear about problems as they happen:

  • Slack via Incoming Webhook: drops a message with status code and response body in the channel you pick.
  • Discord via channel webhook: same shape, different platform.
  • Telegram via bot webhook: works well for on-call rotations.
  • Email if you prefer async.

A common pattern for high-frequency schedules (every 5 minutes or faster) is to only page on failures, not successes. Keep Call on success off for those and your Slack channel stays quiet unless something needs your attention.

Avoiding cannibalization with your other Crontap schedules

If you also have Crontap schedules pointed at other Zapier webhooks, keep them as separate schedules rather than one schedule pointing at many URLs. That way:

  • Each webhook can have its own cadence.
  • Each has its own failure log.
  • Breaking one doesn't take down the others.

Crontap's free plan gives you 1 schedule, and Pro gives you unlimited, so it scales cleanly as you add zaps.

When to stick with Zapier's Schedule trigger

Don't over-engineer this. The built-in Schedule trigger is genuinely fine when:

  • Your cadence is "every day at a rough time" and you don't mind a ±15 minute window.
  • You only have a handful of zaps on the same timezone.
  • You don't care about retries; the zap is idempotent and a missed run is fine.

For anything more serious (precise cron, multiple timezones, minute-level intervals, or proper failure alerting), the external webhook approach pays for itself.

Wrapping up

We covered:

  • Why Zapier's Schedule trigger breaks down for sub-hour, cron-based or timezone-specific cadences.
  • How to swap it for a Webhooks by Zapier trigger driven by Crontap.
  • How to set up the schedule, test it, and wire up failure notifications.

If you're here because you're outgrowing Zapier's built-in scheduling, you might also like our guide on scheduling n8n workflows externally: same idea, different automation platform. Or if you want to deepen your cron-fu, the cron syntax cheat sheet has you covered.

From the blog

Guides, patterns and product updates.

Tutorials on scheduling API calls, webhooks and automations, plus deep dives into cron syntax, timezones and reliability.

Guides

Schedule n8n workflows externally via webhook

n8n's Schedule Trigger is fine for basic cadences, but it struggles with precise cron, timezones and triggering from outside n8n. Here's how to schedule n8n workflows using Crontap and a Webhook trigger instead.

Guides

Run a Zapier zap every 5 minutes (or any custom cron)

Zapier's Schedule trigger is limited: hourly floor on free, no cron syntax, no timezones per zap. Here's how to drive a zap on any cadence you want using Crontap as the external trigger.

Reference

Cron syntax cheat sheet with real-world examples

Cron syntax without the math. Every pattern you're likely to reach for (every 5 minutes, weekdays, business hours, first of the month), with a practical example and a link to a free debugger.

Guides

Integrate Crontap schedules with Make.com Webhooks

Learn how to use Crontap webhook schedules to integrate with Make.com and thousands of apps: sms, email, telegram, airtable, slack, teams, twitter or your own custom webhook e.g. a cloud function.