Plans from ₹99 a monthFree HTTPS on every site18% GST invoice with your GSTIN for input tax creditFull refund within 7 days of your first paymentPay yearly, get 2 months freeNo auto-renewal, everPlans from ₹99 a monthFree HTTPS on every site18% GST invoice with your GSTIN for input tax creditFull refund within 7 days of your first paymentPay yearly, get 2 months freeNo auto-renewal, ever

Python apps

Schedule Python jobs

Run a job every 5 or 15 minutes, every hour, or daily at a time in Indian Standard Time, and check every run on the Cron jobs page.

Beginner5 min readUpdated 27 October 2026
On this page

A job can run on its own on a schedule, like a cron job on a server. You pick the schedule from a list; FiniteHost handles the timer. All times are Indian Standard Time (IST, Asia/Kolkata), whatever time zone your computer is in.

Before you start#

  • Create the app first, in Job mode. See Run Python apps from the panel. Workers keep running and do not take a schedule.
  • Upload the code and test it once with Run now, so you know it works before it runs unattended.

The schedules you can choose#

ScheduleWhen it runs
Only when I press RunNever on its own. Use Run now.
Every 5 minutesAt :00, :05, :10 … every hour
Every 15 minutesAt :00, :15, :30 and :45
Every hourAt the start of every hour
Daily at a time (IST)Once a day at the time you pick, for example 09:30

A run starts within about 50 seconds of the exact time (the server adds a small random delay so that many jobs do not all start in the same second). Do not rely on a job starting at an exact second.

Set a schedule#

  1. Open Python apps and go to Create an app.
  2. Choose Mode: Job: runs, then stops. The Schedule list appears.
  3. Pick a schedule. For Daily at a time (IST) a Daily time (IST) box appears; enter the time, for example 09:30.
  4. Press Create app, then upload your code.
  5. Press Enable schedule on the app's card. Until you do, the schedule is paused and only Run now works.

Pause and resume#

  • Pause schedule stops future runs. A run already in progress finishes normally.
  • Enable schedule turns it back on. Runs that were missed while it was paused are not caught up; the next run is simply the next scheduled time.
  • If your plan passes its paid-until date and is suspended, schedules stop too, and start again when you renew.

Check runs on the Cron jobs page#

Cron jobs lists every scheduled job and its last 15 runs.

Open Cron jobs (group Software). You see:

  • Schedules: each job, its schedule (or Manual only), whether it is enabled or paused, and its last run. Run and Pause / Enable buttons work here too.
  • Recent runs: when each run was requested, started and finished, and its result with the exit code. finished with exit 0 is a success; failed means the code exited with an error, crashed, or was stopped.

Rules worth knowing#

  • One run at a time. If a run is still going when the next one is due, or you press Run now while it runs, the panel says "This job is already queued or running". Make sure an every-5-minutes job finishes in well under 5 minutes.
  • One hour at most. A job that runs longer than 1 hour is stopped and the run counts as failed. Split long work into smaller runs, or use a worker.
  • Stuck runs are closed. A run still marked as running after about 75 minutes is marked failed so the job can run again.

Troubleshooting tips#

  • The job did not run at the time: check that the card says the schedule is enabled (the button reads Pause schedule) and that the time is in IST, not your local time.
  • Runs overlap or get skipped: the job takes longer than its interval. Make it faster or choose a longer interval.
  • Every run fails after a code change: open Logs on the app's card; see Fix a failing Python app.

What's next#

Was this helpful?

Still stuck?

Email support@finitehost.com with your subscription ID (it starts with t, shown on the panel's Dashboard) and what you tried. A person replies, usually within one business day.

Last updated 27 October 2026. Found something wrong? Tell support@finitehost.com.