---
id: chatgpt-scheduling-and-automation
lang: en
track: chatgpt
title: "Scheduling and automation"
seoTitle: "ChatGPT scheduled tasks and automation"
description: "Put ChatGPT on a schedule: one-time, recurring and event-triggered tasks, a prompt that works while you're away, and how to stay in control of what runs."
part: advanced
partTitle: "Advanced"
partOrder: 5
order: 3
level: Advanced
durationMinutes: 8
outcome: "Set up a task that runs on a schedule or on an event and reports back without you starting it, write a prompt that holds up when you're not watching, and pick the jobs worth automating."
summary: "A scheduled task is work you describe once and never start again. It can run once, on a schedule, while watching for a change, or when an email, Slack message, or pull request arrives. Run it by hand first, write the prompt to stand alone, and keep the risky steps behind an approval."
draft: false
updated: "2026-10-14"
furtherReading:
  - title: "Scheduled tasks in ChatGPT"
    url: "https://help.openai.com/en/articles/10291617-scheduled-tasks-in-chatgpt"
    note: "Task types, limits per plan, notifications, sharing, and admin controls."
  - title: "ChatGPT Work and Codex"
    url: "https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex"
    note: "Event-triggered tasks in Work: Gmail, Slack, and GitHub."
  - title: "Scheduled tasks (ChatGPT Learn)"
    url: "https://learn.chatgpt.com/codex/automations"
    note: "Scheduled tasks in the desktop app, local projects, and team tasks."
  - title: "Introducing dots"
    url: "https://openai.com/index/introducing-dots/"
    note: "OpenAI's always-on agents, and the controls that come with them."
keywords:
  - ChatGPT scheduled tasks
  - ChatGPT automation
  - ChatGPT recurring tasks
  - ChatGPT Gmail trigger
  - automate work with ChatGPT
  - ChatGPT dots
quiz:
  intro: "Five quick questions. Ace them all and ChatGPT works while you don't."
  passScore: 5
  questions:
    - q: "What is a scheduled task, in one line?"
      options:
        - "A reminder ChatGPT sends you at a set time"
        - "A chat that reopens itself every morning"
        - "A saved prompt you start yourself with one click each day"
        - "Work that ChatGPT runs on its own, at a time or event"
      answer: 3
      explain: "You describe the job once. ChatGPT runs it at the time or on the event you chose and hands you the result, without you opening a chat."
    - q: "You want a task to run every time a new email from your biggest client arrives. What kind of task is that?"
      options:
        - "An event-triggered task, filtered on sender"
        - "A monitoring task that watches the client's website"
        - "A recurring task that runs every hour"
        - "A one-time task for each new email"
      answer: 0
      explain: "Event-triggered tasks respond to new Gmail messages (filtered by sender or subject), Slack channel messages, or GitHub pull request activity. They run in Work, on Plus and up."
    - q: "Before you schedule a task to repeat, the smartest first move is to..."
      options:
        - "Schedule it hourly and adjust it from the results"
        - "Share it with the team for feedback"
        - "Run the prompt by hand once and check it"
        - "Turn notifications off to avoid noise"
      answer: 2
      explain: "A task that's wrong once is wrong every time it runs. Test the prompt by hand, fix it, and only then put it on a schedule."
    - q: "You create a scheduled task inside a project. What should you know?"
      options:
        - "It can use every file in the project"
        - "It can't use the project's uploaded files"
        - "It only runs while the project is open"
        - "It shares its results with project members"
      answer: 1
      explain: "OpenAI notes that tasks created in a project can't access the project's uploaded files. Write the task so it stands on its own."
    - q: "Which of these is a strong first automation to try?"
      options:
        - "Auto-replies to every client email"
        - "Nightly payments between your accounts"
        - "Hourly posts on the company's public social media channels"
        - "A Monday brief of your calendar and open emails"
      answer: 3
      explain: "Start with tasks that read and report back to you. Anything that sends, posts, or pays on your behalf comes later, with approvals on."
  pass:
    badge: "Automation unlocked"
    title: "ChatGPT works while you don't now."
    body: "Full marks. You can schedule a task, trigger one on an event, write a prompt that stands alone, and keep it safe. One lesson to go: putting it all together in playbooks."
  retry: "Check the marked answers and give it another go. You've got this."
---

> **Level:** Advanced · **Reading time:** ~8 min
>
> **What you'll be able to do:** set up a task that runs on a schedule or on an event and reports back without you starting it, write a prompt that holds up when you're not watching, and pick the jobs worth automating.

Every lesson so far has had you at the keyboard: you open a chat, you ask, ChatGPT answers. Even [Work](/learn/chatgpt/working-smart/chatgpt-work-on-your-files) needs you to press go. This lesson is about the opposite. **A scheduled task is work you describe once and then never start again.** It runs on its own, at the moment you chose, and hands you the finished thing: a brief in your inbox, an alert when something changes, a draft reply waiting for you.

It's the step from *assistant* to *routine*. And it's simpler than it sounds.

## What a scheduled task actually is

A scheduled task is three things saved together: **a prompt** (what to do), **a trigger** (when to do it), and **where the result goes** (a chat, a notification, an email). There are four kinds of trigger:

- **One-time.** Runs once, at a time you pick. "Tomorrow at 8, remind me what I promised in yesterday's meetings."
- **Recurring.** Repeats on a schedule. "Every Monday at 7:30, brief me on my week."
- **Monitoring.** Checks for a change and tells you when something relevant happens, then stops when an end condition is met. "Watch this supplier's pricing page and tell me when it changes."
- **Event-triggered.** Starts when something happens in a connected app: a **new Gmail message** (optionally filtered by sender or subject), a **new message in a Slack channel**, or **pull request activity on GitHub**. These run in **Work**.

<figure class="lesson-svg" aria-labelledby="chatgpt-triggers-title">
<svg viewBox="0 0 640 284" width="100%" height="auto" role="img" xmlns="http://www.w3.org/2000/svg" font-family="Inter, system-ui, sans-serif">
<title id="chatgpt-triggers-title">Four ways a task can start</title>
<desc>Four triggers on the left: one-time, recurring, monitoring, and event, which covers new Gmail messages, Slack channel messages, and GitHub pull requests. All feed one saved prompt in the middle. On the right, where the result goes: the chat, a push notification, or email.</desc>
<text x="0" y="24" font-size="20" font-weight="800" fill="var(--ink,#1F2328)">Four ways a task can start</text>
<text x="0" y="48" font-size="13.5" fill="var(--soft-gray,#6E747C)">One prompt, saved once. The trigger decides when it runs.</text>
<rect x="0" y="66" width="250" height="40" rx="10" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="22" cy="86" r="8" fill="var(--part,#7A50C7)"/>
<text x="40" y="84" font-size="13" font-weight="800" fill="var(--ink,#1F2328)">One-time</text>
<text x="40" y="99" font-size="11" fill="var(--med-gray,#5B6169)">Tomorrow at 8:00</text>
<line x1="254" y1="86" x2="300" y2="160" stroke="var(--part,#7A50C7)" stroke-width="2" stroke-linecap="round"/>
<rect x="0" y="114" width="250" height="40" rx="10" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="22" cy="134" r="8" fill="var(--part,#7A50C7)"/>
<text x="40" y="132" font-size="13" font-weight="800" fill="var(--ink,#1F2328)">Recurring</text>
<text x="40" y="147" font-size="11" fill="var(--med-gray,#5B6169)">Every Monday at 7:30</text>
<line x1="254" y1="134" x2="300" y2="160" stroke="var(--part,#7A50C7)" stroke-width="2" stroke-linecap="round"/>
<rect x="0" y="162" width="250" height="40" rx="10" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="22" cy="182" r="8" fill="var(--part,#7A50C7)"/>
<text x="40" y="180" font-size="13" font-weight="800" fill="var(--ink,#1F2328)">Monitoring</text>
<text x="40" y="195" font-size="11" fill="var(--med-gray,#5B6169)">Tell me when this page changes</text>
<line x1="254" y1="182" x2="300" y2="160" stroke="var(--part,#7A50C7)" stroke-width="2" stroke-linecap="round"/>
<rect x="0" y="210" width="250" height="40" rx="10" fill="var(--part-tint,#F2ECFB)" stroke="var(--part,#7A50C7)"/>
<circle cx="22" cy="230" r="8" fill="var(--part,#7A50C7)"/>
<text x="40" y="228" font-size="13" font-weight="800" fill="var(--part-ink,#5B37A0)">Event (in Work)</text>
<text x="40" y="243" font-size="11" fill="var(--med-gray,#5B6169)">Gmail, Slack, GitHub PR</text>
<line x1="254" y1="230" x2="300" y2="160" stroke="var(--part,#7A50C7)" stroke-width="2" stroke-linecap="round"/>
<rect x="300" y="120" width="150" height="80" rx="14" fill="var(--part,#7A50C7)"/>
<text x="375" y="156" font-size="15" font-weight="800" fill="#fff" text-anchor="middle">Your prompt</text>
<text x="375" y="176" font-size="11.5" fill="#fff" text-anchor="middle">saved once</text>
<line x1="456" y1="160" x2="486" y2="160" stroke="var(--part,#7A50C7)" stroke-width="2.5" stroke-linecap="round"/>
<path d="M483 154 L492 160 L483 166" fill="none" stroke="var(--part,#7A50C7)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="496" y="112" width="144" height="28" rx="8" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<text x="510" y="131" font-size="12" font-weight="600" fill="var(--ink,#1F2328)">The chat</text>
<rect x="496" y="146" width="144" height="28" rx="8" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<text x="510" y="165" font-size="12" font-weight="600" fill="var(--ink,#1F2328)">Push notification</text>
<rect x="496" y="180" width="144" height="28" rx="8" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<text x="510" y="199" font-size="12" font-weight="600" fill="var(--ink,#1F2328)">Email</text>
<text x="496" y="100" font-size="11" font-weight="800" fill="var(--soft-gray,#6E747C)">RESULT GOES TO</text>
<text x="0" y="278" font-size="11.5" fill="var(--soft-gray,#6E747C)">Event tasks need Plus or higher. Business: up to 10 active tasks.</text>
</svg>
</figure>

## Where it lives, and what it costs

Everything lives on the **Scheduled** page in the sidebar. There you see active, paused, and finished tasks and their recent runs, with a marker when one needs your attention. You can also reach a task from the chat it belongs to.

**Plans and limits.** Scheduled tasks are on every plan, but the number of active tasks differs: 3 on Free and Go, 5 on Plus, **10 on Business** and Edu, 15 on Pro and Enterprise. Free gets one-time or once-a-day tasks in rough time windows; exact times and hourly schedules need a paid plan. **Event-triggered tasks** need Plus or higher, and together they can run at most 30 times an hour and 720 times a day.

Runs use your normal usage allowance. A task that runs Work every hour uses a lot more than a daily summary, so match the cadence to what you really need.

## Cloud or your computer: where the task runs

This decides whether a task fires while your laptop is closed.

- **In the cloud.** Most tasks run in ChatGPT's cloud. They fire on time whether your computer is on or not. Event-triggered tasks run in Work in the cloud.
- **On your computer.** In the desktop app, a task can work with a local folder or project. Then the rule is simple: OpenAI says to keep the computer on and the app running when a task needs local files. Closed laptop, no run.

**Rule of thumb:** if it needs your local files, it runs on your machine and your machine must be awake. If it only needs connected apps and the web, let it run in the cloud.

## Two ways to make one

**1. Just ask in a chat.** "Every weekday at 8:00, check my calendar and unread email and give me a five-line plan for the day." ChatGPT confirms the schedule and saves the task. This is the fastest route.

**2. From the Scheduled page.** Use **Schedule a task**, type the prompt, and set the schedule. Event triggers are created and edited on the web or in the mobile app; the desktop app shows them but can't change their trigger. When you open a task you see its **Trigger**, **Condition**, and **Prompt**, so you can check exactly what it will do.

For **Slack** triggers, add **@ChatGPT** to every channel the task should watch. For **Gmail**, connect the app first ([lesson 4.5](/learn/chatgpt/working-smart/connecting-chatgpt-to-your-tools)).

## The one habit that saves you: run it once first

**Never schedule a prompt you haven't run by hand.** A task that's wrong once is wrong every Monday, forever, quietly.

So: write the prompt, run it in a normal chat or Work task, and look hard at the result. Too long? Missing the one thing you care about? Pulling from the wrong calendar? Fix the prompt, run it again, and only then put it on a schedule. Then **check the first two or three runs** before you stop looking.

## Writing a prompt that holds up alone

A normal chat prompt has you beside it to clear things up. A scheduled prompt doesn't. It has to stand on its own, every single time. Build it with the recipe from [lesson 3.2](/learn/chatgpt/prompting/how-to-write-a-great-prompt), and add four things:

- **Name the sources.** "My Outlook calendar and the #sales-team Slack channel," not "my stuff."
- **Fix the time window.** "Since the last run" or "the next seven days," so it doesn't repeat itself.
- **Say what to do when there's nothing.** "If there's nothing new, reply with one line: nothing new." Otherwise you get a long answer about nothing.
- **Fix the format.** Same headings, same length, every time, so you can scan it in ten seconds.

One trap: **a task created inside a project can't use the files uploaded to that project.** If it needs that material, put the key facts in the prompt or keep them in a connected app.

Here's what a good one looks like:

```
Every Monday at 7:30, using my Outlook calendar and inbox:
1. List this week's meetings with external people, one line each.
2. For each, find the latest email thread and say what I need to prepare.
3. List emails older than 3 days that still wait for my reply.
Keep it under 200 words, same headings every week.
If a section is empty, write "none".
```

## Good first automations

Start with tasks that **read and report back to you**. They're useful on day one and can't embarrass you:

- **Monday brief.** Your week's meetings, deadlines, and open threads.
- **Daily inbox triage.** What needs a reply today, what can wait, what's just information.
- **Competitor or price watch.** A monitoring task on a few public pages.
- **Client email alert.** An event trigger on mail from one key sender, with a two-line summary and a suggested next step.
- **Pull request digest.** For technical teams: a summary when a PR opens in a repository you own.
- **End-of-week wrap-up.** What got done, what slipped, what's next, from your calendar and notes.

**A worked example.** Tom manages three key accounts. Mail from those clients tends to get buried under newsletters. He sets up an event-triggered task: when a new Gmail message arrives from any of the three domains, Work reads it, checks the latest thread with that client, and sends him a push notification with two lines: what the client wants, and a suggested next step. It never replies by itself. The first week he tweaks the prompt twice, because the summaries were too long. After that, nothing urgent slips past him, and he hasn't written a single filter rule.

Leave the tasks that **send, post, or pay on your behalf** for later, and when you get there, keep approvals on.

## Managing and sharing your tasks

On the Scheduled page you can **edit, pause, or delete** any task. Deleting the chat a task belongs to also pauses it, and tasks that sit unused can pause on their own.

**Notifications** are in Settings, Notifications: push, email, or both. On mobile, create the task in the app to get push notifications.

You can **share** an active or paused task with a link. The link holds a snapshot of the title, instructions, schedule, and time zone, but **not** your chat history, memories, files, or app logins. Your colleague sets it up with their own access. Personal links can be opened by anyone who has them; workspace links only by your colleagues. So read the instructions before you share.

## Staying in control

A task that runs while you're away needs firmer guard rails than a chat:

- **Approvals pause the task.** If a step needs your approval, the task waits until you review it. That's a feature: keep risky steps behind it.
- **Give the narrowest access** that lets the task succeed. Only the apps, folders, and channels it needs.
- **Watch out for incoming content.** An event-triggered task reads emails and messages written by other people. That's the doorway for **prompt injection** (lesson 4.4). Never let such a task send, pay, or share without your review.
- **Check your admin's rules.** On Enterprise and Edu, admins must switch on event-triggered tasks; on Business they control which apps and actions are allowed.
- **Review now and then.** Once a month, open Scheduled and ask of each task: do I still read this? Pause what you don't.

## A look ahead: dots

OpenAI is rolling out **dots**: always-on agents with their own cloud computer that keep working towards a goal, learn from your feedback, and check in with you in ChatGPT, Slack, or Teams. At launch they come with **Pro and Business Premium** (one included) and as a beta on Enterprise, with controls to allow, require approval for, or block specific actions. For most readers, scheduled tasks are where automation starts today; dots are where it's heading. The same habits apply to both: narrow access, approvals on risky steps, and a human reading the results.

## Try it

Write the Monday brief prompt above, adapted to your own tools. **Run it by hand first** in a normal chat, and fix what's off. When the answer is something you'd really want to read, ask: **"Schedule this every Monday at 7:30."**

Check the first two Mondays. Then decide: keep, adjust, or pause. That's the whole craft of automation, at small scale.

*(General exercise. Role and industry versions come once accounts are in.)*

## Key terms

[Scheduled task](/glossary#chatgpt-scheduled-task), [Event trigger](/glossary#event-trigger), [ChatGPT Work](/glossary#chatgpt-work), [Prompt injection](/glossary#prompt-injection), [Dots](/glossary#chatgpt-dots)
