Use case
Run Supabase Edge Functions on a cron from outside the project.
Supabase ships pg_cron for in-database scheduling and Edge Functions for HTTP work. Supabase Cron can connect them through pg_net. Crontap provides an external clock that calls Edge Functions on any cron, in any timezone.
Free plan · no credit card required
The problem
Why this is painful without the right tool
- Supabase's supported pg_cron and pg_net path lives inside each project, so its schedule and response records are operated there.
- Edge Functions themselves have no scheduler; they answer HTTP, they do not fire on a clock.
- pg_net submits HTTP requests asynchronously. cron.job_run_details records the scheduler run, while the eventual HTTP status or error is stored separately in net._http_response.
- If the Supabase project is paused or unavailable, its internal scheduler and Edge Function are unavailable together. An external clock can record that failed attempt, but it cannot make the workload run.
The fix
How Crontap solves it
Supabase supports scheduling Edge Functions with pg_cron and documents pg_net's asynchronous HTTP behavior. Crontap calls the Edge Function URL (https://your-project.supabase.co/functions/v1/your-function) from outside Supabase, so this schedule does not require pg_cron or net.http_post. Authenticate with a bearer header that the Edge Function verifies. Retries can be disabled on every plan; Pro, Ultra, and legacy Pro can configure one to five retries. Failed final attempts enter configured notification handling. Email is available on every plan, while Slack, Discord, and Telegram are available on paid plans. Machine webhook Integrations are configured separately and can run on failure.
0 * * * *For a multi-project Supabase org, one Crontap schedule per Edge Function per cadence keeps a custom bearer token, its URL, external attempt history, retry policy, and notification routing together. Supabase Cron remains a supported choice for in-database work and internal Edge Function schedules.
Store CRON_SECRET as a Supabase Edge Function secret. Crontap sends it in an Authorization header. In Supabase's function configuration, set verify_jwt = false, then compare the secret in the handler before it runs the protected work.
FAQ
Common questions
- Can I still use pg_cron alongside Crontap?
- Yes. Supabase supports pg_cron with pg_net for scheduled Edge Functions, and pg_cron also fits in-database work such as stats refreshes and partition rotation. Use Crontap when you want retries, attempt history, and configured failure notifications to run outside the Supabase project.
- What's the shortest interval Crontap supports?
- Every 1 minute on paid plans. The free tier supports slower cadences.
- How do I get notified if an Edge Function fails?
- Choose email under Notifications on any plan, or Slack, Discord, or Telegram on a paid plan. After retries are used up, a failed final attempt enters configured notification handling; configured notification thresholds and routing determine whether and where a notification is sent. A machine webhook Integration configured for failures receives the status code, duration, size, error summary, and attempt history.
Ready to schedule?
Schedule Supabase Edge Functions from outside your project.
Call your Edge Function on an hourly cron from outside Supabase, with retry policy, attempt history, and configured failure notifications in one place.
Free plan · no credit card required
/functions/v1/hourly-housekeeping
Schedule
0 * * * *
Next
in 18m