Getting started · Slotly.software

There is no sign-up form on this page. That is on purpose.

The public booking page — the link, the embed, the white-label overlay — is in development. A sign-up form that cannot create a working booking link would be a form that misstates what it does, so this page does not have one.

What it has instead: a short conversation about how you actually book people, and an honest answer about when your particular use of it will be ready. The engine underneath — the no-double-book guarantee, the capacity lock, the overlap predicate — is built and exercised in the shared core this whole family sits on.

What actually happens

Three steps, and you can stop after any of them.

✓1 — Tell us what you book

One link for one calendar, or a small team sharing a few? A short note to [email protected] with how you book now, and what goes wrong with it, is enough to start.

✓2 — See what is built, and what is not

We walk through the engine that exists — the no-double-book guarantee, the capacity lock, the overlap rejection — and name plainly what is still in development. You should come away able to repeat back what is real and what is not. The full inventory is on the help page.

✓3 — An early-access spot, no commitment

If it fits, we put you on the early-access list so you hear first when the booking page and the pricing are live for your case. No card, no contract, no account created on a web page.

What starting does not involve

No card, no charge, no contract signed on a web page.

There is no live checkout on this site. Reserving early access does not create a payment, does not store a card, and does not commit you to anything — it starts a conversation. The pricing shown on the main page is the planned launch shape, not a live purchase option; no card is charged and the payment seam is switched off.

Prepare one synthetic launch dossier

Describe the practitioner, the offered service, and the calendar rule before discussing screens.

Begin with one fictional adult practitioner and one service that has a fixed duration. Give the practitioner a display time zone, ordinary weekly hours, a preparation buffer, a closing buffer, and two exception dates. Add a second service only if its different duration exposes a real scheduling question. The dossier should fit on one page. It is a decision sample, not a replica of an existing client database.

Write down what the public visitor must know before requesting a time: service name, duration, location or meeting posture, displayed time zone, cancellation terms, and the contact fields actually necessary for confirmation. Separate those public facts from the practitioner’s private calendar details. A useful booking surface reveals candidate windows without exposing why another interval is unavailable.

Define the operator roles even for a small team. Identify who configures hours, who may add an exception, who can review upcoming bookings, and who can cancel or correct one. If a solo practitioner holds every role, record that explicitly. The model should not assume that one-person authority will remain appropriate when a second calendar or administrator is added.

Keep the identities synthetic. Use names such as Practitioner A and Client One, invented email addresses, and dates chosen for the exercise. Do not connect an external calendar, paste a private event feed, or send access tokens during an introductory review. The built engine can demonstrate a slot decision from explicit windows without inheriting real appointment information.

Rehearse the booking lifecycle

Exercise confirmation, collision, overlap, cancellation, and a stale view in a known order.

First request an open synthetic window and preserve the committed result. Confirm that the returned time, resource, status, and display time zone match the selection. Then submit a second live booking for the same resource and window. The expected outcome is an already_booked conflict from the database boundary, with no partial second reservation and a clear instruction to refresh availability.

Next use a capacity example only if the intended service genuinely allows several places in one window. Fill the synthetic capacity, then request one more place and expect slot_full. Keep that case separate from exact uniqueness so an operator can tell whether the collision concerns one exclusive window or a multi-place count. The interface should not translate both reasons into an unexplained apology.

Create a partially overlapping interval for the same practitioner and verify that the overlap predicate refuses it. Then cancel the original synthetic booking through the intended lifecycle and request the released window again. The history should still explain that the first booking existed and was cancelled; freeing capacity must not mean erasing the prior decision.

Finally, model a browser that displayed availability before another request committed. Its later submission should receive the current database answer rather than the optimistic state it saw earlier. This stale-view rehearsal is more useful than repeatedly booking uncontested windows because it tests the exact moment when a polished calendar can mislead a client.

Decide whether the first operating slice is ready

Use entry, stop, handoff, and rollback criteria instead of a feature wishlist.

Entry criteria should name the configured service, time zone, hours, exceptions, operator, synthetic booking identities, and current Slotly surface available for demonstration. If the workflow depends on two-way calendar synchronisation, a custom domain, white-label presentation, group polling, self-serve setup, or billing, mark that dependency before the review. Those pieces remain planned or in development and cannot be substituted with screenshots.

Stop when an essential decision cannot be represented or explained. A missing operator permission, ambiguous time-zone conversion, unsupported calendar connection, unexplained conflict, inaccessible public step, or cancellation state that cannot be reviewed is evidence that the slice is not ready. Recording a stop condition is more valuable than continuing through an easy path that avoids the blocker.

The handoff note should distinguish configured inputs, committed outputs, refusals, notifications, and actions owned by a person. A notification can be late while the booking remains confirmed, so delivery status must not replace booking status. The note should also identify the existing scheduling procedure that remains authoritative during early access. No demonstration should leave a practitioner unsure which calendar governs tomorrow’s appointments.

Plan rollback before widening. Decide who closes the exercise, removes synthetic records, revokes any temporary access, and records unresolved questions. Add another service, practitioner, location, or administrator only after the first slice is understandable under both successful and refused requests. A conversation can reserve interest in early access; it does not authorize a production migration, create a paid subscription, or guarantee a launch date.

What the engine decides

A slot becomes unavailable through one committed database decision.

The shared fixed-slot engine treats a booking as a claim on a resource and time window. A partial-unique database index prevents a second live booking from occupying the same window. When a slot permits capacity above one, the live count is read while the slot is locked inside the booking transaction, so two callers cannot both spend the last place. A separate overlap predicate refuses a booking whose time window conflicts with another live booking for that resource.

Those mechanisms are built and unit-tested in the shared core. They are not evidence that a Slotly-branded service is operating. The public booking page, embeddable view, account setup, white-label overlay, custom-domain connection, group poll, calendar synchronisation, notifications, and billing surface remain in development or planned. This site offers documents and an email link; it cannot create a booking or account.

A useful interface must preserve the engine’s answer. It can show open times before a request, but it cannot promise the place until the transaction commits. An already_booked conflict means another live booking owns the window; slot_full means the capacity count was already spent. The interface should refresh availability and invite another choice rather than disguise either response as a server failure.

Cancellation changes which bookings count as live, so a properly cancelled booking can release its window. That does not justify deleting history or rewriting the prior decision. A future operator view needs the booking status, actor, and timestamps required to explain why a slot was open at one moment and unavailable at another. Notifications follow committed changes and must be retryable without creating another booking.

What the product promises and refuses

Plain packaging is planned; money, AI, and availability claims stay off.

The planned Plus tier has no monthly booking cap. A custom domain is planned on every tier, including the entry Plus plan. The white-label overlay is planned at Team rather than hidden behind an Enterprise sales call. The planned tiers take no commission from a booking. These statements describe intended packaging for a surface that is still being built; they are not live subscription terms and cannot be purchased from this site.

There is no checkout, payment form, provider charge, card storage, automatic renewal, or commission collection here. Pricing on the overview is display-only. There is also no AI system choosing times, ranking clients, composing messages, or resolving a collision. Availability comes from explicit schedule data and database rules. A group poll and external-calendar connections are planned and must not be mistaken for working integrations.

Slotly makes no customer-count, adoption, outcome, uptime, or certification claim. It does not present testimonials and does not claim FERPA, COPPA, SOC2, or VPAT certification. The name remains subject to trademark and registry review before brand launch. Early access means a conversation about fit and sequence, with synthetic examples where useful, not a hidden production tenant.

Before a surface can be called available, its full path needs to work: account scope, resource configuration, time-zone handling, availability publication, booking and cancellation, conflict presentation, notification retries, support access, operational logs, and deletion or retention rules. A green engine test establishes the decision law. It does not establish all of those surrounding responsibilities.

Operational review also needs a recovery case. A schedule change should preserve enough history to explain which time a client originally accepted. Revoking an external-calendar connection should stop future reads without corrupting already committed bookings. A support reproduction should use synthetic identities and a narrow account scope. Exports and backups should follow the same deletion and access decisions as the primary store. None of this work makes the booking rule more complicated; it makes the service around that rule accountable when an ordinary mistake, retry, or provider outage occurs.