Scheduling
Scheduling that argues with you honestly
Ten calendar views, recurring templates, vacation fan-out, and a conflict engine that tells you what is wrong without refusing to let you save.

- Day, 3-day, week, month, agenda, sitter, client, service, unassigned, map
- Travel-time feasibility from real coordinates
- Per-species vaccination rules
- Bulk reassign an entire day
- RRULE templates with pause and resume
- Trip booking with per-day exceptions
Ten views of the same day
Day, three-day, week, month, agenda, by sitter, by client, by service, the unassigned queue and a map. Color by status, by sitter or by service; filter by any dimension at once.
Drag to reassign. When someone calls in sick, move their whole day to another sitter in two taps and get a conflict report on what that created.
Windows, never exact times
Visits carry a window, because that is what clients actually buy. Promising 2:15pm manufactures a complaint you cannot win. The field app sorts by window start and shows "Arrive 10am–1pm".
Conflicts are data, not errors
The engine checks double booking, travel-time feasibility between consecutive addresses, approved time off, expired or missing vaccinations by species, unpaid balances over your threshold, schedule-block capacity, business hours and short-notice bookings.
Each finding has a severity and an override path. Even a blocking conflict can be overridden with a reason, which is recorded on the visit and in the audit log. Real schedules sometimes have to beat the scheduler.
Recurring work that stays put
Templates hold an RRULE, a window, an assigned sitter and a generation horizon. Pause a template when a client travels and resume it when they are back; already-generated visits stay exactly as they were.
The trip tool takes a date range and a daily pattern and fans out the whole vacation at once, with per-day exceptions and a single cancellation surface.