Functions · · 8 min read

How to run cron jobs for a web app without a server in 2026

Scheduled jobs without a VM: Scaleway Jobs and Functions, Scalingo and Clever Cloud cron files, and the US options, compared on intervals, time limits and time zones.

You don't need your own server for a nightly cleanup or an hourly sync. In Europe, Scaleway Serverless Jobs runs a container on a cron schedule with a time zone you pick, and Scaleway Functions can call a function on a schedule. If your app already lives on Scalingo or Clever Cloud, a cron file in your repository is the shortest path. Eurobase doesn't run scheduled jobs yet, so there it covers the web app and the endpoint a scheduler calls, not the schedule itself.

Scheduled job options at a glance

PlatformCompanyHow you define a jobShortest intervalLongest runTime zone
Scaleway Serverless JobsFranceTrigger on a container jobNot stated24 hoursYour choice
Scaleway FunctionsFranceCRON trigger on a functionNot statedUp to 60 minutes per requestUTC
ScalingoStrasbourg, Francecron.json at the repository root10 minutes12 hoursUTC
Clever CloudFranceclevercloud/cron.jsonNot statedNot statedUTC, or CRON_TZ per line
EurobaseWarsaw, PolandNo scheduled jobs yetNot availableNot availableNot available
CloudflareCloudflare, Inc., San Franciscocrons in the Wrangler config1 minute15 minutesUTC
VercelVercel Inc., terms under California lawcrons in vercel.jsonOnce a day on Hobby, once a minute on ProSame as its FunctionsUTC
NetlifyNetlify, Inc., San FranciscoSchedule in the function or netlify.tomlNot stated30 secondsUTC

Limits and prices are from each provider's own pages, checked on 9 and 10 November 2026.

What to check before you pick a scheduler

  • How long one run takes. A 30-second ceiling suits an API ping, not a report over a whole table. Measure your slowest run.
  • Whether a missed or doubled run hurts. Some schedulers allow late or skipped runs, and some run a job once per instance. Make jobs safe to repeat.
  • Local time versus UTC. Most of these read the expression in UTC, so a 09:00 Berlin job shifts twice a year unless the platform takes a time zone.
  • Where the job's code and data live. A job that needs your app's code, secrets and database is easiest on the same platform as the app.
  • Who runs the scheduler. An EU region doesn't change the company you sign with. More on that in EU region vs EU company.

1. Scaleway Serverless Jobs

Serverless Jobs runs a container image on demand or from triggers. Each trigger holds a cron expression and a time zone, a job can have several, and a trigger can override the startup command. One run can last up to 24 hours with up to 6 vCPU and 16 GB of memory. Images must be built for linux/amd64.

  • Best for: heavier batch work such as exports, backups or data imports, written in any language you can put in a container.
  • What it lacks: a path from source code. A job starts from a container image, so you build it and push it to the Scaleway registry or a public one yourself.

2. Scaleway Functions

A Scaleway function can take a CRON trigger next to its HTTP, queue and NATS triggers. The schedule is a five-field expression read in UTC, and the JSON arguments you enter are sent as the body of a POST request to the function's / path. The request timeout can be set between 10 seconds and 60 minutes. Functions cover Node.js, Python, Go, PHP and Rust, and 400,000 GB-s and 1 million requests are free each month.

  • Best for: short scheduled tasks you'd rather write as one handler than package as an image.
  • Price: billed by use after the free tier, €0.50 per 100,000 GB-s and €0.15 per million requests.
  • What it lacks: a choice of time zone. Schedules stay in UTC.

3. Scalingo Scheduler

Put a cron.json file at the root of your app and Scalingo starts each command in a one-off container, sized per job, M with 512 MiB by default. The scheduler is free, and you pay for the container's run time. Review Apps get the same tasks as their parent app.

  • Best for: apps already on Scalingo that need a nightly or hourly command run with the app's code and add-ons.
  • Price: the run time of the one-off container. Containers start at €7.20 a month for 256 MB, excl. VAT.
  • What it lacks: short intervals and volume. The minimum interval is 10 minutes, five tasks is the maximum, runs stop at 12 hours or at the next interval, and Scalingo says a run is expected but not guaranteed, and it can start late by up to 10% of the interval, at most 20 minutes.

4. Clever Cloud

Clever Cloud reads crontab lines from clevercloud/cron.json and installs them on every instance at each deploy. Output goes to your app's logs, and a CRON_TZ line lets the lines below it follow a named time zone such as Europe/Paris.

  • Best for: apps on Clever Cloud that want classic crontab syntax, including local time zones.
  • What it lacks: single-run behaviour by default. With three instances a job runs three times, so check INSTANCE_NUMBER in jobs that must run once. Docker apps and Clever Tasks ignore the file.

5. Eurobase, for the app and the endpoint

Eurobase hosts the web app on European infrastructure run by Scaleway, a French provider, and its Functions give TypeScript code its own URL. It has no scheduler of its own today: publishing a function with a cron trigger is refused, a Worker's crons setting is ignored, and each project runs one web service with no background workers. The practical setup is to keep the job logic behind an HTTP route or Function on Eurobase, and let a scheduler elsewhere call it. Check a shared secret in a header so that only your scheduler can start it, and keep each run short.

  • Best for: apps that are mostly web traffic and only need a light scheduled call.
  • Price: Free, then €10 or €20 a month + VAT. There are no usage charges today: work over a limit is refused, apps on V8 isolates and Functions stop until the monthly reset, and containers and static sites keep serving.
  • What it lacks: scheduled jobs, workers and queues. Neither ISO 27001 nor SOC 2 is held yet, and both are in progress.

The US options, for comparison

Each of these reads its schedule in UTC.

  • Cloudflare Cron Triggers call a scheduled() handler in a Worker for up to 15 minutes of wall time. The Free plan allows 5 triggers per account and 10 ms of CPU time per run, and Paid allows 250. If you're moving a Worker, European Cloudflare Workers alternatives covers the options.
  • Vercel Cron Jobs send a GET request to your production URL. Hobby allows one run a day, anywhere within the hour you set, and Pro one a minute. Vercel now calls Cron Jobs a legacy feature that will move to its Schedules.
  • Netlify Scheduled Functions run only on published deploys, take no payload and stop after 30 seconds.
  • Render cron jobs are a service of their own, billed by the second with a $1 minimum a month per job and one active run at a time. See European Render alternatives.

How to choose

  1. A container that runs for minutes or hours: Scaleway Serverless Jobs.
  2. A short function every few minutes: Scaleway Functions.
  3. Your app already runs on Scalingo or Clever Cloud: use its cron file, and mind the 10-minute floor on Scalingo and the per-instance runs on Clever Cloud.
  4. A web app on Eurobase with a light daily task: an HTTP route or Function on Eurobase, called by one of the schedulers above.

Frequently asked questions

Can I run a cron job without a server?

Yes. A managed scheduler starts your code on a cron expression and you pay only for the run, or for the plan it's part of. Scaleway Jobs, Scaleway Functions, Scalingo and Clever Cloud all do this from a European company.

Why did my scheduled job run at the wrong hour?

Most platforms read cron expressions in UTC, so 0 9 * * * fires at 09:00 UTC: 10:00 on a Berlin clock in January, 11:00 in July. Scaleway Jobs lets you pick a time zone per trigger, and Clever Cloud accepts a CRON_TZ line.

Why did my cron job run more than once?

On Clever Cloud, each instance runs the whole crontab, so three instances mean three runs. Elsewhere, an overlap can happen when a run is still going at the next slot. Make the job safe to repeat, for example with a lock row or a check of the last run time in your database.

Does Eurobase support cron jobs?

Not yet. You can host the app and the endpoint the job calls on Eurobase, and use a scheduler from another provider to call it. For workers and queues alongside the schedule, see where to run background jobs, and European AWS Lambda alternatives compares Eurobase Functions with other function platforms.

Sources

Deploy your app in Europe

Sign up