Scheduling
Scheduling allows you to control exactly when changedetection.io checks websites for changes. Set specific time windows, limit checks to business hours, schedule checks in different timezones, or combine with check intervals for precise control.
What is Scheduling?
The scheduler lets you define time windows when change detection should run. This is different from check intervals:Check Interval
Schedule
- Check Interval: “Check every 30 minutes”
- Schedule: “Only run Monday-Friday, 9 AM to 5 PM EST”
Why Use Scheduling?
Business Hours Only
Reduce Load
Timezone Matching
Peak Time Monitoring
Setting Up Scheduling
Global Scheduling (Default for All Watches)
Go to Settings
Find Schedule Section
Enable Scheduler
Configure Days and Times
Set Timezone (Optional)
America/New_York, Europe/London)Per-Watch Scheduling
Override global scheduling for specific watches:Edit Watch
Uncheck 'Use Global Settings'
Configure Time Schedule
Schedule Configuration
Day Settings
For each day of the week, configure:Quick Presets
Use the quick-select buttons for common schedules:- Business Hours
- Weekends
- Monday-Friday: 9:00 AM - 5:00 PM (8 hours)
- Saturday-Sunday: Disabled
Timezone Configuration
Setting Timezone
Setting Timezone
America/New_York(Eastern Time)America/Chicago(Central Time)America/Los_Angeles(Pacific Time)Europe/London(GMT/BST)Europe/Paris(CET/CEST)Asia/Tokyo(JST)Australia/Sydney(AEST/AEDT)
How Scheduling Works
Schedule + Check Interval Example
Configuration:- Monday 9 AM: Check runs ✅
- Monday 10 AM: Check runs ✅
- Monday 11 AM: Check runs ✅
- …
- Monday 5 PM: Check runs ✅
- Monday 6 PM: Skipped ❌ (outside schedule)
- Tuesday 9 AM: Check runs ✅
- Wednesday: All checks skipped ❌
Outside Schedule Window
When a check is scheduled to run but falls outside the schedule window:- Check is skipped - No request is made
- Next check waits - Respects the check interval
- Resumes when window opens - First check runs at next scheduled window
Common Scheduling Scenarios
Business Hours Only (Monday-Friday, 9-5)
Use case: Monitor job postings that only update during business hours Configuration:- Check interval: Every 30 minutes
- Result: Checks every 30 min, Mon-Fri 9 AM-5 PM EST
Weekend Sales Monitoring
Use case: Track weekend-only flash sales or promotions Configuration:- Check interval: Every 15 minutes
- Result: Checks every 15 min, weekends only
International Site Monitoring
Use case: Monitor a Japanese e-commerce site during their business hours Configuration:Peak Shopping Hours
Use case: Monitor product restocks during peak shopping times Configuration:Avoid Maintenance Windows
Use case: Don’t check a site that’s down for maintenance 2-4 AM daily Configuration:Advanced Scheduling Techniques
Combining Multiple Schedules with Tags
Create different schedules for different groups of watches:Create Tags
- Tag: “Business Hours Watches”
- Tag: “24/7 Critical Watches”
- Tag: “Weekend Only”
Configure Per-Watch Schedules
Manage from Dashboard
Reduced Frequency During Off-Hours
Scenario: Check every 15 minutes during business hours, every 2 hours overnight Solution: Create two watches for the same URL: Watch 1: “Product - Business Hours”Seasonal Schedules
For seasonal monitoring (e.g., holiday shopping, tax season):- Enable aggressive scheduling during the season
- Disable or reduce frequency outside the season
- Use tags to quickly enable/disable seasonal watches
Troubleshooting
Watch Not Running
Check is outside schedule window
Check is outside schedule window
- Current time is within the scheduled window
- Day of week is enabled
- Timezone is correct (if set)
- Look at “Last check” time on watch
- If last check was before the schedule window, next check will wait until window opens
Duration is too short
Duration is too short
- Check interval: Every 2 hours
- Schedule: Start 9:00, Duration 1 hour
Timezone mismatch
Timezone mismatch
- Verify timezone name is correct
- Check current time in that timezone
- Test with server’s local timezone first (leave timezone blank)
Schedule Not Saving
Error: “Invalid timezone name” Solution:- Use tz database names:
America/New_YorknotEST - Check spelling and capitalization
- Leave timezone blank to use server time
Unexpected Check Times
Problem: Checks run at unexpected times despite schedule Possible causes:-
Global vs per-watch conflict:
- Check if watch is using global settings
- Verify which schedule is actually active
-
Check interval too long:
- If interval > duration, only one check may run per window
-
Jitter enabled:
- Random jitter adds ± seconds to check times
- Check global settings for jitter configuration
Best Practices
Match check interval to schedule duration
Match check interval to schedule duration
- Interval: 30 minutes
- Duration: 8 hours
- Result: 16 checks per day
- Interval: 2 hours
- Duration: 1 hour
- Result: Only 1 check per day
Use timezone for international sites
Use timezone for international sites
Test schedule before deploying
Test schedule before deploying
- Note the current time in the configured timezone
- Verify it’s within the schedule window
- Click “Check now” to test
- Wait for next interval and confirm automatic check runs
Use global schedule as default
Use global schedule as default
Document your schedules
Document your schedules
- “Product - Business Hours Only”
- Tag: “9-5-monitoring”
Scheduling vs. Other Features
Scheduling vs. Check Interval
Scheduling vs. Conditional Monitoring
Related Features
Check Intervals
Conditional Monitoring
Next Steps
Set Up Your First Schedule
Test Timezone Settings
Optimize Check Frequency