So you've deployed a Python script to the cloud. What's next? Maybe you need to run it every morning to fetch data, or once a week to generate a report. Manually triggering it is not a long-term solution. You need to automate it.
This is where Google Cloud Scheduler comes in. It's a fully managed service for running jobs on a schedule, similar to a traditional cron job, but in the cloud.
This guide will walk you through setting up a Cloud Scheduler job to automatically run a Python script that you've deployed as a Google Cloud Function.
This article builds on a previous one. To follow along, you should already have:
X-Auth-Token we set up previously).
For more on authentication options, see Access control with IAM.We'll use the Google Cloud Console to create a job that triggers our weather-updater script every morning at 8 AM.
This will open a form with several fields to configure. Let's go through them one by one.
This section tells the job what to run and when to run it.
daily-weather-update.0 8 * * *.Africa/Nairobi. It's best to use a specific time zone rather than UTC to avoid issues with daylight saving time changes.This section tells the job how to run your script.
POST request to trigger the logic, but GET is also common.X-Auth-Token.Once you've filled everything out, click Create. Your job is now active and will run on the schedule you defined. You can monitor its status, view logs, and even trigger it manually from the Cloud Scheduler dashboard.
1. How much does Cloud Scheduler cost? Cloud Scheduler has a generous free tier that includes 3 jobs per month at no cost. After that, the pricing is very low. For most personal projects or small applications, you likely won't pay anything.
2. What does "at least once" delivery mean? Google guarantees that your job will be triggered at least once per scheduled time. In very rare cases, a job might run more than once. Because of this, your function's logic should be idempotent, meaning that running it multiple times has the same effect as running it once. Our weather script is idempotent because re-fetching and saving the weather data doesn't cause any harm.
3. What happens if my function fails? Cloud Scheduler has a built-in retry policy. If your function returns an error status code (like 500), the scheduler will automatically retry the request with an exponential backoff. You can configure the retry attempts and duration in the job settings.
4. Can I schedule things other than an HTTP request? Yes. Cloud Scheduler can also send a message to a Pub/Sub topic or trigger an App Engine service.
About the Author
David Muraya is a Solutions Architect specializing in Python, FastAPI, and Cloud Infrastructure. He is passionate about building scalable, production-ready applications and sharing his knowledge with the developer community. You can connect with him on LinkedIn.
Related Blog Posts
Enjoyed this blog post? Check out these related posts!

How to Run Python Scripts in the Cloud with Google Cloud Functions
Deploy Python Scripts to the Cloud: Secure, Automate, and Scale Instantly
Read More...

Python & FastAPI: Building a Production-Ready Email Service
A Practical Guide to Sending Emails with Python and FastAPI
Read More...

Connecting FastAPI to a Database with SQLModel
A practical guide to building CRUD APIs with FastAPI and SQLModel.
Read More...

Managing Background Tasks in FastAPI: BackgroundTasks vs ARQ + Redis
A practical guide to background processing in FastAPI, comparing built-in BackgroundTasks with ARQ and Redis for scalable async job queues.
Read More...
Contact Me
Have a project in mind? Send me an email at hello@davidmuraya.com and let's bring your ideas to life. I am always available for exciting discussions.