Scheduled Jobs let you automate any prompt or agent workflow to run on a repeating cron schedule—without any manual intervention. You write the prompt once, pick a schedule, and AnythingLLM handles the rest: it spawns an isolated agent worker for each execution, logs every run with status and output, and sends you a push notification when the job completes. Whether you need a daily market summary, an automated web research digest, or a weekly report generated from your embedded documents, Scheduled Jobs handle it end-to-end.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Mintplex-Labs/anything-llm/llms.txt
Use this file to discover all available pages before exploring further.
Scheduled Jobs use the full AnythingLLM agent runtime, including all configured agent skills: RAG memory, web browsing, web scraping, SQL querying, file system access, Gmail, Google Calendar, Outlook, MCP servers, custom imported plugins, and agent flows. Each job can be configured with its own independent toolset.
Creating a Scheduled Job
Name your job and write the prompt
Give the job a descriptive name. Then write the prompt exactly as you would type it into an agent chat—be specific about what you want the agent to produce. The agent will follow the prompt faithfully on every scheduled execution.
Set the cron schedule
Enter a standard 5-field cron expression for when the job should run. All cron expressions are interpreted in UTC. The UI will show you the next computed run time after you enter a valid expression.
Select agent tools (optional)
Choose which agent skills the job is allowed to use. Each scheduled job has its own independent tool configuration—you can give one job access to web browsing while another only uses RAG memory. Leave the list empty to use no tools (plain LLM completion only).
Cron Schedule Examples
- Common Schedules
- Use Case Examples
| Expression | Meaning |
|---|---|
0 9 * * * | Every day at 9:00 AM UTC |
0 9 * * 1 | Every Monday at 9:00 AM UTC |
0 8,17 * * 1-5 | Weekdays at 8:00 AM and 5:00 PM UTC |
0 0 1 * * | First day of every month at midnight UTC |
0 */4 * * * | Every 4 hours |
30 6 * * 1-5 | Weekdays at 6:30 AM UTC |
0 18 * * 5 | Every Friday at 6:00 PM UTC |
Job Runs and Status
Every time a scheduled job fires, a job run record is created and tracked through its full lifecycle:| Status | Meaning |
|---|---|
queued | The run has been claimed by the queue; the worker process has not started yet |
running | The agent worker is actively executing the prompt |
completed | The job finished successfully; result text and tool call trace are stored |
failed | The job encountered an error before completing |
timed_out | The job exceeded SCHEDULED_JOB_TIMEOUT_MS and was terminated |
Continuing a Run in a Workspace Thread
From any completed run, you can click “Continue in Thread” to open the job’s response as a new chat thread in the dedicatedscheduled-jobs workspace. This lets you ask follow-up questions, dig deeper into the results, or use the output as a starting point for further research.
Handling Orphaned Runs
If the AnythingLLM server restarts while a job isqueued or running, those in-flight runs are automatically marked as failed with the message "Server restarted during execution" on the next startup. No run is ever left stuck in a non-terminal state.
Environment Variables
You can tune scheduled job behavior with these variables in your.env file or Docker environment:
SCHEDULED_JOB_MAX_CONCURRENT
SCHEDULED_JOB_MAX_CONCURRENT
1 (sequential execution). Increase this value if you have many jobs scheduled close together and your LLM provider can handle the parallel load.The concurrency limit is enforced by a p-queue worker pool inside the BackgroundWorkers service—jobs that exceed the limit are queued and executed as slots become available.SCHEDULED_JOB_TIMEOUT_MS
SCHEDULED_JOB_TIMEOUT_MS
300000 (5 minutes). If the agent does not finish within this window, the run is marked timed_out.Increase this value for jobs that perform long web scraping chains or process large documents. Note that a timed-out job may still have consumed LLM tokens up to the point it was terminated.Agent Tools Available to Scheduled Jobs
Each scheduled job can independently select from the full set of available agent skills. Unlike workspace-level agent settings, the tool selection is per-job—you can give a research job access to web browsing without enabling it for a document summary job.Available tool categories
Available tool categories
- Agent Skills: RAG Memory, Document Summarizer, Web Scraping, Create Charts, Web Browsing, SQL Agent
- File System: Read, write, and list files in the server’s storage directory
- Create Files: Generate PDFs, Word documents, Excel spreadsheets, and more
- Gmail: Read inbox, send emails, manage labels (requires Gmail OAuth setup)
- Google Calendar: Create, read, and update calendar events (requires Google Calendar OAuth setup)
- Outlook: Read mail, send emails, manage calendar (requires Outlook OAuth setup)
- Custom Skills: Any imported plugin packages you’ve added to your instance
- Agent Flows: Any saved agent flows you’ve built in the Flow Builder
- MCP Servers: Any connected Model Context Protocol servers and their exposed tools
requiresSetup: true in the tool picker and will fail gracefully if selected without proper configuration.
Use Cases
Daily News Digest
Scrape a set of news sources or RSS feeds every morning and produce a structured summary dropped into a workspace thread for your team.
Automated Research
Run competitive analysis jobs that search the web for mentions of your product, competitors, or industry keywords and compile a weekly brief.
Document Q&A Rollups
Query your embedded document corpus on a schedule to surface newly relevant information—ideal for compliance monitoring or knowledge-base auditing.
Scheduled Report Generation
Query connected SQL databases and generate formatted Excel or PDF reports on a monthly cadence, fully automated without any human trigger.