A minute-level Zap eats 43,200 Zapier tasks a month before doing any actual work. The Starter plan gives you 750 tasks. The Pro plan gives you 2,000. The math does not work, and yet teams keep buying bigger Zapier plans to get bigger task quotas, when the thing eating most of the quota is the clock itself. Here is the pattern that fixes the math: keep Zapier as the workflow, move the clock out, and stop paying tasks to a Schedule trigger that does not do any work.
If you just want the short version: replace the Zap's Schedule trigger with a Catch Hook (Webhooks by Zapier), point Crontap at the Catch Hook URL, and set the cadence in Crontap. The Zap still runs, the actions still consume tasks for the actual work, but the clock costs zero, for $3.25 a month billed annually instead of an inflated Zapier plan.
How Zapier Schedule billing works
Zapier's pricing model is straightforward in principle: every "task" your Zaps consume counts against your monthly quota. A task is a successful action step in a Zap, including the trigger fire when the trigger is something Zapier-internal like Schedule by Zapier.
The Zapier pricing page lists the task quotas per plan. For the current pricing tier (sanity-check with the page directly, since these move around):
- Free: 100 tasks per month total. 15 minute Zap polling cadence floor.
- Starter: 750 tasks per month from $19.99/mo. 15 minute polling cadence floor on Starter.
- Professional: 2,000 tasks per month at the entry price. 5 minute cadence floor.
- Team: 50,000 tasks per month, 1 minute cadence floor.
- Company: higher quotas, 1 minute cadence floor, custom pricing.
The detail that matters: the Schedule by Zapier trigger fires count as tasks. Every "Every Hour", "Every Day", "Every Minute" fire is one task against the quota, before the Zap has done a single useful thing.
This is fine when the cadence is daily or hourly. A daily Zap fires 30 times a month. An hourly Zap fires 720 times a month. Both are absorbable inside the Starter quota with room to spare.
It stops being fine the moment you turn the cadence up to minute-level.
The math: minute, 15-minute, hourly Zaps against each plan
The numbers are unforgiving once you put them on paper.
A minute-level Zap fires 1,440 times a day. Across a 30-day month, that is 43,200 fires. Each fire is one task. The Zap has done nothing useful yet.
Lay that against the plan tiers:
- Free, 100 tasks: a 1-minute Zap blows through the entire monthly quota in 100 minutes. Less than two hours.
- Starter, 750 tasks: 750 / 43,200 is roughly 1.7% of the month. The Zap exhausts the plan in 12.5 hours.
- Professional, 2,000 tasks: 2,000 / 43,200 is roughly 4.6% of the month, or just over a day and a half.
- Team, 50,000 tasks: still consumes 86% of the monthly quota on the schedule alone, before the Zap does any actual work downstream.
For a 1-minute Zap on the Starter plan, the schedule alone eats roughly 57x the plan's task allowance. You will hit the cap on day one and either pay overage, upgrade, or watch the Zap stop firing.
A 15-minute Zap is more reasonable: 96 fires per day, 2,880 per month. That fits inside the Pro plan if the Zap itself is short. But you are still paying tasks for the schedule.
An hourly Zap is fine. 720 fires per month. The Schedule trigger is not the problem at hourly cadence; the problem is when you need finer-grained schedules and the math turns against you.
The wedge is straightforward: at minute or 5-minute cadence, the Schedule trigger consumes most of your task quota and the actual work consumes the rest. If you can move the schedule out of Zapier, you reclaim that quota for the work.
The external-cron pattern
The pattern is one of the cleaner refactors in Zapier-land. You do not migrate the Zap. You do not replace the actions. You only swap the trigger.
Crontap (cron) → HTTPS POST → Zapier Catch Hook → rest of the Zap
Crontap fires at zero task cost. The Catch Hook receives the HTTPS POST. The Zap runs as before, with the same filters, paths, and actions you already shipped. The only thing that changed is what kicked it off.
Step 1: Swap the Zapier Schedule for a Catch Hook
Open the Zap. Edit the trigger. Replace the existing Schedule by Zapier trigger with a Catch Hook from Webhooks by Zapier.
- In the Zap editor, click the trigger step.
- Search for and select Webhooks by Zapier.
- Pick Catch Hook as the event.
- Press Continue. No trigger configuration is needed for a basic Catch Hook.
- Zapier shows you a webhook URL. Copy it. Keep this tab open.
The downstream steps (the filters, the actions, the formatter steps) all stay exactly as they are. Each one still consumes one task per fire when it runs, which is the part you actually want to pay for.
Step 2: Fire the Catch Hook from Crontap
Head to Crontap and create a new schedule.
- URL. Paste the Catch Hook URL you copied from Zapier.
- Method.
POST. - Headers. Optional. Add
Authorization: Bearer <your token>if you want to filter on the Zap side, or leave headers empty if the Catch Hook is your only auth boundary. - Cadence. Type plain English ("every 5 minutes") or paste a cron expression. Crontap previews the next 5 fires inline so you can sanity-check before saving.
- Timezone. Pick the IANA zone that matches the schedule's intent. Per-Zap timezones are a Crontap feature; the Schedule trigger uses your account-wide timezone setting.
- Failure alerts. Add an integration: email / webhook (Slack / Discord / Telegram). Crontap fires on 4xx and 5xx with the response body and timing in the payload, so a Slack alert is immediately useful when the Catch Hook is down.
Press Perform test to fire a real request before you trust the cadence. If the Catch Hook returns 200, you are done. If you see 4xx, the Catch Hook URL is wrong. If you see 5xx, Zapier itself is having a bad day and the alerting just proved itself.
Step 3: Keep the rest of the Zap
This is the part that makes the migration cheap. The downstream steps do not change.
Filters still filter. Paths still path. Formatters still format. Actions still send to Slack, write to Sheets, post to HubSpot, whatever you set up. Each downstream task consumes one task per fire, which is the same as it was before. Your task budget now goes entirely to actual work, not to the clock.
If you want to validate the Catch Hook is the right URL, you can also test by hitting the Catch Hook URL with curl from your laptop. The Zap should fire and you should see it in the Zap history exactly like a Schedule-triggered run.
Fix this in 60 seconds with Crontap. Free tier available. No credit card. Schedule your first job →
Worked example: a 5-minute Zap on the Starter plan
A team you have probably been on at some point: one product person, two engineers, a Zapier Starter plan for the marketing automation, a 5-minute Zap that polls a third-party API and posts notable changes to Slack.
Without external cron:
- Schedule trigger fires every 5 minutes.
- 5 minute cadence = 288 fires per day = 8,640 fires per month.
- Starter plan quota: 750 tasks per month.
- Quota is exhausted in roughly 60 hours.
- The team upgrades to Professional ($49/mo, 2,000 tasks/mo) and exhausts that in about 7 days.
- Migrate to Team ($69/mo, 50,000 tasks/mo) for the cadence headroom. Most of the quota goes to the clock; the actual API call and the Slack post each consume one task per fire on top.
With external cron:
- Crontap schedule fires every 5 minutes at zero task cost.
- Zap's downstream steps still consume one task each per fire (one for the API action step, one for the Slack post). 8,640 + 8,640 = 17,280 actual-work tasks per month.
- Zapier plan needed: still Pro or Team for the quota, depending on how many other Zaps you run.
- Crontap cost: $3.25/mo billed annually for unlimited schedules.
- Plan downgrade is on the table once you reclaim the schedule overhead across all your Zaps.
The exact savings depend on how many minute-level Zaps you have and which plan you sit on. The general shape: more frequent Zaps = larger savings. Daily Zaps stay on Schedule and you do not bother. Hourly Zaps are a coin flip. Minute and 5-minute Zaps are a clear win for moving the clock out.
When Zapier Schedule is still the right call
External cron is a shape, not a religion. There are cases where the built-in Schedule by Zapier trigger is still the right answer.
- Daily and weekly Zaps with spare task budget. A daily Zap is 30 fires a month. The schedule overhead is invisible against any plan that fits the rest of your work. There is no reason to move the clock out.
- Hourly Zaps on Team and above. 720 fires a month is roughly 1.4% of a 50,000 task quota. Visible but not painful. If you have headroom, leave it alone.
- Zaps that need to run inside Zapier's exact account-wide timezone. If the Schedule trigger's account timezone is what you want and you do not need per-Zap zones, the built-in is simpler.
- One Zap, one schedule, no other targets. If Zapier is the only platform you fire scheduled work into, adding an external scheduler is one more service to operate. The wedge appears when you have multiple platforms (Zapier plus Make, plus n8n, plus Vercel, plus your own backend) and want a single dashboard for all of them.
For everything else (minute and 5-minute cadence, per-Zap timezones, real cron expressions instead of a dropdown, multiple platforms), the external cron pattern reads cleaner.
For the head-to-head decision page with the at-a-glance table, see Crontap vs Zapier Schedule. For a step-by-step walkthrough of the Catch Hook setup with screenshots, see the existing Integrate cron with a Zapier webhook post; the same shape applies here.
Pricing math you can take to your boss
The cost comparison only matters if it is concrete. Here is the math written out.
For a single 5-minute Zap on the Pro plan: the Zap costs $49/mo (Pro plan), the schedule costs 8,640 tasks per month (43% of the quota). Move the schedule to Crontap and you reclaim 43% of your quota at a cost of $3.25/mo.
For a 1-minute Zap on Team: the Zap costs $69/mo (Team plan), the schedule costs 43,200 tasks per month (86% of the quota). Move the schedule to Crontap and you reclaim 86% of your quota at a cost of $3.25/mo. The Team plan now has headroom for actual workflow tasks.
Across 5 minute-level Zaps on Team: 216,000 tasks per month go to schedules, which is more than 4x the 50,000 task quota. You either pay heavy overage or upgrade to Company. Move the 5 schedules to Crontap and you free 100% of those tasks for actual work. Crontap cost stays at $3.25/mo regardless of schedule count.
The wedge is bigger the more minute-cadence Zaps you have. The break-even is around 1 minute-level Zap; past that, every additional one widens the gap.
FAQ
Will my Zap still work after the swap?
Yes. You replace the trigger with a Catch Hook (Webhooks by Zapier) and Crontap fires it on your chosen cadence. Everything downstream of the trigger keeps running exactly as before, with the same filters, paths, and actions you already configured.
Will Zapier still log my Zap runs?
Yes. Catch Hook fires show up in the Zap history exactly like Schedule-triggered runs did. The only thing that changes is what kicked them off.
Does the Catch Hook trigger consume a Zapier task?
The trigger fire itself consumes a task on most plans (consult Zapier's pricing for the current rules; the policy on what counts as a task moves around). The downstream actions consume tasks per fire as before. Even with the Catch Hook task counted, the savings hold because you no longer pay for the Schedule trigger fire on top of everything else, and you can swap the cadence in Crontap without redeploying or upgrading the Zapier plan.
Will I save money on every Zap?
Not always. At daily or hourly cadence, the Schedule trigger overhead is so small that moving it out is not worth the operational change. At 5-minute or minute cadence, the savings are real and scale with the number of Zaps you migrate.
Can Crontap fire multiple Catch Hooks?
Yes. Each Zap is its own Catch Hook URL, each schedule is its own row in Crontap. One Crontap account can fire as many Zaps as you have, plus your Vercel cron routes, your Cloud Run jobs, and anything else with an HTTPS endpoint.
What about Make and n8n?
Same pattern works for both. Replace the platform's built-in scheduler with a webhook trigger and point Crontap at the webhook URL. See the related Make and n8n posts for platform-specific notes.
What is Crontap's minimum cadence?
Every 1 minute on Pro. The same as Zapier Team and Company plans, except the Crontap clock costs zero per fire.
References
Related on Crontap
- Crontap vs Zapier Schedule, side by side. The head-to-head decision page with the at-a-glance table.
- Cron jobs for Zapier webhooks use case. The use-case-first guide for Zapier teams wiring up an external clock.
- Integrate cron with a Zapier webhook. The full step-by-step walkthrough with screenshots.
