Step 1 of 5
Post the open shift
A manager posts a shift: the role, the time window, and which credential it requires (a certification date, a district, a building). Nothing is assigned yet -- the shift is just described.
Shiftly · staff shift-roster scheduling · early access
Staff-shift-roster scheduling for hourly workforces and K-12 substitute coverage -- open shifts matched to eligible, credentialed staff inside their own availability windows, with a ranked replacement proposed automatically the moment a covered shift falls through.
A manager posts an open shift with a time window and, where it matters, a required credential. The same constraint gate already running credential-gated assignments elsewhere in the fleet checks every staff member's own availability, role eligibility, and credential expiry, and proposes who can take it. If a covered shift falls through, the same self-healing reassignment logic proposes a ranked, minimal-cascade replacement for that one shift. K-12 substitute coverage rides the identical mechanism: a teacher absence is a shift with a substitute-credential requirement, matched against a pool of eligible subs.
What it is
Shiftly is staff-shift-roster scheduling for hourly workforces: a manager posts an open shift, the shift is matched to a staff member whose own availability window, role eligibility, and (where required) credential all clear, and that person accepts or is assigned. If a covered shift falls through, a ranked replacement is proposed automatically instead of the manager starting from a blank board.
K-12 substitute coverage is not a separate product bolted on -- it is the same shift object with a school-specific credential requirement (a substitute-teaching credential, a building assignment) matched against a pool of eligible substitutes the same way any other open shift is matched. One mechanism, two skins.
It is deliberately narrow. Shiftly schedules shifts and covers the ones that fall through; it does not track when a shift actually started or ended, and it makes no claim about hours worked. That boundary is drawn on purpose and held throughout this page.
How it works
The same five-step mechanism covers a routine open shift and a K-12 substitute callout -- only the credential requirement on the shift changes.
Step 1 of 5
A manager posts a shift: the role, the time window, and which credential it requires (a certification date, a district, a building). Nothing is assigned yet -- the shift is just described.
Step 2 of 5
The same constraint gate that already runs credential-gated assignments elsewhere in the fleet checks every staff member's own availability window, role eligibility, and credential expiry against the shift, and proposes who can actually take it.
Step 3 of 5
The matched staff member accepts (or the manager assigns directly). The board shows the shift as covered, not assumed covered -- an accepted shift and a proposed one are never shown the same way.
Step 4 of 5
If a covered shift falls through, the same self-healing reassignment logic that already proposes minimal-cascade reschedules elsewhere in the fleet proposes a ranked list of eligible replacements for that one shift -- not a rebuild of the whole week's roster.
Step 5 of 5
A teacher absence is modeled as the same shift object with a school-specific credential requirement (a substitute-teaching credential, a building assignment). Coverage is matched from a pool of eligible substitutes the same way any other open shift is matched -- no separate sub-coverage engine to keep in sync.
Reused vs early access
The matching primitives underneath shiftly -- availability, eligibility, the credential-gate, and self-healing reassignment -- are the same primitives schedule.software already describes running in production for crew dispatch, re-skinned for a staff shift. The shift-roster board and the K-12 sub-coverage skin sitting on top are new surface, marked early access, not claimed live.
Reused & shipped elsewhere
Checking a person's own stated availability window against a shift's time window is the same primitive already running in production for crew scheduling elsewhere in the fleet. Shiftly re-skins it for a staff shift instead of a crew assignment.
Reused & shipped elsewhere
A shift that requires a credential checks the assignee's credential expiry and scope against the shift's requirement before the assignment is offered -- the same hard-constraint gate schedule.software already describes running on live crew-dispatch assignments (expiry must exceed the scheduled date, scope must match).
Reused & shipped elsewhere
Role and eligibility rules narrow the candidate pool before availability is even checked, so a shift is only ever offered to someone actually allowed to work it.
Reused & shipped elsewhere
When a covered shift falls through, a ranked, minimal-cascade replacement proposal is generated for that one shift -- the same self-heal mechanism schedule.software describes running against real crew-dispatch schedules, applied here to a roster callout instead of a route change.
Early access
The visual board a manager posts, reviews, and covers shifts from is new surface being built on top of the reused primitives above. It is not live today.
Early access
The substitute-specific skin over the same shift/eligibility/credential mechanism -- building assignment, substitute-credential requirement, sub-pool matching -- is new surface being built. Not live today.
Different lanes for different needs
These are separate products for separate jobs, each its own brand — not tiers of one app. They share a booking engine (no-double-book at the database, capacity under a lock, an honest waitlist), and nothing else. Naming them here is not a claim that any is live in production — each is its own brand with its own status, stated on its own page.
One link, one slot
The plainest single-link booking front door for a solo practitioner or a very small team.
Call dibs on a time
A first-come, claim-a-slot sign-up sheet with a consumer voice -- the first to grab a time gets it.
Pencil it in
Fixed-slot booking with a real soft-hold state: hold it provisionally, confirm with one tap.
More than one calendar
Appointment booking for a business with multiple staff, locations, or shared resources.
Classes & studios
Recurring class, pack, and waitlist scheduling for studios.
Cohort courses
Session-based scheduling for cohort-run online courses.
Staff shift roster
Post an open shift and match it to eligible, credentialed staff -- scheduling only.
You are here
Shifts + hours record
Shift scheduling with time-clock and hours-record capture for classified staff and shift-work teams.
Find a time
A native, ad-free poll for finding the time that works for a whole group.
The master timetable
Building the institution's whole schedule -- courses, sections, rooms, terms.
Shiftly answers one question: who is scheduled for a shift, and who covers it if that falls through. It has no feature anywhere in this product for capturing the moment a shift actually begins or ends, and it keeps no record of hours actually worked. That is a deliberate, load-bearing boundary, not an oversight -- a roster and an hours record are two different jobs, and mixing them into one product is exactly what this page refuses to do.
The hours-record job -- capturing real start and end moments for a shift and reconciling that record against payroll -- belongs to a sibling product on its own domain, built and sold separately. Shiftly links to nothing in that sibling's job here, names no feature of it, and describes none of its mechanics. If a team needs both a roster and an hours record, that is two products working from the same shift data, not one product doing both jobs.
To be plain about what this means in practice: nothing on this page describes a start-of-shift capture, an end-of-shift capture, a break deduction, a per-minute log, or any reconciliation of scheduled time against actual time. Shiftly’s board shows a shift as posted, matched, accepted, or covered by a replacement -- states about the schedule, never states about a clock.
Your brand, your domain — not the enterprise upsell everyone else makes it
A custom domain is the first thing most shift-scheduling tools lock behind a paid tier, and full white-label the thing they reserve for an enterprise contract. Shiftly gives every paid plan a custom domain, and full white-label licensing is available at the reseller tier — not a sales call away from a district that just wants its own name on the board.
Claim a hostname you control, drop in the DNS-TXT record we hand you, and once it verifies the shift board and the substitute-coverage flow serve from shifts.yourdistrict.org. One host belongs to one account — no overlap, no cross-tenant leak — and releasing it unroutes immediately. It binds through the same owner-context layer that runs the K-12 and field-service arms elsewhere in this fleet in production, so there is no separate deployment behind it.
Your logo, your wordmark, your colors, and the Shiftly badge gone. Notification emails carry your logo and your display name and reply-to. An operator who wants to offer shift-roster scheduling under its own brand configures it through the same engine, one codebase, no separate fork.
The engine that verifies a domain claim and binds a brand to an account runs in production elsewhere in this fleet (the K-12 and studio arms). Shiftly’s own self-serve connect-your-domain and theming screens are in development, same as every sibling brand. The email sending domain and the consent/legal footer stay the platform’s at every tier — neither is ever white-labelable. No live checkout; pricing is the plan.
Pricing — the plan, grounded and honest. Not a live checkout.
A shift-roster tool prices differently from a general calendar because the unit that matters is a scheduled staff member, not a logged-in admin. We price per scheduled user, with the K-12 substitute-coverage edition and white-label licensing priced separately because they serve a different buyer entirely — a district, not a single manager. No commission is taken on any assignment, ever; shiftly is a subscription product, not a marketplace. These figures are the planned launch tiers; they are not a live purchase option today. Reserve early access and we discuss what access looks like for your operation specifically.
Team
$2.50 / user / mo
$2.08 / user / mo on the annual plan ($25/yr, planned) · per scheduled user
K-12
Custom
Site license, priced per district · planned
Enterprise
Custom
Volume · licensable · planned
Pricing figures are the planned launch tiers. This is not a live checkout. No money changes hands through this site. Payments are honest-off: the payment infrastructure is in place as a reserved line; it is not enabled for live transactions today.
How we compare — structural product categories, not named vendors
A shift falling through has one honest fix in most operations today: a manager works a phone list or a group text until someone eligible answers. The apps built for this either check nothing about who is actually allowed to take the shift, or check it manually, one swap request at a time.
| Product type | Credential-gate at assignment | Self-healing reassignment on a callout | K-12 substitute-coverage skin | White-label / licensable |
|---|---|---|---|---|
| Shift-swap apps | No credential check | Manual swap request | Not built for K-12 subs | Branded to them |
| Suite-bundled workforce modules | Not modeled | Static roster | Not K-12 specific | Suite branding only |
| Group-text and phone-tree callouts | No system check | One call at a time | The job, no system | No product to brand |
| Open sign-up boards | Open list, no gate | Manual re-post | Volunteer boards, not subs | Paid tiers only |
| Shiftly | Reused, shipped elsewhere | Reused, shipped elsewhere | Early access | Yes -- reseller tier |
This comparison reflects the structural category each product type occupies, not any single vendor. No competitor brands are named on this site.
What we will not do
The matching primitives -- availability windows, the credential-gate, eligibility rules, and self-healing reassignment -- are reused from shipped, production work described elsewhere in this fleet; this page does not claim to have independently verified that source from here, and the underlying claim is re-grounded against the live source tree before anything lands. The shift-roster board and the K-12 sub-coverage skin built on top of those primitives are early access and are not described as live today.
No AI or machine-learning claim is made anywhere on this page: matching and self-heal are constraint-based rules, described as exactly that. No credential check on this page certifies, licenses, or verifies a credential's authenticity -- it checks an expiry and a scope against a record already supplied. Shiftly is a per-user subscription product, not a marketplace, so this page makes no commission or fee-skim claim of any kind.
Pricing is DISPLAY-ONLY: no live billing, no checkout, and no card is charged anywhere on this page. There are no fabricated customer counts, adoption metrics, or testimonials here, and no competing product or company is named.
shiftly.software carries its own accent — a deep plum at hue 313°, 63° off the fleet navy’s hue 250°, and distinct from sibling accents on appointments.software (#055c38 (hue ~155)) and dibs.software (#972d0c (hue ~14)). Contrast against white is 11.16:1, clearing the AAA (>=7:1) text floor.
Questions
Staff shift-roster scheduling: posting open shifts, matching them to eligible and credentialed staff inside their own availability windows, and proposing a replacement the moment a covered shift falls through. K-12 substitute coverage is the sharpest edge of the same mechanism -- a teacher absence is a shift that needs an eligible, credentialed substitute matched fast.
No. The matching primitives -- time-window availability, the credential-gate, eligibility rules, and self-healing reassignment on a callout -- are the same shipped, production primitives schedule.software already describes running for crew dispatch, re-skinned for a staff shift instead of a crew job. The shift-roster board and the K-12 sub-coverage skin are the new surface, and this page marks both as early access rather than claiming they are live.
Nothing. Shiftly posts shifts, matches eligible people to them, and covers the ones that fall through. It has no concept of when a shift actually started, when it actually ended, or how long someone actually worked -- that record-keeping is a different product's job entirely, described in the next section.
They split on purpose. Shiftly is the roster: who is scheduled for which shift, and who covers it if it falls through. The sibling product is the hours record: capturing when a shift actually started and ended and reconciling that against the schedule for payroll. One schedules; the other records what actually happened. They are built, marketed, and sold as separate products, and this page never describes the hours-record job as something shiftly does.
Not yet. It is early access -- the same shift/eligibility/credential mechanism, specialized with a substitute-credential requirement and a building assignment, and matched against a pool of eligible substitutes. The page names it plainly as being built rather than showing invented coverage activity.
No AI claim is made anywhere on this page. Matching and self-heal are described as what they are -- constraint-based rules over availability, eligibility, and credential expiry, not a machine-learning or AI-assist feature.
No. The credential-gate checks an expiry date and a scope against a record the school or business already supplies -- it does not certify, license, issue, or verify the authenticity of a credential. That determination stays with whatever authority issued the credential in the first place.
Pricing on this page is DISPLAY-ONLY -- a plan, not a live checkout. No card is charged anywhere on this page or behind any of its buttons. The next step is a conversation, not a signup form.
No. Every figure is the planned launch tier, not a live checkout. No card is charged anywhere on this page or behind any of its buttons. Reserving early access starts a conversation about what access looks like for your operation; it does not create a payment.
No, not for the domain. A custom domain is on every paid plan — most shift-scheduling tools charge for that and reserve full white-label for an enterprise contract. Removing our branding and applying your own logo and colors is the reseller tier, not a sales-only conversation. The engine that verifies a domain and binds a brand to an account runs in production elsewhere in this fleet; the self-serve setup screen for shiftly itself is in development. Notification emails carry your display name and reply-to; the legal and consent footer stays ours by design. Pricing is the plan; there is no live checkout here.
Shiftly is its own product and its own brand. It shares a scheduling engine with nine other brands in the same family (appointment links, room booking, class scheduling, field dispatch, and more) — naming them is not a claim that any is live in production; each is its own brand with its own status stated on its own page. homeroom.software is an optional integration for schools running both, never a requirement to use shiftly on its own.