On this page
An availability form template works best when every answer belongs to one person and one dated time slot. This template separates availability from shift assignment, so a manager can count unique available people and compare that count with required coverage.
Download the Excel workbook · Coverage requirements (CSV) · Example rows (CSV) · Slots (CSV) · Application field specification (JSON)
Define dated slots before asking people to respond

AI-generated editorial illustration.
Give each slot a stable ID and store its start, end, and time zone. A label such as “Saturday evening” becomes ambiguous across dates and locations; a row like EVT-2026-11-07-1800-2200 identifies the actual local interval. For overnight work, store separate start and end dates.
Ask for a response of available, unavailable, or unknown for each slot. A blank or unknown answer must not count toward coverage. Record the submission time and source so a later response can replace that person’s earlier answer without creating a second person.
| Person ID | Slot ID | Answer | Submitted at |
|---|---|---|---|
| P-031 | EVT-2026-11-07-1800-2200 | available | 2026-10-02 09:12 ET |
| P-044 | EVT-2026-11-07-1800-2200 | unavailable | 2026-10-02 09:27 ET |
| P-031 | EVT-2026-11-08-2200-0200 | unknown | 2026-10-03 05:00 ET |
These are synthetic rows. For each slot, count distinct person IDs whose latest answer is available. The download includes a later unavailable answer from P-031. That replaces their earlier available answer. P-052 remains available, so the latest responses give one available person against a requirement of four: a gap of three. P-031 still contributes only one current answer.
Keep preferences separate from assignments
Availability is a person's stated preference for a time window. An assignment is a manager's decision that places the person on a shift. Store assignments in a separate schedule table with an assigned-by field and assignment status. A person's availability response does not promise a shift, reserve labor, or update payroll.
For a manager’s weekly review, show the date, local time zone, required headcount, available unique people, gap, and names of people who selected available. Restrict names and contact details to coordinators who need them; share aggregate coverage with a wider group when individual responses are private.
Use the included CSV and form specification
sample.csv contains one row per person-slot response. slots.csv defines the dated intervals, including an overnight example, and coverage_requirements.csv sets the headcount target. form-template.json lists the response fields and proposed constraints. The files are synthetic starter data; adjust slot lengths, roles, and privacy rules to your team.
The coverage calculation should use the latest response for each (person_id, slot_id) pair, then count unique people with an available answer. Preserve submission history by unique response ID, and derive one current answer per person and slot. Reject duplicate response IDs and conflicting answers with identical person, slot, and timestamp. Do not count unknown as available or carry a response into a different week.
Build a coverage tool in Atoms
An Atoms app can use Atoms Cloud or a connected Supabase project as its backend; the two are alternatives for one project. Connecting a backend does not itself produce the form, calculation, or saved records. Build the response and coverage views, then save a test answer, refresh, and verify the stored row. If using Supabase, write and test row-level security for the roles that can read individual responses.
Participants should be able to update their own responses. Coordinators can view the responses needed to make a schedule, while aggregate coverage can be shared more broadly. Enforce access in server-side operations and the database. Verify each role with separate accounts, and report any test that has not been run.
Atoms backend connection guide · Supabase access policies
Build prompt
Copy this prompt into your Atoms project chat to request a first implementation. Check the generated slot calculation, access rules, and saved data before using it for staffing.
Copy the build brief and use it to create your version in Atoms.
For a known repeating cycle, use the rotating shift schedule generator.