Periodic task scheduling patterns with Celery Beat (crontab, interval, solar). Use when configuring periodic tasks, setting up task schedules, implementing recurring jobs, configuring django-celery-beat, or creating dynamic schedules.
View on GitHubFebruary 1, 2026
Select agents to install to:
npx add-skill https://github.com/vanman2024/ai-dev-marketplace/blob/main/plugins/celery/skills/beat-scheduling/SKILL.md -a claude-code --skill beat-schedulingInstallation paths:
.claude/skills/beat-scheduling/# Beat Scheduling Skill
Provides comprehensive patterns and templates for implementing periodic task scheduling with Celery Beat, including crontab, interval, and solar schedules.
## Use When
- Configuring periodic/scheduled tasks in Celery applications
- Setting up cron-like schedules for recurring jobs
- Implementing interval-based task execution
- Configuring solar-based scheduling (sunrise/sunset triggers)
- Setting up django-celery-beat for database-backed schedules
- Creating dynamic schedules that can be modified at runtime
- Migrating from cron to Celery Beat
- Implementing time-zone aware scheduling
## Core Capabilities
### 1. Crontab Schedule Configuration
Generate crontab-based schedules with precise timing control:
```python
# See templates/crontab-schedule.py for complete implementation
from celery.schedules import crontab
app.conf.beat_schedule = {
'daily-report': {
'task': 'tasks.generate_report',
'schedule': crontab(hour=0, minute=0), # Midnight daily
},
'business-hours': {
'task': 'tasks.process_orders',
'schedule': crontab(hour='9-17', minute='*/15', day_of_week='mon-fri'),
}
}
```
**Key patterns:**
- Daily, weekly, monthly schedules
- Business hours execution
- Complex cron expressions with multiple constraints
- Timezone-aware scheduling
### 2. Interval Schedule Configuration
Simple interval-based recurring tasks:
```python
# See templates/interval-schedule.py for complete implementation
from celery.schedules import schedule
app.conf.beat_schedule = {
'every-30-seconds': {
'task': 'tasks.check_status',
'schedule': 30.0, # Execute every 30 seconds
},
'every-hour': {
'task': 'tasks.cleanup',
'schedule': timedelta(hours=1),
}
}
```
**Key patterns:**
- Fixed interval execution
- Relative vs absolute timing
- Preventing task overlap
### 3. Solar Schedule Configuration
Event-based scheduling using solar calculations:
```python
# See templa