Jupyter notebooks for your team.

Try free
← Blog

Run a Python Script Online, on a Schedule, for Your Team (2026 Options Compared)

Where to run a Python script, notebook or Streamlit app so it keeps working when your laptop is closed: GitHub Actions, PythonAnywhere, AWS Lambda, Render, Railway, Replit, Streamlit Community Cloud, Hugging Face and Colab, with their 2026 limits and prices, several of which changed this year, and a team workspace that runs all three.

Fastero Dev TeamFastero Dev Team2026-11-05

You wrote something useful: a script that pulls yesterday's orders and emails a summary, a notebook that reconciles payments, a Streamlit app the sales team loves. It runs on your laptop. When the laptop is closed, on holiday or replaced, it stops, and the people who depended on it find out the hard way. Putting it somewhere it can keep running sounds like it should take ten minutes. Then you meet servers, cron syntax, secrets and logins.

The short answer: to run one script in a browser, any online Python runner will do. To keep a script, notebook or app running for a team, you need three things: somewhere that runs it on a schedule, a safe place for its passwords and keys, and a way for colleagues to see results without your laptop. GitHub Actions is the best free scheduler if your code is in GitHub (every 5 minutes at most, with delays at busy times). AWS Lambda with EventBridge is cheap but caps runs at 15 minutes. Several free options closed in 2026: new free PythonAnywhere accounts lost scheduled tasks, consumer Google Colab stopped scheduling notebooks, and Hugging Face now charges to create Gradio and Docker Spaces. If you want scripts, notebooks and apps in one place behind your team's login, with database connections and secrets built in, a data workspace such as Fastero runs all three.

Fastero

Jupyter notebooks for your team, with nothing to install.

Start a notebook or bring your .ipynb files. SQL cells query your databases with no password in the code, and a notebook runs now or on a schedule. Colleagues open it with their own login; viewers are free.

Try free →

What "running it online" actually involves

Need Why it matters
A schedule The script runs every morning at 7, not when you remember
Secrets Database passwords and API keys stay out of the code
Data access It can reach your database or APIs from wherever it runs
Logs and failure alerts You hear when it breaks, instead of a colleague noticing stale numbers
Somewhere to see the result An email, a dashboard or an app link, not a file on your desktop
Who can open it Behind your team's login, not public by accident

Most options cover two or three of these. That's where the extra work comes from.

The options compared

Option Free tier Scheduling Limits worth knowing
GitHub Actions Free in public repositories; $12 a month of compute on the free plan for private ones Cron, UTC by default, optional time zone; at most every 5 minutes Runs can be delayed or dropped at busy times; schedules in public repos switch off after 60 days without activity
PythonAnywhere Free Beginner plan; Developer $10 a month Free accounts created after 15 January 2026 get no scheduled tasks; paid accounts get up to 20, daily or hourly Free plan: 100 CPU seconds, 512 MiB disk
AWS Lambda + EventBridge 1 million requests and 400,000 GB-seconds a month; 14 million scheduler invocations Cron or rate schedules A run can last at most 15 minutes
Render cron jobs None Cron, UTC Minimum $1 a month per cron job; runs stopped after 12 hours
Railway 30-day trial with $5 credit Cron, UTC, at least 5 minutes apart If the last run is still going, the next is skipped
Replit No free plan on the pricing page; Core $20 a month Scheduled Deployments with a time zone and failure alerts Scheduled jobs have no public address
Streamlit Community Cloud Free Apps only, no jobs Apps sleep after 12 hours without visitors; one private app at a time
Hugging Face Spaces Static Spaces free; Gradio and Docker Spaces need a paid plan to create (PRO $9 a month) Not a scheduler Free hardware sleeps when unused; the built-in Streamlit option is deprecated
Google Colab Free notebooks up to 12 hours Scheduled notebooks switched off in consumer Colab on 27 March 2026 Colab Enterprise on Google Cloud still schedules

All figures from each provider's own pages, checked 5 November 2026.

Jupyter notebooks for your team.

Start free →

What changed in 2026

Three free routes that older tutorials recommend no longer work for new users:

  • PythonAnywhere: its scheduled tasks now come with a warning: "this will only work in paid accounts or free accounts created before 2026-01-15 (or 2026-01-08 in the EU system)".
  • Google Colab: "Due to low usage of scheduled notebooks and our need to focus on areas of growing interest, we're turning this feature off starting today, Friday March 27th, 2026."
  • Hugging Face: "Gradio and Docker Spaces run on compute and require a paid plan to create". Static Spaces are still free.

The details that catch people out

GitHub Actions isn't a precise clock. GitHub's docs say: "The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. If the load is sufficiently high enough, some queued jobs may be dropped." Schedule for 7:13 rather than 7:00. And in a public repository, "scheduled workflows are automatically disabled when no repository activity has occurred in 60 days", so a script that just works quietly can switch itself off.

Lambda is short. Fifteen minutes is plenty for a report and too little for a heavy notebook.

Streamlit Community Cloud sleeps and is public by default. "All apps without traffic for 12 hours go to sleep," and apps inherit their repository's visibility: "if your repo is private your app will be private and if your repo is public your app will be public." You get one private app at a time.

Secrets are your job. On most of these, you set environment variables per service, and every new script means setting them again. Paste a password into code once and it's in your Git history for good.

A minimal scheduled script on GitHub Actions

If your code is already in GitHub, this runs report.py at 07:13 UTC on weekdays, with a database URL kept as a repository secret:

name: daily-report
on:
  schedule:
    - cron: "13 7 * * 1-5"
  workflow_dispatch:
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pip install -r requirements.txt
      - run: python report.py
        env:
          DATABASE_URL: ${{ secrets.DATABASE_URL }}

workflow_dispatch adds a button to run it by hand. What it doesn't give you is somewhere for colleagues to see the output, a database login shared with the rest of your team's tools, or the notebook and app that grew up next to the script.

Scripts, notebooks and apps in one team workspace

The options above each run one kind of thing. Fastero runs all three in a workspace your team signs in to, next to your database connections:

  • Python projects on a schedule. Write or upload the .py files, run them, and set a cron schedule. Each run keeps its log and the files it saved, and a scheduled run can email or post to Slack the charts it produced.
  • Secrets in one place. Database URLs and API keys are stored as workspace secrets and reach the code as environment variables, in scheduled runs too. Nothing goes in the code.
  • Notebooks that run on their own. Upload .ipynb files or import them from Git. SQL cells run on a connected database with stored credentials, and a notebook can run on a cron schedule, updating any dashboard it feeds.
  • Streamlit apps behind your login. Import an app from GitHub or upload app.py. Colleagues open it by signing in to the workspace, not through a public link, and on Pro apps can stay always on.

A Python project in Fastero: main.py reads monthly revenue from the database through a secret, and the last run succeeded in 8 seconds and saved two files

A Python job in Fastero: the code reads the database through a secret, and each run keeps its status and output. Sample data.

Fastero's list of scheduled triggers, including a Python project scheduled with the cron expression 0 7 * * 1

The same job on a schedule: 07:00 every Monday.

Claude can set this up too, through Fastero's connector: write the script, run it, read the log and fix what failed, then put it on a schedule. Notebooks and schedules are on the Free plan; Pro is $20 per editor a month with 750 compute hours per editor included, and viewers are free.

Which one should you use?

  • One script, code already in GitHub, timing can be loose: GitHub Actions.
  • One short script, cheapest possible: AWS Lambda with EventBridge, if you're comfortable in AWS.
  • A long-running job: Render or Railway cron jobs.
  • A public demo app: Streamlit Community Cloud, accepting that it sleeps.
  • Scripts, notebooks and apps a team relies on, on your company's data: a team workspace, so schedules, secrets, database access and sharing aren't four separate setups.

FAQ

How do I run a Python script online for free?

For a one-off run, any online Python runner works. To run on a schedule for free, GitHub Actions in a public repository is the main option left, with runs at most every 5 minutes, possible delays, and schedules that switch off after 60 days without repository activity.

Can Google Colab run a notebook on a schedule?

Not in consumer Colab: Google switched scheduled notebooks off on 27 March 2026. Colab Enterprise on Google Cloud still schedules notebooks.

Can PythonAnywhere run scheduled tasks on a free account?

Only on free accounts created before 15 January 2026 (8 January in the EU system). Newer free accounts need a paid plan, from $10 a month.

Why does my Streamlit app keep going to sleep?

Streamlit Community Cloud puts apps to sleep after 12 hours without traffic. A visitor wakes it, after a wait. Hosting that keeps the app always on avoids it.

How long can a scheduled Python job run?

It depends where: 15 minutes on AWS Lambda, 12 hours on Render and on PythonAnywhere's paid scheduled tasks, and up to 12 hours for a free Colab notebook run by hand.

Where should I keep passwords for a scheduled script?

In the platform's secrets store, such as GitHub repository secrets or a workspace's secrets, passed to the script as environment variables. Never in the code or the repository.


Related reading:

Sources: GitHub Actions: events that trigger workflows, GitHub Actions billing, PythonAnywhere scheduled tasks, PythonAnywhere pricing, AWS Lambda pricing, EventBridge pricing, Render cron jobs, Railway cron jobs, Replit scheduled deployments, Replit pricing, Streamlit Community Cloud: manage your app, Streamlit Community Cloud: share your app, Hugging Face Spaces, Colab scheduled notebooks announcement, Colab FAQ. Checked 5 November 2026.


Try Fastero free — run your scripts, notebooks and Streamlit apps on a schedule, with secrets and database connections built in, behind your team's login. No credit card required.

Start a notebook next to your team's data.

Python 3.11 with pandas, SQLAlchemy and seaborn, SQL cells on your databases, and scheduled runs on the Free plan. No credit card required.