MealStack

Calendar

Your daily command center — see all follow-ups, consultations, meal plan dates, and payment dues in one place.

The Calendar is the practitioner's command center. It shows everything happening in your practice — follow-ups, consultations, active meal plan dates, and payment dues — in a single unified view.

Open the calendar from the sidebar or press ⌘K and type "calendar". Keyboard shortcuts work on the calendar page: T (today), D/W/M (switch view), / (navigate).

Views

The calendar supports three views, switchable from the toggle in the top-right corner.

Day view

The day view is your morning starting point. It shows:

  • Summary stats — total events, pending, overdue, and completed counts for the day
  • Action Required — pending and overdue follow-ups with client name, type, time, and duration. Click any event to see a popover with inline actions.
  • Completed — sessions already done today
  • Coming Up sidebar (desktop) — preview of the next 3 days

A "+ New" button lets you schedule a follow-up directly from the calendar without navigating to a client profile.

Week view

A 7-column layout showing all events for the week. Each day column shows event cards with:

  • Color-coded dot by event type
  • Client first name
  • Time (if scheduled) and type label
  • Practitioner initials (when viewing "All Practitioners")
  • Event count badge on each day header

On desktop (≥1280px), clicking a day header or event card opens the side panel with that day's events or event details. On smaller screens, clicking opens a floating popover.

Month view

A traditional calendar grid with event pills per day. Features:

  • Up to 3 event pills per cell, with "+N more" overflow
  • Meal plan date ranges highlighted as a subtle teal background band across the days
  • Overdue events highlighted with a red background tint
  • Selected day highlighted with a primary ring when the side panel is open
  • Click any day to open the side panel (desktop) or drill down to day view (mobile)
  • Click any event pill to see details in the side panel (desktop) or popover (mobile)

Side panel

On screens ≥1280px, clicking a day or event in the week/month view opens a side panel on the right — similar to Google Calendar and Outlook. The calendar grid and panel share a single unified container with a smooth width animation.

The panel has three states:

StateContent
Day summaryDate with ←→ navigation, event count, grouped events (Action Required / Completed / Other) with inline actions
Event detailFull event details with Start Visit, Reschedule, Skip, No-Show, calendar export, and View Client
Quick createClient search, type, time, title — schedule a follow-up inline

The panel stays open as you navigate between days using the ←→ arrows or [/] keyboard shortcuts. Press Esc to close.

The side panel lets you browse days and take actions without ever leaving the calendar. Click a day, review events, start a visit or reschedule — all while keeping the month grid visible for context.

Event types

The calendar shows five types of events, each color-coded:

TypeColorSource
Follow-upsGreen (initial), Blue (follow-up), Violet (check-in), Amber (plan review)dietScheduledFollowUps table
ConsultationsLighter shades of the abovedietConsultations table
Meal plan datesTealStart and end dates of active/draft meal plans
Payment duesOrange (upcoming), Red (overdue)Unpaid invoices with due dates
Package expiryRedActive packages expiring within the date range

Event popover

On smaller screens (below 1280px), clicking an event shows a floating popover with details and actions:

Header: Client name, event type, status badge, and scheduled time.

Body (contextual):

  • Follow-ups: notes (if any)
  • Consultations: mode (in-person/video/phone/chat), conducted by, duration
  • Meal plans: plan title
  • Payment dues: invoice amount

Actions (contextual):

  • Pending follow-up: Start Visit, Reschedule (inline date+time picker), Skip, No-Show, Add to Google Calendar, Download .ics
  • Completed: View Client
  • Meal plan: Open Plan
  • Payment due: View Invoice

All actions execute inline — no navigation away from the calendar.

Practitioner filter

For clinics with multiple dietitians, a dropdown in the calendar header lets you filter events by practitioner.

  • Team members default to "My Schedule" — showing only their own clients' events
  • Owners and admins default to "All Practitioners" — seeing the full practice schedule
  • Switch between practitioners or "All" at any time

The filter works across all three views and affects the tRPC query directly — only matching events are fetched.

Quick scheduling

Schedule a follow-up directly from the calendar:

  1. Click "+ New" in the day view (or next to the header in week/month views)
  2. Search for a client by name
  3. Select the type (Follow-up, Initial, Check-in, Plan Review)
  4. Set a time (optional)
  5. Click Schedule

The event appears immediately on the calendar.

Recurring follow-ups

When scheduling a follow-up (from the calendar or the client's Follow-ups tab), you can set a repeat frequency:

FrequencyInterval
WeeklyEvery 7 days
Every 2 weeksEvery 14 days
MonthlyEvery 30 days

Set a "Repeat until" end date and MealStack generates all future instances automatically. Each instance is a separate follow-up that can be individually rescheduled, skipped, or completed.

Keyboard shortcuts

KeyAction
TJump to today
DSwitch to day view
WSwitch to week view
MSwitch to month view
Previous day/week/month
Next day/week/month
NNew event (opens side panel on desktop, switches to day view on mobile)
EscClose side panel (or go back from event detail to day summary)
[Previous day in side panel
]Next day in side panel

Calendar export

From the event popover, pending follow-ups can be exported to:

  • Google Calendar — opens a pre-filled "Add Event" page
  • .ics file — downloads a standard iCalendar file compatible with Apple Calendar, Outlook, and any RFC 5545 client

On this page