Calendar and route optimization
The calendar is your daily control center — the place where you plan, assign, and optimize every task for your team. Combined with built-in route optimization, Clientflow typically saves 20–30% in driving time.
Calendar view
Week view (default)
The calendar shows one ISO week at a time with:
- Rows = your team members
- Columns = Monday through Sunday
- Task cards stacked vertically in each cell
Each task card shows:
- Customer name and address
- Time window (e.g. 08:00–09:30)
- Estimated duration
- Status color (planned, in progress, completed, cancelled)
- 🔒 Lock icon if the task is locked
- ⚡ Flexible badge for flexible tasks
- ➡️ Moved badge with original date and minutes saved
Navigation
- Arrows (← →) to switch weeks
- Today button to jump to the current week
- Week picker to go straight to a specific week
- The week number is shown clearly (e.g. "Week 14, 2026")
Team-member filtering
In the calendar header you can toggle visibility of individual team members. Useful when you want to focus on specific people's schedules.
The three views
The calendar page has three tabs:
1. Calendar (week view)
The standard planning view described above.
2. Day plan (phone preview)
A preview of how a field worker sees their day in the mobile app. Shows:
- Tasks in order for the selected day
- Estimated drive time between stops
- Navigation, call and status buttons
- Useful for a quality check: "Does the route make sense for Ahmed tomorrow?"
3. Live map
Real-time map with the positions of your vehicles (requires Clientflow fleet tracking):
- See every vehicle on the map at once
- Click a vehicle to see trip history
- Color-coded routes based on speed
- Useful for: "Where is Lars right now?" or "How far is Mohammed from the next customer?"
Create tasks from the calendar
- Click an empty slot in the calendar (or use the Create task button)
- The dialog opens with team member and date pre-filled
- Pick customer, address, services, time window and locking type
- Click Save
Move tasks with drag-and-drop
You can drag a task card from one cell to another to:
- Move the task to a different day (within the week)
- Reassign the task to a different team member
- Both at once
Right-click menu
Right-click a task for quick actions:
- Edit, Cancel, Delete
- Lock / Unlock
- View subscription or customer
- Show route map
- Open the day plan for this day
- Move all tasks — move every one of a team member's tasks for a day to another team member/date (e.g. sick day)
Route optimization
How it works
Clientflow calculates the most efficient routes for your team:
- Input: All tasks for the week, team members' home addresses, estimated task durations, locks and constraints
- Calculation: The system finds the optimal distribution and order of tasks
- Output: Tasks are moved (if not locked) and the calendar is updated
If you run several geographic departments, each one is solved on its own — one run per department per week, so a task in one department never lands with a team member in the other. See Units.
Run planning manually
- Navigate to the desired week
- Click Replan in the top menu
- Wait for the calculation (typically 5–30 seconds)
- Review the changes in the calendar
Automatic nightly planning
In Settings → Planning you can enable automatic route optimization:
- Time — when the optimization should run (default: 02:00)
- The system runs planning for the upcoming week every night
- You're notified of the result (success or failure)
Understanding locks
Locks are how you tell the planning system: "Don't touch this task." Lock levels in increasing restrictiveness:
| Level | What's fixed | What can move |
|---|---|---|
| No lock | Nothing | Everything (day, time, team member) |
| Day | The day | Time and team member |
| Day + time | Day and time window | Team member |
| Day + team member | Day and team member | Time |
| Day + team member + time | Everything except order | Order only |
| Fixed | Everything | Nothing |
Automatic locking: When a customer receives a notification about a visit, the task is automatically locked to the configured level (configurable in Settings → Planning). This prevents the customer being told one time and then the task being moved.
What can the planning system NOT do?
- It never moves tasks to a day where the team member is off or sick
- It always respects working hours (tasks are only placed inside the team member's schedule)
- It never creates new tasks — it only optimizes the placement of existing ones
- Tasks without a valid address (missing coordinates) are skipped with a warning
Unassigned orders
Orders that couldn't be placed appear in the Unassigned orders panel on the right. Each order gets a reason badge:
| Badge | What it means | How to resolve it |
|---|---|---|
| Time window | The customer's time window doesn't fit any available team member | Widen the time window, or unlock the order |
| Team member requirement | The order requires a specific team member who isn't available | Check that the team member is active that week |
| Capacity | All team members are fully booked that day/week | Consider adding capacity or redistributing |
| Too tight | The combination of time window + travel gives too little room | Add ±30 min of buffer in the time window |
| Break | The break can't be fit in without overrunning the window | Adjust the break window in the team member's calendar settings |
Drag the order manually to an available slot, or adjust the constraints and run planning again.
Sidebar: Capacity overview
The calendar sidebar (left panel) shows:
Week overview
- Total number of tasks for the week
- Total hours
- Capacity utilization as a percentage
Team-member statistics
Carousel with per-team-member data:
- Number of assigned tasks
- Estimated drive time
- Capacity utilization
Cancelled tasks
A list of tasks cancelled during the selected week — so you can quickly see if there's free capacity.
Exceptions (absences)
Handle sick days, vacation, and public holidays:
- Click Add exception in the calendar header
- Pick a team member
- Pick a type: Sick day, Vacation, Public holiday, Other
- Pick a date range
Exceptions are shown visually in the calendar and prevent the planning system from assigning tasks.
Sick day with existing tasks
When a team member calls in sick and already has tasks:
- Create the exception (sick day)
- Use Move all tasks (right-click menu) to move tasks to a colleague
- Alternatively: run planning again to let the system distribute the tasks optimally
Team-member multipliers
Clientflow learns over time how quickly each team member performs tasks compared to the estimates:
- Multiplier < 1.0 (e.g. 0.85×) = the team member is faster than average
- Multiplier = 1.0 = the team member matches the estimates
- Multiplier > 1.0 (e.g. 1.15×) = the team member takes longer than estimated
When enabled in the planning settings, route optimization automatically adjusts the time estimates per team member — so Ahmed, who is fast, gets a few more tasks, and Peter, who is thorough, gets a few fewer.
See multipliers and trends in Settings → Team members → pick a team member → the Multiplier card.
Planning settings
In Settings → Planning you'll find:
| Setting | Description |
|---|---|
| Max daily working hours | Upper limit on task hours per team member per day |
| Team-member multipliers | Turn the speed adjustment per team member on/off |
| Lock buffer | Extra minutes reserved around locked tasks |
| Lock level on notification | Which lock level is automatically applied when the customer has been notified |