Frequently Asked Questions (FAQ)
Answers to the questions we get asked most. Every question can be linked to individually.
First questions
How does Cronjob.de work?
Cronjob.de automatically accesses the web pages you specify on your server at the times you set. When the page is accessed, it triggers a specific function on your web server. This could be, for example, automatically starting a newsletter dispatch, optimizing your database, or sending you an email. You have complete freedom and can execute any functions you want.
Does Cronjob.de run my cron jobs, even without a server of my own?
Yes, as long as your cron job can be reached at an address. That is the case for almost every website, shop and CMS: the script sits on your web space, and Cronjob.de calls it on your schedule, for example your-site.com/cron.php. Your server does the actual work. We make sure it starts on time, store the response and tell you when something goes wrong.
You do not need a server of your own, SSH access or a crontab. The guide shows how to make a script on your web space callable: cronjob.de/anleitung/webspace-cronjob-einrichten?lang=en
Only if your program cannot be reached at an address at all, such as a Python script without a web server, you need an environment that starts it itself. GitHub Actions is one option: cronjob.de/anleitung/github-actions-cronjob?lang=en
How many cronjobs are free?
The free plan lets you run up to 5 cronjobs in 5-minute steps with 45 seconds runtime per call. If you need more: Plus offers unlimited cronjobs, minute-precise execution, a call log and an email when a cronjob fails, from 1.49 EUR per month; Unlimited adds runtime statistics, alerts in Slack, Teams and Discord, and server monitoring from 3.99 EUR per month.
Can I be charged for something I did not order?
No, don't worry. Nothing at Cronjob.de ever becomes chargeable without your explicit consent – nothing happens on its own:
- The trial ends by itself after 14 days. You do not enter any payment details for it, so nothing can be charged, and there is nothing to cancel. We remind you before it ends – then you decide at your leisure whether you want to continue.
- A year paid once also ends by itself. Here too we remind you beforehand, and it is only extended if you pay again yourself.
- Only a subscription renews automatically – and you set that up yourself. We remind you before every renewal, and you can end it at any time. You keep the time you have paid for.
When a plan ends, your account continues on the free plan. Nothing is deleted: your cronjobs stay in place, subject to the limits of the free plan.
What happens after the 14-day trial?
Every new account starts with 14 days of Unlimited: minute-precise cronjobs, call log with output, runtime statistics and server monitoring, no payment details. Four days before the end we send a reminder by email.
If you do nothing, the account automatically switches to the free plan afterwards: up to 5 cronjobs, 5-minute steps, no call log. If you have at most 5 cronjobs on the 5-minute grid, they simply keep running. If you have more, we pause all of them and you choose in the cronjob overview which 5 should keep running. Minute-precise schedules are paused because they cannot run on the free plan; the schedule itself stays unchanged.
Nothing is deleted. If you book a plan later, we switch the paused cronjobs back on automatically.
How many cronjobs can I manage with Cronjob.de?
You can create unlimited cronjobs that can be started at intervals of up to 1 minute. In the free plan, up to 5 cronjobs are possible, started in 5-minute steps.
What powers your servers?
Our servers are hosted at Hetzner Online GmbH in Nuremberg, Falkenstein and Helsinki. According to the operator, their data centres run entirely on electricity from renewable sources – hydropower in Germany, hydropower and wind in Finland.
We do not run the data centres ourselves, so we pass this on exactly as the operator states it.
Can using Cronjob.de "harm" my server?
No! Cronjob.de accesses your URL as if a normal user were browsing your site. If anything goes wrong, it's not because of Cronjob.de.
Why does Cronjob.de spread its servers across several data centres?
For two reasons.
Reliability: a problem in one data centre or on one network line never hits all servers at once. Most of your cron jobs keep running, and whatever is affected we move to the remaining servers.
Several measuring points: when one server sees that your site does not answer, a second, independent server checks again before we notify you. That way we can tell whether your site is really down or only the route to it – and you do not get false alarms because of a network problem somewhere in between.
All data centres are located in the EU.
Schedules
At what intervals can I schedule my cronjobs?
You can schedule your cronjobs to run as frequently as once per minute and as infrequently as once per year.
There is no limit to the number of calls. So you could have one or more cronjobs running every minute.
Is Cronjob.de precise to the second when calling my page?
Yes. Cronjob.de calls your cronjobs punctually at the start of the scheduled minute, usually within the first few seconds – never earlier.
This also applies at peak times such as the top of the hour or midnight, when a particularly large number of cronjobs are due at once. We call all due addresses in parallel instead of working through them one after another, and our servers have plenty of capacity for it.
How can I execute a cronjob on the last day of the month?
At cronjob.de, you cannot set a cronjob to run only on the last day of the month. The easiest way is to select days 28-31 for execution and then include the following PHP code in the script that is called:
if(date("d")!=date('t')) {
exit("Today is not the last day of this month");
}
This script snippet checks if it's the last day of the current month when called, and if not, it aborts.
Alternatively, you can create 12 cronjobs and always select the month with its corresponding last day. However, here you have to remember to manually adjust February every 4 years.
How long are the scripts executed?
In the free plan, each cronjob is executed for a maximum of 45 seconds. In the paid plans, the cronjob is executed for up to 60 seconds. However, if your script is not finished by then, you can let it continue running in PHP. To do this, insert the following at the beginning of your PHP script:
set_time_limit(0);
ignore_user_abort(true);
This is similar in other programming languages. Please check the respective documentation.
Setting up
How long does it take for a cronjob to be activated?
Your cronjobs are activated immediately. Creating a cronjob takes only a few seconds.
Do I have to verify my domain?
No, usually not anymore. New cronjobs in the free plan run immediately. Only if there are signs of abuse, for example the same server being called by a conspicuous number of accounts or a complaint, we ask once for a proof that you control the server. Until then the affected cronjobs are paused.
The proof works in one of three ways: a file cronjob_
The verification of the cronjob isn't working
There can be several solutions for this:
- If you entered the cronjob without "www." but your web server automatically redirects to a "www." address, then enter your cronjob with "www." as well. Then Cronjob will look for verification in the right place.
- Sometimes (especially with Swiss providers) you need to do the following for Cronjob.de to access your server:
Create a file named ".htaccess" (without quotes) with the content "SecFilterEngine Off" (without quotes) and place it in your web server's root directory. If a file named .htaccess already exists, simply add the corresponding text to the file.
My domain contains special characters. Does Cronjob.de work with it?
Yes. Simply enter the address with the special characters, for example müller-gmbh.de/cron.php. When calling it, we convert the domain name automatically into its technical form (punycode, xn--…), which the internet needs for lookups.
In your account the address stays exactly as you entered it. You can of course also enter the converted form yourself – both work.
Note: only the domain name is converted. Special characters in the path or in parameters are encoded like in any browser and passed through unchanged.
How do I call pages that are password-protected (for example via .htaccess)?
Enter username and password for the cronjob under “Credentials” – the two fields are right below the address. Cronjob.de then signs in via HTTP authentication, the way an .htaccess protection expects it (Basic or Digest).
The credentials no longer belong in the address itself. If an address like http://user:password@www.yoursite.com/page.php is entered anyway, we move username and password into the two fields automatically when saving. That way they are no longer visible in the address.
Is there an API for Cronjob.de?
There is no classic REST API. We speak MCP (Model Context Protocol) instead: you connect Claude, ChatGPT, Cursor or your own MCP client directly to your account and have it list, create, change, move, switch on and off or delete cronjobs – plus read the call log and find failed calls.
The advantage over a REST API: you manage no keys. Sign-in uses OAuth 2.1 with PKCE, you confirm once in the browser. For servers without a browser there is a fixed token as well.
Details: cronjob.de/ki-verbinden
Do HTTPS addresses work with a self-signed or expired certificate?
Yes. Cronjob.de calls HTTPS addresses even if the certificate is self-signed, expired or issued for a different name. The call does not fail because of it, which is handy for test systems and internal servers, for example.
So that an expiring certificate of your website still does not go unnoticed, Cronjob.de warns you in good time on the Unlimited plan, see “Does Cronjob.de warn me when my SSL certificate expires?”.
Can I send cookies, custom headers or POST requests?
Yes, in all plans. Open the “Advanced” tab of the cronjob:
- Cookies: under “Custom headers”, add a line named Cookie with the value name=value. Separate several cookies with a semicolon: name=value; name2=value2
- Custom headers: up to 20, for example an API key in Authorization or X-Api-Key
- Request method: GET, POST, PUT, PATCH, DELETE or HEAD. With POST, PUT, PATCH and DELETE you can send a request body with a matching content type, for example JSON.
User name and password for .htaccess protection do not belong in a header but in the “Credentials” fields.
When something does not run
My script isn't executed via Cronjob, but everything works when I enter it in the browser.
Cronjob.de stops the page request after 45 seconds in the free plan and after 60 seconds in the paid plans. If your script has not finished running by then, it needs to be set to continue running even after Cronjob.de stops loading. It is also common that a page has password protection, but you do not consider this because the browser saves the password and you rarely have to enter it yourself.
An overview of the most common causes – from firewalls and security checks such as Cloudflare to error codes such as 403, 404 or 500 – is in our troubleshooting guide.
Am I notified when a cronjob fails?
Yes, from the Plus plan. If a cronjob fails, you get an email with the error, and an all-clear as soon as it runs again. We report the start and the end of the outage, not every single failed run. If several cronjobs fail at the same time, we combine them in one email.
To receive it, enter an email address under “Notifications” in your account. Per cronjob you can choose to be notified only after several failed runs in a row, or not at all.
On the Unlimited plan the alert also goes to Slack, Microsoft Teams, Discord or your own webhook. The free plan has no failure alerts; during the first 14 days they are included free.
Can outages be reported to Slack, Discord or Microsoft Teams?
Yes, in the Unlimited plan. Paste your channel's webhook address into the monitor and send a test message right away. You get one message when the outage starts and one when it is over – not every minute. In addition or instead, the alert goes out by email.
How quickly am I notified about an outage?
Usually three to five minutes after it starts. We only report once two checks in a row have failed and a second, independent server has confirmed the outage. That prevents false alarms from brief blips or problems on our side. If you need alerts to the second, a specialised service is the better choice – our strength is what gets checked.
Why is my cronjob switched off?
Cronjob.de only switches a cronjob off for a few fixed reasons. Nothing is deleted: schedule, settings and log are kept.
- Expiry date reached: the cronjob has an expiry date. Set a new date or remove the expiry to switch it back on.
- Plan ended: after the trial or a subscription, the free plan applies with up to 5 cronjobs. If you had more, we pause all of them and you choose in the cronjob overview which 5 keep running. If you book a plan again, all of them come back automatically.
- Schedule not executable on your plan: minute-precise schedules run from the Plus plan. On the free plan they are paused; the schedule itself stays unchanged.
- No confirmation: free accounts confirm every 3 months with one click that they still need their cronjobs. Without confirmation we pause the cronjobs after 21 days.
- Only failures (free plan): if a cronjob had not a single successful call for 7 days (and at least 10 failed runs in a row), we pause it – usually the script was deleted or moved, and calls that only fail help nobody. You get an email and switch the cronjob back on in the overview with one click. From Plus we only pause a cronjob whose address has not existed for at least 7 days (every call “not found”, HTTP 404 or 410, or the domain no longer exists) – then nothing has run either. You get an email in that case too. With any other error paid cronjobs keep running: some scripts do their work even though they return an error.
- Maintenance mode: you paused cronjobs for server maintenance. When the maintenance ends, we start exactly these cronjobs again.
The cronjob overview shows which reason applies to each cronjob. Single failed calls, on the other hand, switch nothing off: the cronjob keeps running, and we notify you if you wish.
Does Cronjob.de access pages like a normal browser?
Cronjob.de accesses your pages like a browser, but with the following limitations:
- HTML objects are not loaded (such as: Flash, Objects, Iframes, Images, etc)
- Javascript is not executed
- Cookies set by your server are not kept. You can send your own cookies, though – see “Can I send cookies, custom headers or POST requests?”
- Meta refreshes are not followed
Setting up
How do I set up monitoring?
Enter the address and click “Set up checks with AI”. The AI fetches the page once and suggests how to tell that it works – “Add to cart” on a shop, for example. We verify every suggestion on your page first, and only what you tick is used. After that we just ask how you want to be notified.
When something does not run
I see calls from Cronjob.de in my server logs, but I have no account
Then someone else has created a cronjob with your address at Cronjob.de, for example a former service provider, a colleague or the vendor of a plugin.
Write to us via the contact form and tell us the called address as it appears in your logs. We will look into it and stop the cronjob if you do not want the calls.
Until then you can recognise our calls by the fixed identifier Cronjob.de in the user agent and block them on your server. More: Cronjob.de in your server logs.
From which IP addresses do Cronjob.de's calls come?
Currently(!) we use the following IP addresses:
94.130.182.11
94.130.186.237
159.69.100.137
88.99.37.158
95.216.197.33
116.203.93.182
195.201.42.154
65.21.158.228
167.233.179.75
2a01:4f8:1c0c:4205::1
2a01:4f8:1c0c:46ef::1
2a01:4f9:c010:34ef::1
2a01:4f8:1c17:52dd::1
2a01:4f8:c2c:81f7::1
2a01:4f8:1c1b:971d::1
2a01:4f9:c012:bdb1::1
Important: New servers may be added or replace other servers at irregular intervals and without notice! Therefore, we advise against IP restrictions!
All servers currently used by us are located exclusively in the European Union or directly in Germany.
Tip: You can always retrieve the current list of our IP addresses at IP list as a text file (ips.txt).
Better than an IP list: the user agent. Every call we make carries the fixed identifier Cronjob.de in the user agent – scheduled calls just like the Run now button. Unlike IP addresses, this identifier does not change when we swap servers.
If your host or firewall rejects our calls (usually error 403), ask them for an exception for the user agent Cronjob.de. That is the most reliable way to let us through. If only an IP-based rule is possible, give them the addresses above – and please re-check this list from time to time.
In full, the identifier reads Cronjob.de (+cronjob.de/bot) – check for the beginning Cronjob.de. Ready-made rules for Cloudflare and .htaccess: Cronjob.de in your server logs.
Does Cronjob.de notice when my website stops working properly?
Yes, in the Unlimited plan. Our server monitoring checks your page every minute – and not just whether it answers. We detect empty pages, known error pages despite “200 OK” (PHP errors, WordPress without a database or stuck in maintenance, SQL errors, directory listings, web server default pages) and, if you like, texts that must or must not appear on the page.
Can Cronjob.de report errors via webhook?
Yes, on the Unlimited plan. In addition to the email, which is included from Plus, we send the same message as JSON via POST to an address of your choice – when a cronjob fails and again when it works again. The same settings apply as for the email, including bundling of several failures.
You can enter the address under “Notifications” in your account, with a button to send a test message. The address must start with . Every message is signed (header X-Cronjob-Signature, HMAC-SHA256) so your script can verify that it really comes from us.
This lets you pass messages on to your own systems, for example to Pushover, Telegram or Slack. An example script is shown right on the settings page.
Does Cronjob.de warn me when my SSL certificate expires?
Yes, on the Unlimited plan. Every time we call your cronjob we see how long the certificate of that address is still valid. If you want, we get in touch in good time before it expires, by email – and again shortly before – to a different address than the cronjob alerts if you prefer.
You switch it on under "Notifications" in your account; it is off by default. The same page shows the remaining validity and the issuer of every certificate behind your cronjob addresses.
Worth knowing: we only check the expiry date, not the validity of the certificate chain. A cronjob is never aborted just because a certificate is self-signed or expired – it keeps running, you are only told.
Are there statistics about the runtime of my cronjobs?
Yes. In the Unlimited plan Cronjob.de measures for every call how long your script takes to respond and how large the output is. In the call log of a cronjob you see both as a chart for the last 200 runs, with failed runs marked in red. This lets you spot, for example, a script that is getting slower over time or one that suddenly stops returning data.
The call log itself contains the last 20 runs with date, time, duration, output size, error status and up to 5,000 characters of your script's output. A call may take up to 60 seconds and return up to 1 MB.
From the Plus plan there is also the history of the last 30 days, in Unlimited of the last 90 days: the number of runs and errors per day, plus every error period with a plain explanation of what went wrong.
Account
Why do I have to confirm every 3 months that I still need my cronjobs?
Many users never delete cronjobs they created, even when they have long stopped serving a purpose. So that we do not keep calling servers nobody is watching anymore, we ask free accounts every 3 months for a short confirmation.
You receive an email with a link. One click is enough, no login required. Without confirmation we send one reminder after 14 days; after 21 days the cronjobs are paused, not deleted. You can reactivate them at any time with the link from the email or after logging in.
Every login counts as confirmation as well. The Plus and Unlimited plans do not have this check.
Heartbeat
Can Cronjob.de also monitor cron jobs that run on my own server?
Yes, with a heartbeat – a regular sign of life from your server. You create it in your account and get an address of its own. One line at the end of your job calls it after every run, for example with curl in the crontab, in PHP or Python, or as the last step in n8n. If the check-in is overdue, we alert you, and the next check-in brings the all-clear. One heartbeat with email alerts is free, up to 10 come with Plus. Details: cronjob.de/cron-job-monitoring
What is the difference between a cronjob and a heartbeat?
We call a cronjob: we start your script through its address on a schedule. Your job calls a heartbeat: it runs elsewhere – on your server, in n8n, Supabase or Vercel – and checks in with us after every run. Both live in the same account and alert you the same way. For cronjobs we call, the Unlimited plan adds the success check: the script reports its own end, or we check the reply for an expected text and for typical error messages.