Danvas
Danvas
DashboardSupportWelcome

👤 USER DOCS

User Guides

Getting Started

Getting StartedDashboard & OnboardingApp Settings

Tutorials

Tutorial: Setting Up Shift Tasks & ClosersTutorial: Managing Incidents in the InboxTutorial: Tracking Compliance & Sync StatusTutorial: Operational Workflows with the AI AssistantTutorial: Building & Deploying Custom Checklists

Daily Operations (Staff)

Shift Workspace & TasksService Day SetupDaily Line-UpStaff Service Day ReportsForms

Communication & Chat

Messages & AnnouncementsUnified Operations InboxAI Assistant

Manager & Admin Guides

Daily Line-Up SetupStaff SchedulingManaging LocationsNPS and Guest FeedbackCouponsContacts and Guest HistoryManager CloseoutsDaily Line-Up & ComplianceAnalyticsIncident ReportingWhistleblower Concerns & FeedbackAdmin Tools

⚙️ DEVELOPER DOCS

Getting Started

Getting StartedDevelopmentDeployment Guide

Architecture

Architecture OverviewExplanation: AI Integration & Tenant SecurityExplanation: Dynamic Forms Engine DesignExplanation: Compliance Ledger DesignExplanation: Live Sync & Data FreshnessData FlowArchitecture Decision Records

Core Domain

Core DomainDatabase ReferenceLocations DomainAuth & RBACScheduling DomainReports DomainIncidents DomainUnified Operations InboxLive Sync Data FreshnessToast Sync PipelineNotifications DomainCoupons and Guest NPSAudit Log & Compliance ArchitectureDesign Audit FindingsAI Chat IntegrationAnalytics & Tips Integration

Frontend

Frontend ArchitectureFormsLoading SkeletonsComponentsPWA & Offline ShellScreenshots

API Reference

API Reference

Endpoints

POS Sales APIOptimization Data APISchedule Shifts APIEmployee Export APIReports APIIncidents APIAI Chat APIPush Notifications APIWebhooks APICron API

Contributing

ContributingCode Examples

Security

Security & Compliance

Release Notes

What's New

Staff Scheduling

How staff schedules are managed in Danvas

Overview

Schedules in Danvas are read-only. 7shifts is the source of truth for who is working, where, and when. Danvas mirrors published 7shifts shifts into a local read model so staff can see their week and the team can plan around coverage. For the technical ownership boundary between schedule sync and Daily Line-Up publication, see ADR-0071.

The legacy drag-and-drop Schedule Builder has been removed for MVP. The /admin/schedule-builder URL still resolves to a redirect to /schedule so any saved links keep working.

Where schedules come from

7shifts publishes shifts in 7 daypart buckets: Lunch, Dinner, Late Night, Double, AM, PM, and Full. When a shift lands in Danvas it is mapped to one of four internal shiftType values: Lunch, Dinner, Late Night, or Double. Anything with hours_worked > 7 and a start hour before 15:00 is upgraded to Double. The original AM/PM/Full labels are kept for display in Slack summaries.

A Vercel cron runs every six hours (0 */6 * * *). Each run pulls today and the next 13 days from 7shifts for every location and upserts the rows by their external shift_id. Whenever at least one shift exists, the parent management_schedules row auto-flips to published — there is no manual publish step.

You can't edit shifts in Danvas. To change a shift, edit it in 7shifts — your change will appear in Danvas on the next cron run, up to ~6 hours later.

Locations can be excluded from the cron sync by adding their slug to SCHEDULE_SYNC_EXCLUDED_SLUGS (no default; only configured slugs are excluded).

Viewing Your Schedule

Open Schedule (/schedule) in the sidebar. The viewer shows the current week by default.

  • My Shifts — Just your assignments for the week, with the start/end time and location.
  • Team Schedule — The full roster for the location you have active, with role labels and color-coded shift blocks. Day cells are stacked vertically per employee, and a banner reminds you that the data is read-only.
  • Week navigation — Tap the previous/next week arrows in the header. The week starts on Saturday and ends on Friday (matching 7shifts). The URL is shareable; ?week=YYYY-MM-DD jumps to a specific week.
  • No schedule available yet — If you see this empty state, 7shifts hasn't published shifts for the current week yet. Go to 7shifts and confirm the schedule is published.

The active location is shown in the page title (Schedule — Downtown); switch locations with the location selector at the top of the sidebar to see a different site's roster.

Schedule changes

Danvas does not currently support shift-swap requests or direct schedule editing. Make schedule changes in 7shifts and wait for the next synchronization; do not promise a pending Danvas request, Slack approval, or manager override workflow.

Shift Tasks

Shift tasks are associated with the service-day plan, not created by schedule synchronization. When managers publish the relevant Daily Line-Up dayparts, matching task definitions are materialized into task instances and assigned to the published lineup roster. The task lands in the staff Workspace and may block the end-of-shift report when configured. See Daily Line-Up, Workspace & Tasks, and the canonical Lineup Cards contract.

Shifts Per Day

DayNotes
Mon–ThuLunch, Dinner — typical two-shift day
FriLunch, Dinner, sometimes Late Night
SatLunch, Dinner, Late Night — busiest day
SunBrunch/Lunch only at most locations

The 7shifts daypart is the source of truth — Danvas reflects whatever is published there.

Related

Shift Reports

Workspace & Tasks

Technical: Scheduling Domain

Daily Line-Up Setup

Use a daypart panel inside the Service Day Workspace

Managing Locations

Setting up and managing multiple restaurant sites

On this page

OverviewWhere schedules come fromViewing Your ScheduleSchedule changesShift TasksShifts Per DayRelated