Recent updates, fixes, and new features. Newest first. Last updated October 5, 2026.
Everything below is also shown inside the app under What's New. Entries are written for the people who use CoverED day to day, so they describe what changed on screen, not how.
October 2026 14 updates
Oct 5Split shifts sit with the physician shifts — A split or custom shift (the orange ✂ chip) now renders in the day’s shift column in start-time order with the regular physician shifts (a 7p–7a split sits between the PM and NOC chips) and always above the APP shifts, on the admin Calendar, the member Calendar and the shared read-only link. It used to sit at the bottom of the cell under the APP line. Nothing about the shift itself changed.
Oct 4Per-diem month numbers win — If a per-diem has both a number on the PRN row for a month and a standing shift target in their roster settings, the month number now wins for that month — in the schedule the generator builds and in the goal it shows. The standing target is only the fallback for months without a number. Regenerate a draft month to refresh its goal.
Oct 4Sort Reports your way — The Reports tab now has the same Sort menu as the Summary: category then name (the default), one flat A–Z list by last name, or just one category. It applies to the shift-count export, the billing export and the Fairness Report, and it is remembered on your device.
Oct 3Must-work days — Admins can pin a person to a day without choosing the shift: open them from the Roster or Team board, switch the availability editor to “Must work”, and tap the days. The generator gives them a shift on each pinned day (it picks which one, every rest rule still applies) and nothing moves it afterwards. A pinned day it cannot honour shows as a rule conflict. Stronger than ✓ Available, which is a preference.
Oct 3Hide APP shifts on the Calendar — Admins can switch the APP layer off on the Calendar to read the physician grid on its own: the APP pill beside Counts on a wide screen, or “Hide APP shifts” under ⋯ More on a phone. Display only — nothing is removed, and the setting is remembered on your device.
Oct 3Your own minimum run length — Settings → Personal preferences now has “Minimum consecutive shifts” and “Minimum consecutive nights”, so you can ask for runs of at least two (or more) instead of one-off shifts. Blank keeps your group’s setting; 0 means no minimum for you. Admins already had these per person in the roster editor.
Oct 2Max shifts in a row, by type — Each person can now cap days, evenings and nights separately, on top of their overall "max in a row" (Settings → Personal preferences, or the admin's roster editor). A shift counts as evening when it starts at 2 PM or later and as night under your group's night rule. Leave a box blank for no extra limit.
Oct 1Set a requested shift total on someone's behalf — On the Team board, open "Shifts requested" and use − / + next to anyone's number. It records the same request they would have set themselves, so extras above their usual count stay bonus-eligible. Changing the number on the roster instead changes their target for that month.
Oct 1Swaps across months no longer skew targets — When two people trade shifts in different months, one shift of target moves with the swap, so nobody reads "one short" in one month and "bonus" in the next. For a swap you made by hand, use Calendar → More → "Record a swap across months" to net it the same way.
Oct 1Pickups that change other people's hours now notify them — If a shift is set to shorten other shifts when it is filled (Settings → Shifts), the people whose hours change get an email and a text with their new times when someone picks it up or you fill it by hand, and the admin gets a summary.
Oct 1Trading a shift: pick the person first — Offer a Trade now starts with who could take your shift (asked to work that day, free, or a same-day swap), then shows only that person's shifts, each marked ✓ or ⚠ with the exact rest rule or conflict. The same check runs on accept, so a ✓ never bounces later. From the Team board you go straight to which of yours to give.
Oct 1Pick up an open shift from My Schedule — An open shift on your My Schedule calendar reads "OPEN · tap to pick up". Tapping it opens that day with a Pick up button; if you can't take it (already working, too few hours off, a turnaround) the reason prints instead. Shift hours now show on the calendar cells and the list below.
Oct 1Team board: Find cover for one of your shifts — Pick one of your upcoming shifts and the board narrows to the people who could actually take it — eligible for the shift, working that site, free that day, not requested off, and clear of the rest rules. ★ means they asked to work that day. Show everyone brings the full board back with each person's reason.
Oct 1Admin: Best fits instead of a score — When you assign a shift by hand, the suggestions no longer carry a 50–99 score. Each person shows plain facts — asked for the day, shifts owed, how many they have this month, rotation direction — and anyone the rest rules would stop sinks to the bottom with the rule named.
September 2026 39 updates
Sep 30Joining through the group link: find yourself first — When someone signs up through your group link and their email is not on a roster row, they now see the unclaimed spots and tap their own name, which links their login to the row you already set up (you get a note). Only if they are not listed do they add themselves, with their name and role. No more duplicate rows.
Sep 30Generate builds the whole scheduling period — In a group that schedules by quarter (Settings → Rules & Targets → Scheduling period), Generate and Regen now build every month of the period in one run — the button says which months. Each month is scheduled with the earlier months of the period in view, so shifts owed and the shift mix balance out across the whole period, not month by month.
Sep 30Overview, Roster and Reports slimmed down — The Overview opens on your team cards: the deadline and publish state are one line of chips, and Generate lives on the Calendar (with "Fill open shifts only" under ⋯ More). Roster invite tools sit behind one Invites button. Reports and the Equity report have one-row headers.
Sep 30Rest after a 24-hour shift, enforced everywhere — Picking up, taking or trading into a shift on a rest day after your own 24-hour shift is now refused, with the reason shown on the Open tab row.
Sep 30Phone: multi-site calendar, Team board, Reports — On a phone the all-sites calendar shows one line per site with filled / total; tap it to open that site. Team board columns keep one width in every month. Reports and Billing keep the name in view while you scroll sideways, and the Fairness report no longer scrolls sideways.
Sep 30A simpler Calendar toolbar — The admin Calendar header is one row: view and highlight menus, Regen, Publish and a ⋯ More menu (check rules, export PDF, group message, split shifts, clear). Shift counts fold away with the Counts button. Buttons across the app now share one size.
Sep 29A cleaner phone layout — On a phone: Export PDF and Add to Calendar now sit inside the month header, Sort & filter is one button above each list, the Calendar toolbar and Roster buttons fit on one line, and Settings tabs swipe sideways. On the Team board the APP rows no longer show the schedule through the names.
Sep 29Requests show only the sites you work — On the Availability screen, a shift that runs only at a site you are not set to work is no longer listed. Admins set this per person on the Roster under Site availability.
Sep 29Fill order by day of the week — Settings, Shifts & Sites: under a shift's fill order you can now raise or lower it on one day of the week. A shift that fills last can fill sooner on a busy Monday. Days left on "Same" follow the shift's own fill order.
Sep 29Hold a shift open — On a month you are still building, open a shift on the calendar and choose "Hold open". Generate leaves that one shift empty and it stays claimable. "Set as OPEN" or placing somebody ends the hold.
Sep 2924-hour shifts get their own request row — On the Availability screen a shift that runs a full 24 hours is no longer grouped under "Night". It has its own row, under its own name.
Sep 29Sort and filter any list of people — Overview, Summary, Team, Deficits and the assign screen have a Sort menu and category chips. Sort by name, by shifts, by days off or by what is owed, and show only the categories you want. Your choice is remembered on this device. The default is unchanged: by category, then last name.
Sep 29One order everywhere — Every list of people is now grouped by category (Full Time, Part Time, Nocturnist and so on) and alphabetical by last name inside each one: Overview, Summary, Team, the assign screen and the pickers.
Sep 29Preferred shift mix — Roster → Edit & Customize → "Preferred mix (%)". Slide each shift type to the share you want, such as 80% days and 20% nights. CoverED turns the percentages into that month's numbers from the person's target, so the split follows the target when it changes.
Sep 29Complete weekends — Settings → Rules & Targets → "Complete weekends". Whoever works Saturday also works Sunday whenever possible. Shift counts and mixes do not change, and time off and rest rules still come first.
Sep 29Physician and APP shifts stay separate — On the Calendar, a physician can no longer be assigned to an APP shift, or an APP to a physician shift. The person is listed with the reason. Shifts you have linked to an alternative still accept either.
Sep 29No reminders for optional shifts — The 72-hour "needs coverage" e-mail and text now go out only for shifts that have to be filled. A shift left open for pickup never sends one, any shift can be silenced on its own (Settings → Shifts & Sites → the shift → "Coverage reminders"), and Settings → Rules & Targets → "Open-shift reminders" turns them off for the whole group.
Sep 2824-hour shifts — Settings → Rules & Targets → Safety limits → "Allow 24-hour shifts". People opt in under their own Preferences. On the Calendar, fill one of two back-to-back shifts, open the other, and choose the same person. Both are locked, Generate builds everyone else around them, and the person gets a full day off afterwards.
Sep 28Safety limits in Settings — Settings → Rules & Targets → "Safety limits": most days in a row, days off after a full run, hours off between shifts, days between stretches of nights, and no night shift into a requested day off. These rules were always enforced; you can now see and change them.
Sep 28Schedule a quarter at a time — Settings → Rules & Targets → Scheduling Timeline → "Scheduling period". Choose every 2, 3, 4 or 6 months: requests for the whole period open and close together, and one button generates every month in order.
Sep 28Clearer publish emails — Shifts you leave open for pickup on purpose are now listed on their own line in the publish email, not counted as gaps.
Sep 28Founder rate on annual billing — Founding members can now pay once a year at the founder rate, and the plan picker shows the founder price before you reach checkout.
Sep 28Extra shift requests for everyone — Every member now has "Available for extra shifts" on their Availability page, with how many they will take. Extras are only handed out after everyone reaches their minimum. Settings → "Extra shift requests" turns it off.
Sep 28Members can request a shift total — Settings → "Let members request a shift total". Members see only their usual number for the month and enter the total they would like to work; every request shows on the Team tab under "Shifts requested".
Sep 28Holiday Teams on/off — Settings → Holiday Teams → "Use Holiday Teams when generating". Turn it off to keep the rosters as a reference and place holiday shifts by hand.
Sep 28Holiday Teams by year — Settings → Holiday Teams now groups your holidays by year. This year and next are open; tap a year to expand the rest. The date field also spells out the dates it read.
Sep 28Safer trades and pickups — A trade can no longer be accepted after its day has passed, a trade that cannot go through says why instead of showing as accepted, and picking up a shift on a day you had blocked clears that block for you.
Sep 27Message to the group — Calendar tab → "Add a message for the whole group". Everyone sees it pinned at the top of their Schedule tab, and links are clickable — handy for a shared holiday sheet.
Sep 27Shifts requested, at a glance — Team tab → "🎯 Shifts requested": every provider's baseline, the extra shifts they asked for, and the total they want to work that month. Blank means baseline.
Sep 27Trade across months — Give up a shift in one month and take one back in another — the trade picker now has month buttons whenever more than one month is published. A trade across two months goes to your admin for approval, and both schedules update together once it is approved.
Sep 27Holiday Teams dates are easier to enter — Type block dates separated by commas, semicolons, or spaces — 2026-12-24 or 12/24/2026 both work. The field confirms how many dates it read and flags anything it cannot.
Sep 22Offered shifts on a day you requested off — Providers can now pick up an offered shift on a day they had requested off — the Open Shifts row shows a heads-up instead of blocking the claim, the same way trades already work.
Sep 20Max people off per day — Settings → Rules & Targets → "Max people off per day": set how many people can request the same day off. Once a day is full, the next request is told why.
Sep 16Reset your password with a code — The password reset email now carries an 8-digit code as well as the link. If your mail program breaks the link, type the code on the sign-in page.
Sep 15Share a read-only calendar — Settings → Group & Account → "Share read-only calendar": one link that shows the published schedule to anyone you send it to, no login needed. Turn it off or make a new link any time.
Sep 15Limit requests in busy weeks — Settings → Rules & Targets → "Request-limited windows": pick a date range and the most days off each person may request inside it, for school breaks and holiday weeks.
Sep 14Done-for-you setup — Included with every paid plan. Send your roster and current schedule from the Overview tab or Settings → Group & Account, and we build your first month for you. New groups start with a 30-day free trial.
Sep 10Leave a shift open for pickup — Settings → shift setup → "Leave open for pickup": the generator never fills that shift, so it stays on the Open tab for the group to claim.
Sep 4Pay once a year — Every plan can be billed annually: one charge per year at a lower price than twelve monthly payments.
August 2026 2 updates
Aug 8Why is this number off? — After you generate, anyone above or below their target has a "?" beside their count. Click it for the reason: requests, caps, a paused site, or not enough open shifts.
Aug 1Offer a shift for trade — Providers choosing "Offer" on a shift now pick between giving it away and offering it for trade. Colleagues propose what they would swap, and the owner picks one.
July 2026 13 updates
Jul 31Billing / Payroll export — Reports tab: hours × your hourly rates (per role or per person), flat shift rates, auto-detected 💰 bonus-shift premiums, manual adjustments with notes, per-site totals, and a payroll-ready CSV.
Jul 31Command palette (⌘K) — Press ⌘K (or Ctrl+K) anywhere in the admin dashboard: jump to any tab, generate, publish, find a provider, switch theme — without touching the mouse.
Jul 31Trades never blocked by requests — A provider trading onto a day they requested off is choosing to work it — the trade modal now shows a heads-up instead of blocking, on both sides of the trade.
Jul 28Seasonal pause windows — Pause a site, the APP layer, or a shift between two dates — or every year with "Repeats every year." Winter clinics and summer-only APP coverage stop generating and come back on their own.
Jul 22Schedule pairing — Link two providers as "same days" (share the commute or the sitter) or "opposite days" (one always home) — the generator enforces it.
Jul 22Fill every shift — Settings → "Treat shift targets as minimums": open holes get filled by the best-rested eligible person and flagged 💰 instead of left blank — now for multi-site groups too.
Jul 21One-click provider invites — Send Invite now emails the invite automatically — no mail app. Plus a bulk "Invite everyone" button on the Roster tab.
Jul 21Fairness Report — New on the Reports tab: shifts, nights, and weekends per person vs the group average — proof the schedule is equitable.
Jul 18Clear can keep locked shifts — Clearing a month now offers to keep 🔒-locked shifts (hand-entered fixed schedules survive a rebuild).
Jul 18Available days — Enter days off → new "Available days" mode: mark the days someone told you they can work, and see "✓ Available" when filling shifts.
Jul 17Calendar sync fixed on Android — Phone calendar feeds now show the right shift times on Google Calendar / Android (and event titles read "AM (7a - 4p) - EM Shift").
Jul 10Check rules button — One click reviews a hand-edited schedule for request-off conflicts, double-bookings, short turnarounds, and 5+ day stretches.
Jul 9Better first generate — Generate now tries many schedules behind the scenes and gives you the fewest open shifts on the first click.
Legal & Security Trust Surface May 27, 2026
NEW Full legal coverage: expanded Terms of Service + Privacy Policy; added Refund Policy, Acceptable Use Policy, Cookie Notice, DMCA Policy, Accessibility Statement, Data Processing Addendum, Service Level Agreement.
Scheduling Quality + Multi-Site Polish May 27, 2026
IMPROVED Generator enforces a 6-day consecutive workday cap by default (admin-configurable) — applies to all roles including nocturnists and residents.
IMPROVED Rest-after-streak rule prevents the "6 on, 1 off, 6 on" cluster — requires 2 rest days after a cap-hitting streak.
IMPROVED Stronger month-wide spread: new PACE scoring term pushes ahead-of-pace providers back so the schedule spreads evenly instead of clustering.
NEW Per-site APP staffing count — site A can need 2 APPs while site B needs 1.
NEW Per-site visual differentiation — each site gets its own emoji + color (🏥 🏢 🏨 🏛 🏬) across Open Shifts, My Schedule, and the trade modal.
Trade UX Overhaul May 27, 2026
NEW Trades tab split into Pending / Accepted / Cancelled-Declined sub-tabs with live counts (both provider and admin views).
IMPROVED Larger trade modal (920px wide vs 440px) with per-site key legend at the top.
IMPROVED Each cell in the trade picker shows the site short-name + per-site emoji so multi-site cells are immediately distinguishable.
FIX Cross-day trades now correctly unblock when offering across sites.
FIX Trade picker cells across days no longer false-positive as "already working" in multi-site groups.
Open-Shift Claim Hardening May 27, 2026
FIX Open claims now appear on the claimer's My Schedule (multi-site fix).
FIX Provider Team view now reads across all siteScheds, so cross-site assignments render correctly.
FIX Provider can no longer claim an open shift on a day they're already working at another site.
SECURITY Atomic same-day double-book guard: rapid-fire claim clicks can't race past the check.
NEW Site indicator now shown on every Open Shifts row (not just giveaways).
Provider Settings — Recurring & Vacation Visibility May 27, 2026
NEW Out-of-town vacation blocks AND recurring weekly patterns now show as blocked immediately on the Availability calendar AND both team views (no need to regenerate).
NEW Recurring blackouts gained per-shift narrowing chips ("AM-only on didactic Wednesdays").
IMPROVED Team board now shows correct site availability: "All sites" when truly all, "2/3 sites" when a subset, or the site name when only one.
FIX My Schedule no longer paints open-shift days in blue — only the "OPEN" label.
Schedule Confidence + ICS Calendar May 25, 2026
NEW Undo, auto-flag for sketchy patterns, change diff modal before publish, per-provider re-publish email with diffs.
NEW ICS calendar export — download or subscribe via webcal:// (auto-refreshes on publish).
NEW Copy-last-month-as-template seeds the new month with prior config.
NEW Reports CSV export for payroll/HR handoff.
Equity, Notifications & Deficit Handling May 25, 2026
NEW NOC + weekend + holiday carryover from prior cycles balance schedules over time.
NEW Admin schedule-change digest (NOTIF-01) — coalesced into a single email every 5 minutes.
NEW Provider holiday preferences (3 avoid + 1 hard block + 1 want).
NEW First-time deficit import + spread cap so prior-cycle backlogs catch up over multiple months.
Residency Mode May 23, 2026
NEW Full residency variant: PGY targets, ACGME duty-hour validator, didactic blocks, PTO requests, per-block site pinning, holiday tally, liability acknowledgment, residency-specific tour.
NEW ED + residency combined provisioning (one Stripe subscription → two groups).
Live Launch May 21, 2026
NEW Stripe live billing + 5 transactional email templates via Resend.
NEW Custom domain coveredscheduling.com with Vercel auto-deploys.
NEW Email confirmation, strong-password policy, branded auth emails.
Earlier 2026-Q1 / Q2
Onboarding tour, multi-site scheduling, NOC fairness, in-app feedback, provider trade UX v2, and the core scheduling engine.