ChatGPT Work and Codex Automations Tool Reference Unveiled
OpenAI detailed the internal schema powering scheduled tasks, condition watches, and event triggers for ChatGPT Work. Developers can now structure recurring prompts and webhook-driven integrations with precise IANA timezone and iCal constraints.

Impact: High
Why it matters
Mastering the official automation schema lets you build predictable, scheduled AI agents integrated with GitHub, Slack, and Gmail without polling overhead.
TL;DR
- 01Automations enforce a hard rate limit of at most one run per hour for condition watches.
- 02Prompts must be imperative and cadence-free, avoiding monitoring prefixes like 'Check daily'.
- 03Webhook triggers require pre-flight read-only capability discovery before task registration.
Key facts
- Max condition watch frequency
- 1 per hour
- Supported trigger integrations
- Gmail, Slack, GitHub
- Schedule format standard
- iCal VEVENT / RRULE
Execution Modes and Scheduling Rules
The automations schema defines strict constraints for scheduling autonomous background tasks within ChatGPT Work and desktop environments:
exact_schedule: Used for explicit timestamps and relative offsets (e.g.,in 4 hours). Requiresdtstart_offset_jsonor precise iCalDTSTARTwith IANA timezone strings.flexible_schedule: Assigned when fuzzy dayparts (morning ~8am, afternoon ~3pm, evening ~7pm) are supplied without exact minutes.condition_watch: Recurring evaluations that check external states at most once per hour without webhooks.
Webhook Integration Architecture
When connecting external applications such as Gmail, Slack, or GitHub, the model executes a harmless read-only action to verify permissions before creating the trigger:
{
"action": "create",
"timing_mode": "condition_watch",
"prompt": "Send me a summary of newly merged PRs and flag blockers.",
"triggers": {
"app": "github",
"event": "pull_request_merged",
"author_login": "octocat"
}
}Prompt Formatting Rules
Automated agent prompts must be written as clear, single-iteration imperatives to the model without embedding schedule cadence details (avoiding phrasing like Monitor or Every hour, check). If connection authorization is missing, the automation pipeline halts execution immediately.
Try it in 2 minutes
{
"tool": "automations",
"action": "create",
"title": "Daily GitHub PR Digest",
"timing_mode": "exact_schedule",
"default_timezone": "Europe/Kyiv",
"dtstart_offset_json": "{\"days\": 1, \"hour\": 9, \"minute\": 0}",
"prompt": "Summarize open pull requests assigned to me on GitHub."
}json
✓ When to use
- Scheduling recurring background reports or repository triage in Codex and ChatGPT Work.
- Creating event-driven hooks on Slack mentions or GitHub pull request reviews.
What to do today
- Audit existing custom automation prompts to remove embedded cadence instructions.
- Pass explicit IANA timezone identifiers in DTSTART payloads instead of assuming UTC.
- Implement discover_webhook_schema pre-checks in custom agent workflows.
What the community says
“ChatGPT Work in the ChatGPT desktop app is effectively Codex with a different skin. It can operate on your local files in the same way.”
“Honestly, this is one of the things OpenAI does pretty well, I think, these tiny design decisions that you wouldn't notice until it becomes super annoying.”
Sources