Product Documentation
Complete reference for every feature and setting in Schedaddle.
Overview
Schedaddle is a staff scheduling tool for shift-based businesses. It replaces spreadsheets with a structured weekly planner, a visual day-level role assignment grid, automated draft generation, and one-click publishing that notifies your team by email.
The core workflow is: Set up your team → Configure availability → Generate a draft → Review and adjust → Publish. Most GMs complete their first schedule in under 20 minutes.
Weekly Schedule
Assign shifts across a 7-day grid with labor budget tracking.
Day View
Paint role assignments across 30-minute blocks for each employee.
Auto-Generate Draft
AI-powered schedule generation from availability and rules.
Publish & Notify
Email shifts to your team with calendar invites attached.
Managing Your Team
Adding employees
Go to Team in the top navigation. Click Add Employee and fill in name, role, employment type, and email. The email address is used for publishing — employees without an email won't receive notifications.
Roles
GM (General Manager) and ASM (Assistant Store Manager) are manager-level roles. The schedule enforces manager coverage — at least one GM or ASM must be on shift at all times during operating hours. Part-Time employees are non-management.
Availability
Click Set Availability on any employee to define their recurring weekly availability. Add time windows for each day they're available. Days with no windows = unavailable that day. The draft generator respects these windows and flags any violations in the sidebar.
Use Temporary Unavailability to block out date ranges (holidays, training periods) without changing their permanent availability.
Qualifications
Employees can hold qualifications (e.g. Team Lead) that unlock restricted roles. Without the qualification, that role cannot be painted on their blocks in the Day View and the draft generator won't assign it.
New hire flag
Mark employees as new hires to track their training hours. When a new hire accumulates enough Training-role hours across published schedules (configurable threshold), they are automatically graduated and the flag is removed on the next publish.
Exclude from auto-schedule
Toggle this on for employees who should never be automatically scheduled — for example, on-call staff or employees whose shifts are arranged separately. They remain in the system and can be manually added to any day.
Bulk CSV import
Download the sample CSV template, fill in your team, and upload it from the Team page. The import previews all rows and highlights errors before committing.
Weekly Schedule
The weekly schedule grid shows one week (Mon–Sun) with one row per employee. Click any cell to assign a shift using a template or a custom time. Click a shift pill to change or remove it.
Week navigation
Use the ← → arrows in the header to move between weeks. Click any date column header to jump to the Day View for that date.
Approved days
Days approved in the Day View are shown with a lock icon. Approved days are excluded from draft generation — the generator only fills unlocked days. You can unlock a day to make changes, which will prompt re-approval.
Sidebar panels
Labor Budget — Enter your weekly forecast and compare it to scheduled hours via the budget bars. The tier row shows which labor matrix tier is active.
Shift Templates — Quick-assign templates. Click + Add to create new ones. Hover a template to edit or delete it.
Violations — Hard violations (red) are compliance issues (consecutive days, overtime). Soft violations (amber) are warnings (missed break, availability conflict).
Manager Coverage — Shows any time gaps where no manager is scheduled.
Auto-Generate Draft — Generates a complete week from your rules. Locked days are skipped. If shifts already exist on unlocked days, you'll be asked to confirm replacement.
Day View
The Day View shows a 15-hour grid (08:00–23:00) divided into 30-minute blocks for every scheduled employee. Click or drag across blocks to paint role assignments.
Role palette
Select a role from the left sidebar, then click or drag across any block within an employee's shift. Blocks outside the shift window are locked. Use Erase mode to clear blocks. The ↩ Undo button reverses the last paint gesture.
You can reorder roles in the palette by dragging in Edit mode. Rename roles permanently in Settings → Roles.
Break visualization
Two consecutive Break blocks show as a diagonal split on the second block with a 45m label — indicating the standard 45-minute meal break. This is purely visual; the break validator checks block count against your break settings.
Auto-fill
Click Auto-fill to automatically paint roles for all employees on the current day. The algorithm runs three passes: Opening/Closing assignment → Lobby/Floor coverage → Hub/Counter and specialised roles. It respects slot limits set in Auto-Fill Rules.
Approve day
Once the day is finalised, click Approve to lock it. Approved days are excluded from the next draft run. If the weekly schedule is changed after approval, the day is flagged for re-approval.
Draft Generation
Click Auto-Generate Draft in the weekly schedule sidebar to generate a full week in one step. The algorithm runs 4 phases:
- Manager shifts — Assigns GM/ASM openers and closers first, using equity rotation to distribute early/late shifts fairly.
- Full-time staff — Fills FT employees across the week respecting their hour budget and availability.
- Part-time closers — Assigns PT employees to closing shifts.
- Part-time remaining — Fills remaining PT hours to meet the week's coverage target.
The generator respects: employee availability windows, temporary unavailability, qualifications, the exclude from auto-schedule flag, day approvals, and all Draft Rules settings.
Equity rotation — The generator tracks each employee's history of opening and closing shifts over the last 4 weeks. Employees with fewer recent opens/closes are prioritised, so no one always gets the early shift.
Publishing & Notifications
Click Publish in the weekly schedule header to mark the week as published and notify your team.
What publishing does
- Marks the week as published in the database
- Sends a personalised email to every employee with an email address (their shifts only)
- Attaches a PDF of the full week schedule and a day-view PDF
- Attaches a .ics calendar file with each employee's shifts (opens in Google Calendar, Outlook, Apple Calendar)
- Syncs all shifts to your connected Google Calendar (if configured)
- Auto-graduates any new hires who have reached the training hours threshold
Draft emails
You can also send a draft email (before publishing) from the ... menu. Draft emails are clearly labelled to avoid confusion.
Re-publishing
Publishing a week that's already published re-sends emails and re-syncs the calendar. Use this if you make changes after the initial publish.
Labor Planning
Staffing model
Controls how the labor budget sidebar calculates targets. Guest/Visitor count maps your weekly visitor forecast to hours via the Labor Matrix. Revenue maps weekly revenue forecast to hours. Fixed target hours skips the forecast input — set target hours directly in the matrix.
Forecast label
The label shown above the forecast input on the schedule page. Defaults to "Weekly Guests" for guest-ratio model, "Weekly Revenue" for revenue model. Customise to match your business language.
Break & Hours Settings
Min break duration
The minimum break length in minutes that satisfies the break requirement. If an employee's shift contains fewer consecutive Break blocks than this threshold, a violation is flagged.
Break trigger hours
The shift length (in hours) above which a break becomes mandatory. A 4-hour shift with a 5-hour trigger will not flag a missing break. A 6-hour shift will.
Meal break excluded
When enabled, meal breaks are not counted in the total working hours calculation for overtime. Useful in markets where unpaid meal breaks are legislated.
Roster days / week
The standard number of working days per week for your store. Used by the draft generator to distribute shifts.
Normal shift hours
The standard shift length. Used to calculate expected weekly hours for full-time employees.
Weekly OT threshold
Hours per week beyond which overtime applies. Shifts exceeding this threshold are flagged as violations in the Violations panel.
Daily OT threshold
Hours per day beyond which daily overtime applies. Flags violations when a single shift exceeds this length.
Salary threshold & currency
If an employee's salary is above this threshold, they may be exempt from overtime provisions in some markets (e.g. Malaysia's Employment Act salary cap). Used for informational flagging only — does not affect calculations.
Shift Templates
Shift templates are named start/end time pairs that appear in the shift assignment dropdown on the weekly schedule grid. They make assigning common shifts fast — click a cell, pick a template, done.
Manager only
When checked, the template only appears for GM and ASM employees, not part-time staff.
Applicable days
Restrict a template to specific days of the week. A "Fri/Sat/Sun Close" template can be hidden from weekday dropdowns to reduce clutter.
Templates are seeded automatically during onboarding based on your opening and closing times. Edit, add, or delete them from the weekly schedule sidebar or Settings → Shift Templates.
Auto-Fill Rules
Opening role ends at
Blocks before this time are painted as Opening during auto-fill. For example, if set to 10:00, all blocks from 08:00–10:00 on an employee's shift are assigned the Opening role.
Closing role starts at
Blocks from this time onward are painted as Closing. Works symmetrically with the opening boundary.
Flex slots
Maximum number of simultaneous Flex role assignments per time block. Once the limit is reached, additional employees in that block are assigned a different role.
Team Lead slots (formerly HubMaster)
Maximum simultaneous Team Lead assignments per block. Only employees with the Team Lead qualification can be assigned this role.
Floor slots (formerly Lobby)
Maximum simultaneous Floor assignments per block.
Draft Rules
Openers required
Minimum number of openers the draft generator must assign per day. If this can't be met with available staff, a warning is shown.
Closers required
Minimum number of closers the draft generator must assign per day.
Full-time max hours
Weekly hour cap for full-time employees. The generator stops assigning shifts to an FT employee once they would exceed this total.
Part-time min hours
Minimum weekly hours the generator tries to reach for each part-time employee.
Part-time max hours
Weekly hour cap for part-time employees.
New hire graduation threshold
Total Training-role hours (across all published weeks) at which a new hire is automatically graduated. Once the threshold is reached on the next publish, their new hire flag is removed automatically.
Peak Coverage Rules
Peak coverage rules let you enforce minimum staffing for high-traffic periods — e.g. Friday evenings, Saturday afternoons.
Days
The days of the week this rule applies to (0 = Sunday, 1 = Monday … 6 = Saturday).
Peak window
The start and end time of the peak period.
Minimum staff
The minimum total number of employees (regardless of role) that must be scheduled during this window. If the generated draft falls short, a violation is flagged.
Peak rules are checked during draft generation and shown in the Violations panel. They are ordered by priority — drag to reorder.
Labor Matrix
The labor matrix maps your weekly forecast metric (guests, revenue, etc.) to target staffing hours. Add tiers to cover your full range of forecast values.
Example for a guest-ratio store:
When you enter your weekly forecast on the schedule page, the matching tier's hours become the budget targets shown on the progress bars. Leave the last tier's max blank to make it an open-ended cap.
Roles
Each store has 8 role codes. You can rename them and change their colour in Settings → Roles. The internal code never changes (so existing role block data stays valid), only the display label updates.
Opening
First shift of the day. Painted automatically by auto-fill before the opening boundary time.
Closing
Last shift of the day. Painted automatically by auto-fill after the closing boundary time.
Floor (Lobby)
General floor coverage role. Slot-limited by the Floor Slots setting.
Counter (Hub)
Counter/till/service role. No slot limit by default.
Team Lead (HubMaster)
Senior role requiring a qualification. Slot-limited by the Team Lead Slots setting.
Flex
Flexible/floater role. Slot-limited by the Flex Slots setting.
Training
Training shift. Hours in Training blocks count toward new hire graduation threshold.
Break
Break period. Two consecutive Break blocks display as a 45-minute meal break visualization.
Violations Panel
The violations panel in the weekly schedule sidebar flags issues in real-time as you build the schedule.
Hard violations (red)
- Weekly overtime — Employee's total scheduled hours exceed the weekly OT threshold.
- Consecutive days — Employee is scheduled more than 6 consecutive days without a rest day.
- Manager coverage gap — A time period exists with no GM or ASM scheduled.
Soft violations (amber)
- Missing break — A shift exceeds the break trigger threshold but contains no Break blocks (or insufficient break duration).
- Availability conflict — An employee is scheduled outside their stated availability window.
- Peak coverage shortfall — The number of scheduled staff during a peak window is below the minimum.
Integrations
Google Calendar
Connect your Google account in Settings → Integrations. Once connected, publishing a week creates or updates calendar events in a dedicated Store — Schedule calendar. Events are named after the employee and include their shift time.
To disconnect, click Disconnect Google Calendar in Settings. This removes the stored refresh token but does not delete existing calendar events.
Email notifications (Resend)
Schedaddle uses Resend to send schedule emails. When configured, each employee with an email address receives:
- A personalised HTML email showing only their shifts
- A PDF of the full weekly schedule (for reference)
- A PDF of the day-view role assignments
- A .ics calendar file with their individual shifts
Configure RESEND_API_KEY and RESEND_FROM in your environment variables to enable email. The integration status badge in Settings shows whether Resend is active.