# Scheduled Workflows URL: /docs/examples/scheduled-workflows Source: /app/src/content/docs/examples/scheduled-workflows.mdx import { DocImage } from '@/components/DocImage'; Build time-based automated workflows with simple schedule strings and dependency management. ## Quick Start ### Clone the Complete Example The easiest way to get started is to clone the complete example repository: ```bash git clone https://github.com/astreus-ai/scheduled-workflows cd scheduled-workflows npm install ``` ### Or Install Package Only If you prefer to build from scratch: ```bash npm install @astreus-ai/astreus ``` ## Environment Setup ```bash # .env OPENAI_API_KEY=sk-your-openai-api-key-here DB_URL=sqlite://./astreus.db NODE_ENV=development ``` ## Quick Test Example (Seconds) ```typescript import { Agent, Graph } from '@astreus-ai/astreus'; const agent = await Agent.create({ name: 'ContentAgent', model: 'gpt-4o', systemPrompt: 'You are a content creation specialist.' }); const graph = new Graph({ name: 'Quick Test Pipeline', description: 'Test automated workflow with seconds interval', maxConcurrency: 2 }, agent); // Run after 5 seconds const researchNode = graph.addTaskNode({ name: 'Content Research', prompt: 'Research trending topics in AI and technology. Find 3-5 compelling topics for blog content.', schedule: 'after:5s' }); // Run after 10 seconds const creationNode = graph.addTaskNode({ name: 'Content Creation', prompt: 'Based on the research findings, create a short blog post summary on one of the trending topics.', schedule: 'after:10s', dependsOn: ['Content Research'] }); // Run after 15 seconds const seoNode = graph.addTaskNode({ name: 'SEO Optimization', prompt: 'Optimize the blog post for SEO: add meta description and keywords.', schedule: 'after:15s', dependsOn: ['Content Creation'] }); // Run after 20 seconds const publishNode = graph.addTaskNode({ name: 'Content Publishing', prompt: 'Create a social media post for the optimized content.', schedule: 'after:20s', dependsOn: ['SEO Optimization'] }); console.log('Starting scheduled workflow test...'); console.log('Tasks will run at:'); console.log('- Research: 5 seconds from now'); console.log('- Creation: 10 seconds from now'); console.log('- SEO: 15 seconds from now'); console.log('- Publishing: 20 seconds from now\n'); // Run the graph and get results const result = await graph.run(); // Display execution results console.log('\n=== Workflow Execution Results ==='); console.log('Success:', result.success); console.log(`Completed: ${result.completedNodes} tasks`); console.log(`Failed: ${result.failedNodes} tasks`); console.log(`Duration: ${result.duration}ms`); // Display each task result if (result.results) { console.log('\n=== Task Results ==='); for (const [nodeId, nodeResult] of Object.entries(result.results)) { console.log(`\n[${nodeId}]:`); console.log(nodeResult); } } // Check for errors if (result.errors && Object.keys(result.errors).length > 0) { console.log('\n=== Errors ==='); for (const [nodeId, error] of Object.entries(result.errors)) { console.log(`[${nodeId}]: ${error}`); } } console.log('\n✅ Scheduled workflow test completed!'); ``` ## Daily Content Pipeline (Production) For production use with actual daily schedules: ```typescript // Schedule format examples: // 'daily@06:00' - Every day at 6 AM // 'weekly@monday@09:00' - Every Monday at 9 AM // 'monthly@15@10:00' - 15th of every month at 10 AM // 'after:5s' - After 5 seconds (for testing) // 'after:2h' - After 2 hours // 'every:30m' - Every 30 minutes const researchNode = graph.addTaskNode({ name: 'Content Research', prompt: 'Research trending topics in AI and technology.', schedule: 'daily@06:00' }); ``` ## Running the Example If you cloned the repository: ```bash npm run dev ``` If you built from scratch, create an `index.ts` file with the code above and run: ```bash npx tsx index.ts ``` ## Repository The complete example is available on GitHub: [astreus-ai/scheduled-workflows](https://github.com/astreus-ai/scheduled-workflows)