WS
Weeksolved

What's new

The latest changes, in plain words. Weeksolved ships continuously, so this page keeps the recent few and lets the rest go. Items marked Asked for by a tester came from somebody using it and telling us.

This week

The smaller things from the same list. A post left unheld is now marked at its hour on the day sheet, the same mark a short minimum gets, and pressing it opens that post’s fix. A rule that needs a licensed person on site names the per diem who could cover the hour. The overnight guess — Did you mean 5 PM? with a one-press fix and It’s right as entered — now sits on opening hours, holiday hours and the setup questions, not only the shift editor. Each shift’s own meal length reaches every hour and cost preview. When someone calls out, the slot says it was released from a lock, whoever covers it starts unlocked, the callout line travels with the cover, and the cover sheet offers the same swap the week’s fixes offer — never the person who called out. Every button that does something is drawn as a button; only Close and Cancel stay quiet. Check copy names the meal window and the latest start the rule allows, and the settings section is now Business & rules. Taking a screenshot or turning the phone no longer throws a scrolled dialog back to the top. A short hourly minimum now reads in one plain sentence — Tuesday 2–3 PM has 2 on the floor; the minimum is 3. And the city scheduling-ordinance checks have moved behind an Early features switch under Settings, off unless you turn it on; a board already using them keeps them. When someone calls out on a posted week, the cover sheet now asks first — Ask Amara writes a question, not a schedule change, and the slot remembers who you asked and when; Said yes — put them on places them and sends a thank-you instead. Both messages are yours to reword under Settings → Messages.

Only your coverage needs bring people in. A post left unheld or an hour that dips under your minimum is now something worth a look — the hour is marked on the day sheet and one press adds somebody for that hour if you want them — rather than a reason for the drafter to pull in one more person on its own. That pass is gone. What is red is what breaks a rule you set for this board, or a coverage row left short. Project time is handed out only when there is nobody left to cover with, it never goes to the same need a per diem was brought in for, and it is labelled Project time wherever it appears. A pharmacist whose clerk work is switched off can no longer be drafted onto a clerk-only row for any reason. A row can now have a floor of zero, for the shifts that exist only as an outlet for spare people.

Per diem is decided person by person. The board-wide per-diem switch is gone. Each on-call person carries their own setting — Call them in automatically when nobody else can cover, or Ask me first — and everyone starts on Ask me first. When a row cannot be filled from your core staff, the open item names the per diem who could take it, and the fix is one press. The sentence that used to say hour, rest or consecutive-day limits blocked every candidate is replaced by the true reasons, person by person.

Someone called out. Asked for by you. Home now carries Someone called out whenever today or tomorrow has a shift that has not started. Pick the person, press once, and the shift is released and the same cover sheet the app uses for requests opens — who could take it and what each would break, the per diem who could cover it named first, offer it, swap, or leave it open. On a posted week nothing is placed without your press, and any change you send carries a line reminding you that changes after posting can carry notice or pay obligations in some cities and for larger employers. The count of callouts on a person’s card is gone: each entry lives only on the shift it happened to, and nothing that drafts or ranks reads it.

A slip in the setup is named before its symptoms. One start time typed as 9:15 PM instead of 9:15 AM used to produce a dozen red items and none of them pointed at the cause. The shift editor now says Runs overnight — 20 h 30 min. Did you mean 9:15 AM? with a one-press fix (or one that says it is right as entered, for a shift that really does run overnight), the Shifts list says overnight beside the times, and on Home the one thing to fix leads with the likely slip and says how many other items correcting it clears — a number the app works out by trying the correction, not by guessing. Shifts also carry length presses (6, 8, 10 or 12 paid hours) and their own unpaid meal (the board default, 45 or 60 minutes), printed wherever the shift appears when it is anything but the default.

Setup on a phone, fixed where it pinched. Leaving the setup questions asks on its own row instead of inside the button bar. The team step gives every person two rows with Type, Min and Max labelled and readable. Remove is a button, the guessed shift preference is a caption, and picking an option no longer throws the screen back to the top — nor does taking a screenshot. The holiday question offers the holiday itself and all three days. New people start from their type: full-time exactly 40, part-time 20–40, per diem, temp and seasonal 0–40, training 20–40. Closing for lunch can be set for only the days you pick, for 30, 45 or 60 minutes inside the window, in setup as well as under Rules. The Week screen can discard its own draft, the day sheet and Add someone sit at the top of the day as buttons, and a cross-month week no longer wraps its date range.

The week screen, the tiles and the rest of Home now speak one language. On a phone the Week screen opens with the date range and its arrows, the state of the week, the four figures, and one line of verdict before the seven days — seven plain rows you can read at arm’s length, each with its hours, how many are on, and a mark if that day carries something to fix. The week’s tools sit under one menu instead of a second row of buttons. On a desktop the grid is one surface with hairlines rather than boxes, and each shift now shows its meal time in the cell, because that is what a meal-period warning is about. Home’s four tiles line up at one size, and the rest of the page — the next six weeks, handing the week out, replies from your team, saved reports — is grouped under plain headings as rows a thumb can hit. Posting a week with something open now uses the same sheet as everything else in the app. Nothing on either screen is set smaller than eleven pixels any more.

Things move the way you expect. Buttons press. Screens arrive rather than snap. Sheets slide up on a phone and in from the side on a desktop. When you fix the one thing on Home, the card gives way to the next one without the buttons under it moving, and when a week goes up the seven bars fill in left to right. Every movement is short — nothing longer than a quarter of a second — and if your phone or computer is set to reduce motion, or you switch it off under your avatar → Appearance → Motion, the states still change and nothing moves. A fix that changed the week now offers Undo right in the message that names the change.

Home is the week. Home now opens on the week itself — seven bars, one per day, whose height is that day’s opening hours and whose fill is how much of the cover you asked for is met, with a mark at the hour anything falls short. A drafted week is hatched; a posted one is solid, so the state reads from across the counter. Above it, one line says where the week stands and how many things need you; below it, the one thing to fix in the same words the checks use, then the press that posts. Everything that used to stack above the schedule — notices, tips, counts — is one tap away under that line, and nothing marked to fix or worth a look is ever reduced to a count. Posting a week with something still open goes through one screen that shows what is open and what was checked, above the button; a clean week posts in one press.

One way to each place. On a phone the tabs are Home, Week, Requests, Team and Tools; Tools holds the pages that are not this week’s schedule, in the same groups and the same order as the sidebar on a desktop. The menu button, the second “More” and the extra search boxes are gone. Your account, Settings, Help and Report a problem live behind the avatar on a phone and at the foot of the sidebar on a desktop — one door each, and every page is listed for everyone, so there is no longer a switch that hides some of them. Everything reachable before is still reachable. Also fixed: the setup title no longer wraps one word per line on a phone, the progress bar counts the steps its label counts, the week’s date range sits on one line, and descriptions under card titles wrap properly on narrow screens.

Name the job right where you add the people. Asked for by you. On the setup screen where you type your team’s names, each column now has the job name in an editable box directly above it, pre-filled with our suggestion, so you can rename it on the spot instead of scrolling back. Two more asks landed with it: a holiday can now count as busier itself (Settings → Holidays: “The holiday itself” or “The holiday and the days either side”), and a business that gives longer lunches can set the unpaid meal period to 45 or 60 minutes under Meals and rest breaks — paid hours and the second-meal timing follow, and it never drops below your state's break rules.

A guarantee the shifts cannot reach is explained once, with the arithmetic. When a person’s guaranteed hours cannot be met by any whole number of the shifts you run — a 36-hour guarantee, a 40-hour cap and 12½-hour shifts that pay 11½ once the unpaid meal periods come out, so three shifts land at 34½ and four at 46 — the checks panel used to say “under guaranteed hours” for every such person, every week, with no way to clear it. It now says it once per contract, names how many people share that contract, shows the numbers, says what the draft did about it, and points at the setting the paid hours depend on. It does not tell you what to do about your contract. Weeksolved is scheduling software; it is not a law firm and does not give legal advice.

An empty floor at one location is no longer hidden by a staffed one. With several locations, the check for “nobody on the floor” and the pass that fills such a hole were asking about the whole business at once, so one busy location answered for an empty one. Each location is now asked about on its own — and only on days that location has something scheduled, so a place with nothing on the sheet that day is not treated as a hole to fill. One location behaves exactly as before.

The report builder no longer shows a cost or an overtime column. Those two columns priced a week differently from the board’s own budget figure — per shift, with no weekly or seventh-day line — so the same week could show one number on the board and a lower one in a report. Rather than show a figure that can disagree with itself, the report builder now shows hours only; the budget chip on the board keeps the correct cost. Hours reports also stay inside the dates you ask for: a 1st-to-15th run reports the 1st to the 15th, not every week that touches it.

California is the starting point, and shifts have one length. A new board starts on California rules rather than federal ones, and meal waivers start switched on where California allows them, so the first draft is judged by the rules you actually work under. Open-ended shifts — a start or end that moved inside a range — are gone: every shift runs the length you set, and any saved shift that was open-ended now runs its usual length. They caused more corrections than they saved. Wording that said “compliant” or “compliance” now says what the app does — it checks hours against your rules — not what it certifies.

Plainer wording about what leaves your device, and a switch for the one thing that does. Three sentences in the app were out of date and read better than the truth. Weeksolved needs an account — there is no signed-out mode, and the privacy card said there was. The page contacts two Google servers, not one: www.gstatic.com serves the sign-in code and Firebase holds your board, and the live “What leaves this device” panel now names both by reading the page you are actually running. And when the app hits an error it files a crash report without asking — the error, the screen you were on, your browser and screen size, your state, and how many people, roles and shifts are on the board, never a name and never any part of a schedule. That is now said where it belongs, and Settings → Automatic crash reports switches it off, in which case nothing is sent at all. Nothing about what the app does changed; what changed is that it now describes itself accurately.

Several places to schedule, asked for in setup. Asked for by you. Where do you operate? now asks how many places you schedule and lets you name them, before the hours question — because hours are the first thing that differs between sites. Each place gets its own opening hours and its own coverage; a person’s profile says where they can work, and leaving it blank means anywhere, which is how a floater or a provider shared across sites is handled. One place is one press and the screen looks as it always did. Setup can add locations and never removes one, so answering “just the one” over a board with five leaves all five alone.

“Is this the same business?” Asked for by you. Running the setup questions again over a board that already has people on it now asks first whether this is the same business or a different one. Keeping it is the preselected answer and behaves exactly as before. Choosing a different business empties the form as well as the board, so the old roster is not sitting in the boxes waiting to be typed over, and the last screen counts out what is going — people, roles, shifts, coverage, posts, groups, locations and every drafted week — before anything happens. Your account, your sign-in and how the app looks come through untouched.

More than four roles, and departments explained. Asked for by you. The roles screen in setup takes up to twelve and has an Add another role button, so a kitchen with a GM, two manager grades, crew and trainees fits without finishing setup first. If you run departments, they are roles: nobody is ever scheduled into a role they do not hold, so departments keep to themselves without anything to manage.

Fewer presses to put someone back, or take them off. Asked for by you. A person who has been set aside now has Remove on their row rather than only inside their profile, and a whole list can be cleared in one dialog once it is long enough to be a chore. The Send beside “problem reports ready to go out” in the More panel now opens the report — it was doing nothing.

Choose the days extra hours may land on. Suggested by you. Settings → Hours, guarantees and patterns has a row of day boxes that decide where hours owed on a guarantee may go: untick the weekend and hours owed are made up Monday to Friday, so a Saturday you want kept lean stays lean. If the days you ticked cannot take the hours, the drafter uses the next open day and the week’s checks say so, naming the day. Every day stays ticked unless you change it, so existing boards draft exactly as they did.

Google sign-in from the Home Screen app. Asked for by you. Weeksolved added to an iPhone’s Home Screen offers Continue with Google alongside email and password. Google’s answer comes back through weeksolved.com itself, so the installed app completes the exchange inside its own storage. Google opens in a sheet and brings you back; if a particular iPhone cannot, the screen says so and email and password still work.

A person’s name opens their profile. Asked for by you. On the Week grid and the day sheet a name is a link to that person’s profile — availability, hours, roles — so checking why somebody keeps landing on a particular day is one press instead of a trip to the Team page. Every shift name on the day sheet opens that shift the same way.

PDFs that hold everything you asked for. Asked for by you. A multi-week PDF is one page per week, day sheets are one page per day for every day you picked, and the file is named for what is in it. The individual printed schedules and every week or day page carry the holiday’s name and its hours in the heading, and every page gets its footer. On a phone or a Home Screen install a PDF opens in a new tab instead of on top of the app, so closing it brings you back where you were; a desktop downloads it. Page counts, sheet counts, the header bytes and the new-tab path are all under test.

A holiday is its own kind of day. Asked for by you. Week and day views show the holiday’s own hours (or “closed”), and a holiday sits out the busy/quiet checks. A holiday can say which posts must be staffed that day — the same posts as usual, or only the ones you tick. Holidays you enter yourself repeat every year unless you say otherwise; once one has passed, the page offers to roll it forward, and the standard ones move to their proper date on their own. The draw is the answer to who works that holiday: the people it picks go on locked at the holiday’s own hours, nobody else is added, and a redraft leaves it alone. The fair split uses chance to break a tie between people with the same load, everybody who can take a holiday gets a first before anyone gets a second, a “must work it” note wins, and “Worked out again” genuinely re-draws. If somebody who was drawn cannot work it — approved leave, an expired licence, an hour cap — you are told who and why, and the place is left open for you to fill. Ranking is by drag or arrows, in the app and in the poll file.

Required cover comes first. Asked for by you. Required coverage is filled before anybody is topped up to guaranteed hours, and days with the fewest people able to cover them are filled first — so the one person who can cover a Saturday “exactly 1” is kept for it, and the top-up pass looks across the whole week for an open required slot before it deepens anything. An “at least” row is a floor, not a licence to swallow the day: while a day still has an opening somebody could work, they take it before any already-satisfied shift gets deeper. When nobody left can work the open shift, hours owed are made up elsewhere rather than spent on a slot nobody could fill. A shift the day does not ask for is not used to deepen that day — a shift the day asks for outranks one it does not. And when a part-timer comes up short of hours, the reason you are shown is the one that actually applies.

Save & next. Asked for by you. Every editing dialog that comes in a list — holidays, shifts, people, posts, coverage rows — has Save & next, so working down a list is one press per item instead of save, close, find, open.

Sometimes the answer is to take a shift off. Asked for by you. When a week has too much on it, the first thing offered is taking a shift off — the one that lands closest to the contract, rehearsed before it happens so you see what follows — then shortening one, then handing one to somebody with room. Being over an hour cap, over the overtime line or past a days-in-a-row limit offers removal too. An exact contract holds when shifts are placed as well, so a holiday week stays inside it.

A paid holiday counts toward guaranteed hours. Asked for by you. Hours paid for a holiday count toward a guarantee or a fixed contract, and the week shows hours worked and hours paid side by side. A holiday somebody is rostered to WORK counts once: those hours are already in the week, and the holiday premium is money on top. An hour cap is unchanged either way, because a cap is about hours on the floor. If your guarantee is a promise of hours actually worked, there is a switch for that under Settings → Hours, guarantees and patterns.

A day only runs the shifts you asked it to run. Asked for by you. A shift missing from a day’s Coverage needs means the business does not run it that day, so a Saturday whose Coverage needs say Weekend RPH, exactly 1 runs exactly that. Two exceptions, because they are you saying it out loud: a shift marked prefer this one for extra hours, and the named shift on the Rules page, may still be used anywhere. And when somebody cannot reach their guaranteed hours inside the shifts their days actually run, you are told they are short and why — no shift is invented to close the gap.

Posts stay where you put them. Asked for by you. Two post settings hold wherever they are set: All day — one post per person keeps linked posts from swapping at midday, and one person holds this all day means one holder, all day. “Rotate with” is now Swap places with, part-way through the day, which is what it does; the setting that gives people variety across the week is Numbered posts → Share one rotation.

The app fetches almost nothing from anyone. The typefaces and the library that writes PDFs are carried inside the page. That matters most for PDF export, which now holds up on a network that blocks a public CDN — a corporate proxy, a content blocker, hotel wi-fi. Text arrives in its own font on the first paint, and nobody outside is told that you opened the app. One request is left, to the account service itself, and Settings → What leaves this device reads that off the running page rather than taking our word for it.

Holidays: say what actually runs. Asked for by you. Holiday cover is the eighth day on Coverage needs: under Sunday to Saturday there is a Holidays block, edited by the same dialog as every other day, with the same “exactly this many” meaning, and one press turns it on. The cover figure you enter on the holiday itself drives the draft and caps it, the way a holiday’s own how you run it beats the general setting. Every holiday added from the standard list arrives with a setting of its own — Christmas closed, Veterans Day normal — and a holiday’s own setting beats the general one; the general setting tells you how far it reaches (“used by 3 of 11”) and offers to clear the individual ones so your choice takes. Holiday hours are time pickers rather than typed text, one button sets the same hours on every holiday at once, and Minimum cover only means a holiday gets exactly what you asked for and nobody else — not for hours owed, and not to fill the floor. The week’s checks name what you got either way: a holiday drafted like an ordinary weekday says so, and one carrying more people than you asked for explains that the floor still has to be covered and points at holiday hours.

Leave reasons stay private. They stay off every shared schedule and export, and a decision about someone’s leave is sent to that person alone.

Nothing goes out in half, and deletes clean up after themselves. A week too long to send by email or text holds rather than sending half, and says what to do instead. Deleting a role clears every post, shift, ratio rule, pattern and holiday that pointed at it, and deleting a shift releases the posts pinned to it. And moving your week boundary keeps day-sheet notes, approved overtime, staff claims and the week’s pattern.

A new shift is eight hours plus the meal. Asked for by you. Type 8:00 and the shift ends at 16:30 — eight paid hours plus the unpaid meal, set to your state’s rule. Move the start and the end follows it; type your own end and it stops following, so a deliberate twelve-hour shift stays twelve hours.

Fewer places to look. Asked for by you. Six “Set up” menu rows are now one Schedule setup with tabs — shifts and roles, coverage needs, who gets first pick, posts on the floor. Time away joins Requests as a tab, so time off has one front door instead of five. Business & law and Scheduling rules are a statement of what is in force, and Settings owns the editing, so the two say the same thing. Every old link, fix button and search result still lands exactly where it did.

Busy stretches, and a menu that makes sense. Asked for by you. You can say when a day is busy, not just that it is: Coverage needs → a day → “Set a busy stretch”. Like the busy-day label it decides where the people you already have go, rather than adding anybody, so hours owed land on a shift that covers the rush, and the checks tell you when the rush is the thinnest part of the day. Alongside it, a full pass over the menus: Settings is seven cards named for what they hold, each group named for one thing instead of two, and on the phone Settings and the day sheet sit at the top of the menu.

Search actually searches. Asked for by you. Settings holds 89 rows, and search reads across every one of them, whichever group you are on — “pay period” finds the pay period rows wherever they live. A row can also be found by the name of the card it sits in, so “business name” finds it. Results appear from the first character, narrow as you type, and go straight there when you press one.

Exports, checked at real size. Asked for by you. Tested against 150 people and twelve drafted weeks — 6,672 shifts. A long table repeats its column headings on every page and breaks between rows, on every printed schedule and day sheet. And a custom report leaves as a proper Excel workbook — real number cells so hours add up, a frozen bold heading, your subtotals and total, and a second sheet recording what the report covered and when it was run. CSV is still there if you want it.

Coverage needs opens on what the week you are looking at is drafted from. Asked for by you. If a week is on a pattern, the page opens on that pattern’s set, so a role you add, remove or change on a shift is written where Generate reads it. Edit a different set deliberately and the page says so at the top, with one press to switch back. Alongside it: when every row on a shift is exact, that is the whole shift — nobody is added beside them to make up somebody else’s hours.

Earlier

September 7, 2026

September 6, 2026

September 3, 2026

September 2, 2026

September 1, 2026

August 31, 2026

August 30, 2026