Blog · Serverless

Serverless cron patterns for Vercel, Lambda, Workers and more

Every serverless platform ships its own scheduler, with its own ceiling: UTC-only, plan-gated, low-frequency, or quietly capped. These posts cover the gaps and how to fill them.

About this topic

Serverless

6 itemsBlog

Vercel Cron is fine if you live on Vercel Pro, accept UTC, and stay under the plan's hourly invocation cap. Cloudflare Workers gives you cron triggers, but minute cadence is paid-plan only and you only get 3 schedules per Worker on free. AWS Lambda has EventBridge Scheduler, which is excellent once you finish the IAM and timezone wiring. Cloud Run wants you to pair Cloud Scheduler, which costs a sliver per job and drags a second GCP service into the mix. Netlify Scheduled Functions floor at 1 hour. Firebase Scheduled Functions require the Blaze plan.

Crontap sits outside all of them. It calls your function URL on whatever cadence you actually need (down to 1 minute on Pro), in any IANA timezone, with custom headers and JSON payloads, and surfaces failures through Slack, Discord, Telegram, email or a webhook the moment a 5xx comes back. Retries handle the cold-start flakiness. The posts below cover each platform's specific gap (the hourly cap on Vercel, the minute floor on Cloudflare, the Function URL on Lambda, the Cloud Scheduler bypass on Cloud Run, the Blaze workaround on Firebase, the Netlify 1-hour floor) and the migration pattern.

Blog on Serverless

6 items

Related on Crontap

The same Serverless topic, from other angles.

FAQ

Common questions on Serverless

Vercel Cron handles my one job. Why bring in a second tool?
If you're on Vercel Pro with a single UTC schedule, Vercel Cron is the simplest path. The seams show when you need a second timezone, want to keep your cron when you move off Vercel, or hit the hourly invocation cap. An external Crontap schedule hitting /api/cron the same way removes the lock-in.
Can Crontap hit a Cloudflare Worker or AWS Lambda Function URL directly?
Yes. Anything with a public HTTPS endpoint works. Lambda Function URLs (https://<id>.lambda-url.<region>.on.aws/), Cloudflare Workers (https://<name>.<account>.workers.dev), Cloud Run services, and Vercel API routes all accept Crontap pings the same way, including custom headers for shared-secret auth.
How do I keep the endpoint from being publicly callable?
Add a shared-secret header check inside the handler. Crontap sends configurable headers per schedule, so an X-CRON-TOKEN paired with an env var on the function side keeps drive-by traffic out. The platform-specific posts each show the exact handler snippet.
Cold starts and the 1-minute minimum, any conflict?
1 minute is the floor on Crontap Pro, which is the sweet spot for most serverless work. If your function has a 30-second cold start and runs every minute, you'll be paying for warm time anyway, so consider every 2 to 5 minutes or move to provisioned concurrency.

More from Crontap

Topics across the site.

Every topic Crontap covers, in one row. Each one has its own page on the blog surface.

Ready to fix it?

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

Free forever tier ・ No credit card required

GET

/wp-cron.php?doing_wp_cron=1

Running
Your next schedule

Schedule

"every 5 minutes"

Next

in 23s