# Scheduled tasks and automations
ChatGPT can wake up on its own, run a prompt on a schedule, and message you the result, so "every Monday, summarize this week's industry news" becomes a recurring job instead of something you remember to type. This feature is called Scheduled Tasks (often just "Tasks"), and it turns ChatGPT from a thing you poke into a thing that reaches out to you.
This lesson goes deep on how Tasks actually work, how to wire one up well, where they break, and when to graduate to the APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → instead.
A Task is a saved prompt plus a schedule plus a delivery mechanism. When the schedule fires, ChatGPT runs that prompt in a fresh, isolated conversation on the server side (you do not need the app open), then notifies you with the output via in-app notification and, if enabled, email or push.
Three things matter and are easy to get wrong:
The official reference lives at help.openai.com. For the broader agent feature set this slots into, see openai.com.
Let's build the real thing. Goal: every Monday at 8:00 AM, get a tight summary of the past week's developments in your industry, scannable in 60 seconds.
Since there's no follow-up, the prompt carries all the structure. Open a normal chat and type something like this:
> Every Monday at 8am, search the web for the most significant developments from the past 7 days in enterprise AI tooling. Return exactly 5 bullets, each one sentence, ordered by importance. After each bullet, add a source link in parentheses. End with one line: "Worth watching:" and a single forward-looking item. If nothing notable happened, say so plainly instead of padding.
Notice what's doing the work:
When ChatGPT proposes the Task, it shows the parsed schedule. Adjust the time and recurrence if it guessed wrong. You can also create or edit Tasks from your profile menu under the Tasks view, where every active and paused Task is listed.
If you want to be precise about cadence in your prompt, plain English works ("the first Monday of each month", "every weekday at 7am"). ChatGPT translates it; you verify it.
If you run this brief for a specific client or domain, create the Task from within a Project so it inherits that Project's custom instructions and files. A Task born inside a Project titled "Acme competitive intel" can be told to weight Acme's competitors automatically, no repetition needed.
The first run is a draft, not a deliverable. Treat the first two or three Mondays as calibration.
What to check:
To edit, open the Task and revise the prompt directly. You don't recreate it. You can also pause a Task (useful during a holiday) and resume later.
A clean tuning loop:
1. Read Monday's output.
2. Note the single biggest flaw.
3. Edit the prompt to fix exactly that one thing.
4. Wait for next run, repeat.
Resist rewriting the whole prompt at once. You won't know which change helped.
A web-search brief is the easy case. Tasks get genuinely useful when they touch *your* data.
Connectors link ChatGPT to external systems (Google Drive, Gmail, GitHub, Outlook, and others, depending on availability and plan). A Task can read from a connected source at run time. For example:
> Every Friday at 4pm, check my connected Google Drive folder "Weekly reports", summarize any document modified this week into 3 bullets each, and flag anything mentioning "delay" or "blocked".
Now the Monday brief or Friday digest is grounded in your actual files, not just the public web. Authorize Connectors once at the account level; the Task uses them on every run.
For multi-step jobs, the ChatGPT agent can browse, click, fill forms, and operate a virtual computer to complete a task end to end. A scheduled agent run can do things a single prompt can't, like navigating a site that has no clean search.
The tradeoff: agent runs are slower, can hit login walls or CAPTCHAs, and may pause for your confirmation on sensitive actions. For an unattended scheduled job that needs zero human input, a focused prompt with web search is usually more reliable than a full agent run. ReachReachThe number of unique people exposed to your message in a given period. Unlike impressions, reach counts each person once, no matter how often they see it.View full definition → for the agent when the task genuinely requires interaction, not just retrieval.
Knowledge check
1. When a Scheduled Task fires, where does ChatGPT run the saved prompt?
2. Why must a Task's prompt be complete and unambiguous on its own?
3. According to the lesson, where should you check the exact cap on active Tasks?
4. Select ALL correct answers about what a Scheduled Task run can access even though each run is a clean slate.
Sélectionnez toutes les réponses correctes.
5. Select ALL correct answers describing the three components that make up a Scheduled Task.
Sélectionnez toutes les réponses correctes.
Scheduled Tasks are excellent for *personal*, *human-readable* automations delivered to *you*. They hit a ceiling fast when you need any of the following:
At that point you move the schedule out of ChatGPT and into your own infrastructure (a cron job, a serverless function, a workflow tool), and call the OpenAI API on each tick. You provide the scheduling; the APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → provides the intelligence.
Here's the Monday brief as a real APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → job using the Responses API with the built-in web search tool and structured outputs, so the result is guaranteed-shape JSON your code can route anywhere:
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
schema = {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"headline": {"type": "string"},
"source_url": {"type": "string"},
},
"required": ["headline", "source_url"],
"additionalProperties": False,
},
},
"worth_watching": {"type": "string"},
},
"required": ["items", "worth_watching"],
"additionalProperties": False,
}
response = client.responses.create(
model="gpt-4.1",
tools=[{"type": "web_search"}],
input=(
"Find the 5 most significant developments from the past 7 days "
"in enterprise AI tooling, ordered by importance. Include a source "
"URL for each. Add one forward-looking item under worth_watching."
),
text={
"format": {
"type": "json_schema",
"name": "weekly_brief",
"schema": schema,
"strict": True,
}
},
)
print(response.output_text)Wrap that in your scheduler of choice and pipepipeAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.View full definition → response.output_text to Slack or email. The strict: True schemaschemaA schema is the formal blueprint that defines how data is structured, named, typed, and related within a database, file, or message.View full definition → means you never get a malformed week. For the full reference, see the OpenAI API docs.
If your automation grows into multiple coordinating steps (fetch, summarize, fact-check, format, route), that's the signal to look at the Agents SDK, which is built for orchestrating tool-using agents in code rather than cramming everything into one prompt.
Pick the lowest-effort option on this list that actually meets the need. Most people overshoot to the APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → when a Task would have done the job in two minutes.