Today's Schedule
A live feeding and medication checklist for every dog currently boarding — auto-derived from care logs.
What this screen is
Today's Schedule is a live daily checklist of feedings and medications for every dog currently checked in at the active facility. It lives at /dashboard/schedule and is designed to answer one question at a glance: what still needs to happen today? It resets every day at midnight IST — past days are not shown here, they live in each booking's care timeline.
How rows are generated
The screen doesn't have its own data — nothing is stored as a schedule row. Instead, every checked-in booking at the facility produces one row. Each row shows the dog's name, their kennel, and any allergy flag from the dog's profile. A medication line appears only for dogs whose profile lists medications; dogs without meds show just the feeding line. Feeding instructions and allergy notes come straight from the dog's profile, so updating the profile is how you change what appears here.
How items get checked off
The check marks on each row are derived from today's care logs, not from a separate 'done' button. The moment a caretaker logs a meal for that booking today, the feeding line turns green and gets struck through. The same is true for medication logs. Tapping any row opens the dog's care page — the primary place to log — so marking an item complete is a one-tap trip through the care UI, not a manual toggle on the schedule itself. The top of the page shows roll-up counters: 'Meals: 4/6 done' and 'Meds: 2/3 done' so a manager can see compliance without reading every row.
Today's Schedule vs. Tasks
It's easy to confuse Today's Schedule with the Tasks board — both are lists of things to do — but they model different work. The schedule is for recurring, dog-scoped care that happens every day (feedings, medications); rows are generated automatically and nothing is stored as a task. Tasks are for ad-hoc, human-authored work that doesn't fit a daily rhythm (call the vet about Bruno, fix the kennel 4 latch, pick up supplies); rows are stored in the tasks table, can be assigned, have priorities and due times, and persist until completed. A rule of thumb: if the same item would appear on the list tomorrow and every day after, it belongs on the schedule. If it's a one-off, it belongs in Tasks.
Empty states and edge cases
When no dogs are checked in, the schedule shows a friendly empty state instead of an empty list. Dogs who are booked but not yet checked in do not appear — they'll show up once a staff member completes check-in on the booking. If you update a dog's medications mid-stay, the new medications appear on the next page load; there's no background refresh. The schedule is always for today in IST regardless of the viewer's device timezone, so remote managers see the same list as staff on the floor.