Smart Scheduling
Smart Scheduling is an intelligent system that automatically schedules your habits and tasks on your calendar, respecting priorities, deadlines, and your preferences.Key Features
Unified Scheduling
Habits and tasks are scheduled together in a coordinated manner, ensuring they don’t conflict
Priority-Aware
Items are scheduled based on priority, with urgent tasks able to bump lower-priority habits
Deadline Intelligence
Automatically infers priority from deadlines - items due soon get scheduled first
Flexible Duration
Habits can have min/max duration bounds, optimizing time based on slot availability
How It Works
1. Priority Calculation
Every habit and task has an effective priority that determines scheduling order:| Priority | Weight | Deadline Inference |
|---|---|---|
| Critical | 4 | Overdue or due within 24 hours |
| High | 3 | Due within 24-48 hours |
| Normal | 2 | Due beyond 48 hours |
| Low | 1 | No deadline set |
Explicit priorities always take precedence over inferred priorities. If you manually set a task as “Critical”, it stays critical regardless of deadline.
2. Scheduling Order
Smart Scheduling processes items in this order:- Habits First - Sorted by priority, then by ideal time preference
- Tasks Second - Sorted by priority, then by deadline proximity
- Bumping - Urgent (critical) tasks can bump lower-priority habit events
- Rescheduling - Bumped habits are rescheduled to the next available slot
3. Duration Optimization
For habits with flexible duration (min/max bounds), the system optimizes duration based on slot characteristics:Using Smart Schedule
From the Calendar
Click the Smart Schedule button in the calendar toolbar to run scheduling for your workspace:1
Click Smart Schedule
Find the button in the calendar toolbar with the sparkle icon
2
Wait for Processing
The system analyzes your habits, tasks, and existing events
3
View Results
New calendar events appear automatically, with a toast notification showing the summary
Automatic Scheduling
Smart Scheduling runs automatically every hour via a background cron job. This ensures your calendar stays up-to-date as you add new habits and tasks.The cron job only schedules items with
auto_schedule enabled. You can enable/disable auto-scheduling per habit or task.Configuration Options
Window Days
Controls how far into the future to schedule events (default: 30 days, max: 90 days).Force Reschedule
When enabled, existing scheduled events are deleted and recreated. Use this to completely refresh your schedule.Best Practices
Set Explicit Priorities for Important Items
Set Explicit Priorities for Important Items
While the system infers priority from deadlines, setting explicit priorities ensures your most important work is scheduled first.
Use Flexible Duration for Habits
Use Flexible Duration for Habits
Set min/max duration bounds instead of fixed durations. This allows the system to optimize scheduling - using more time in ideal slots and less in constrained ones.
Set Ideal Times for Habits
Set Ideal Times for Habits
Specify your preferred time (e.g., “07:00” for morning meditation). The system will prioritize these slots and allocate maximum duration when they’re available.
Keep Deadlines Updated
Keep Deadlines Updated
The system uses deadlines to infer priority. Keep your task deadlines accurate for optimal scheduling.