Off Prompt

AI Tools for Small Business

Operations

Using AI to build a simple weekly staff schedule from your availability constraints and job requirements

How to make a staff roster for your small business without scheduling software — a repeatable AI workflow that runs in under 30 minutes.

Mara Chen 10 min read
Using AI to build a simple weekly staff schedule from your availability constraints and job requirements

Manual scheduling eats 3–5 hours a week for most small business owners — time spent cross-referencing availability texts, fixing overlaps, and realizing someone's double-booked only after the roster's already shared. This post walks you through how to make a staff roster for your small business without scheduling software, using ChatGPT or Claude you likely already pay for. Done right, this runs in under 30 minutes, including review — and the setup investment is a one-time 20 minutes to build your constraints block.

What you need before you start

ChatGPT{:target="_blank"} (GPT-4o) or Claude{:target="_blank"} (3.7 Sonnet) — both handle structured table output reliably as of early 2026, which means the schedule comes back as a clean grid you can copy into a Google Sheet or print. The free tier of ChatGPT runs GPT-4o with usage limits; Claude's free tier runs Sonnet with daily limits. Either covers this use case. If you're already on a paid plan ($20/month for ChatGPT Plus or Claude Pro as of March 2026), there are no additional costs.

Time required: 20 minutes to build your constraints block the first time; 20–30 minutes total each subsequent week, including AI generation and human review.

Skill level: No technical background needed. You need to be able to paste text into a chat window and edit a table. If you can use WhatsApp, you can do this.


What AI Actually Needs to Build Your Free Staff Schedule

Before you open a chat window, collect four things. Missing any one of them produces a schedule that's technically complete but practically useless.

1. Shift structure. List every shift you run — open time, close time, and the minimum number of staff required. Be specific: "Morning shift 7am–2pm, requires 2 staff. Afternoon shift 1pm–7pm, requires 2 staff. Close 6pm–10pm, requires 1 staff." Include any overlap you need for handovers.

2. Staff availability. For each person, list the days and time windows they're available. The cleaner the format, the better the output. A simple table works well — employee name in one column, available days and hours in the other. If someone has a fixed day off, state it explicitly.

3. Business rules. These are your operational constraints: who holds keys, minimum rest between shifts, maximum weekly hours per person, any two staff who need to be rostered together for training reasons, and any other rule that isn't obvious from the availability data. Write these as plain sentences — "At least one keyholder must be on every shift. Keyholders are Marcus and Priya."

4. Any fixed commitments this week. Public holidays, confirmed leave, a known busy period on Saturday. These are week-specific inputs that override the general constraints.

The AI cannot infer what it isn't told. Vague inputs produce vague schedules.


How to Create an Employee Schedule with AI: The Prompt Template

Structure the prompt so AI gets all four inputs in one block. Here's a template you can adapt for a café, retail store, or small trade team:

Scheduling prompt template

I need a weekly staff schedule for [business type], Monday to Sunday. Please build a shift grid and flag any constraint violations.

Shift structure: [Paste your shift times and minimum staffing requirements here]

Staff availability:

Name Available Days Available Hours
[Name 1] [Days] [Hours]
[Name 2] [Days] [Hours]
[Name 3] [Days] [Hours]

Business rules:

  • [Rule 1 — e.g., "At least one keyholder on every shift. Keyholders: Marcus, Priya."]
  • [Rule 2 — e.g., "No one works more than 5 shifts per week."]
  • [Rule 3 — e.g., "Minimum 10 hours between end of one shift and start of next."]

This week's fixed commitments:

  • [e.g., "Marcus unavailable Wednesday — confirmed leave."]
  • [e.g., "Saturday is a long weekend — expect high volume, staff to maximum."]

Output requested:

  1. A Monday–Sunday grid showing who covers each shift, formatted as a markdown table.
  2. Total scheduled hours per person this week.
  3. A plain-English summary of any gaps, constraint violations, or coverage risks.
  4. Flag if anyone is scheduled for less than 10 hours between shifts.
  5. Flag any shift where no keyholder is present.

After you send this, expect a response with a filled shift table, a totals row, and a numbered list of flags. If the AI returns prose instead of a table, add this to your prompt: "Format the schedule as a markdown table with shifts as rows and days as columns."

The guard-rail instructions in points 4 and 5 matter. Without them, the AI will build a schedule that looks complete but may contain violations it doesn't surface. Telling it what to check makes it an active reviewer, not just a grid-filler.


Running the Schedule: Step by Step

  1. Open a new chat in ChatGPT or Claude.
  2. Paste your completed prompt template with all four input sections filled in.
  3. Send and wait — the response typically takes 15–30 seconds for a team of 4–8 people.
  4. Read the flags section first, not the grid. The flags tell you where the schedule is weak before you spend time reviewing rows.
  5. Copy the markdown table by pasting it into a Google Doc first — Google Docs renders markdown tables natively. Then copy the rendered table from the Doc into a Google Sheet or print directly from the Doc.
  6. If you need a revision — for example, the AI has scheduled someone on a day they marked unavailable — reply in the same chat: "Riya cannot work Tuesday. Rebuild Tuesday's shifts without her and tell me if this creates a coverage gap." The AI holds context within the conversation, so you don't need to re-paste everything.
  7. Print or share the final grid. Most owners photograph it, share via WhatsApp, or paste into a team Slack channel.

For a café with 6 staff across two daily shifts, this typically produces a usable first draft on the first pass. The more precisely you write your constraints, the fewer revision rounds you need.


Turning the AI Draft into a Real Roster

The AI draft is a first draft. Before it goes to staff, check three things it cannot do for you.

Fairness over time. AI optimises for this week's constraints, not for whether the same person has worked every Sunday for six weeks. You know that. The AI doesn't, unless you tell it. If shift equity matters in your team — and in hospitality and retail it usually does — scan the hours column and flag anyone who looks consistently over- or under-rostered.

Interpersonal context. Two staff members who have friction, a new hire who needs to shadow a senior person, someone going through a personal situation — none of this is in your constraints block, and it shouldn't be in a chat window. This is a human call.

Legal compliance. Award wages, penalty rates for weekends and public holidays, maximum weekly hours under your local employment law — AI will not reliably calculate these. The Fair Work Commission{:target="_blank"} (Australia), ACAS (UK), and your state labor board (US) set the rules. Check compliance manually or use your payroll tool. This is the hardest limitation of this workflow, and it's non-negotiable.


Making This a 20-Minute Weekly Routine

The reason most AI workflows fail in small businesses is that they require setup from scratch each week. Here's what to save so that doesn't happen.

Save your constraints block as a plain text file — in Notes, Google Docs, or Notion. This is everything except "this week's fixed commitments": your shift structure, availability table, and business rules. It changes rarely. When it does change (someone's availability shifts, a new person joins), update it once and it's current forever.

Save the prompt template separately, with the structure and output instructions. Each week, open the template, paste in your current constraints block, add that week's fixed commitments (three to five lines at most), and send.

Total weekly effort with saved assets: roughly 10 minutes to update and send the prompt, 10–15 minutes to review and adjust the draft. That's the 3–5 hour problem compressed to under 30 minutes — not because the AI is magic, but because the preparation work is done once.


What AI Scheduling Can't Do

Three hard limits worth stating plainly:

Wage and penalty rate calculations are unreliable from AI. It may attempt them if you ask, but the output should not be used for payroll without verification. Use a payroll tool like Deputy{:target="_blank"} or KeyPay{:target="_blank"} for compliance-sensitive calculations — dedicated scheduling tools like Deputy typically charge in the $2–$6 per user per month range; check their pricing page{:target="_blank"} for current tiers.

Long-run fairness tracking requires memory the AI doesn't have week to week. If you want to track cumulative hours or shift equity over a month or quarter, keep a simple running total in a spreadsheet. This takes five minutes to update after each schedule is finalized.

Judgment calls about people stay with you. AI builds against the constraints you give it. It cannot weigh that someone is burning out, that two people are in a conflict, or that a reliable person deserves the better shift. That's management, not scheduling — and it belongs with you.


When Something Goes Wrong

The schedule ignores an availability constraint you stated. Root cause: the availability table was formatted inconsistently or the constraint was buried in prose. Fix: restate the constraint as a bullet point in the business rules section, not embedded in the availability table. Example: "Jess cannot work before 10am on any day — this is a hard constraint."

The AI produces a schedule with a coverage gap and no flag. Root cause: you didn't include an explicit guard-rail instruction for that gap type. Fix: add a specific instruction to your prompt template — "Flag any shift where staffing falls below the minimum required" — and re-run.

The markdown table doesn't paste cleanly into Google Sheets. Root cause: Google Sheets interprets the pipe characters as text, not table structure. Fix: paste into Google Docs first, which renders the markdown table natively, then copy the rendered table into Sheets.


What to Do Next

Run the workflow once with a real upcoming week before you try to optimize it. The first pass reveals which constraints you forgot to include — fix those, save the updated constraints block, and the second week runs faster.

Once you're comfortable with weekly scheduling, the same prompt structure works for more complex problems: how to use AI to manage shift swaps and last-minute coverage changes, or how to build an AI-assisted onboarding checklist for new hires.


FAQ

Can I use the free version of ChatGPT to build a staff schedule? Yes, as of early 2026 the free tier of ChatGPT runs GPT-4o with session-based usage limits. For a single weekly scheduling conversation covering a team of 4–8 people, the free tier is sufficient in most sessions. If you hit a limit mid-conversation, start a new session and paste your constraints block again to continue. ChatGPT Plus at $20/month removes those limits if you're scheduling multiple teams or running several sessions back to back.

Is this faster than using dedicated scheduling software like Deputy or 7shifts? For a team under 10 people, the honest answer is: for the drafting step, yes. 7shifts{:target="_blank"} and Deputy carry real advantages in compliance features, time-clock integration, and staff-facing apps — but they charge $2–$6 per user per month (pricing checked March 2026), which adds up to $240–$720 per year for a team of 10. If you don't need those features, the AI-in-browser workflow costs nothing extra on a subscription you likely already have.

What if my staff availability changes frequently? Update your availability table in your saved constraints block when it changes, then use the updated block the next time you run the schedule. The trade-off is that AI has no memory between sessions — it won't notice that someone's availability shifted unless you update the file and paste the new version. This is a 2-minute update, not a 20-minute rebuild.

Can AI handle split shifts or variable-length shifts? Yes, if you define them precisely. Include the exact start and end times for each shift variant and label them clearly — "Split shift: 8am–12pm and 4pm–7pm." The AI will schedule against those definitions. What it won't do is invent split shifts on its own or flag whether split shifts are legal under your award — that's the human compliance check that stays with you.

How do I handle award wage compliance if I'm in Australia or the UK? You don't handle it through AI. AI can flag scheduling patterns — someone rostered for a Sunday, or a shift that runs past midnight — but it cannot reliably calculate penalty rates, loadings, or overtime thresholds under the Fair Work Act{:target="_blank"} or UK Working Time Regulations. Use your payroll software for those calculations, and treat the AI schedule as an input to that process, not a replacement for it.

Was this useful? ·