# Appearance Settings Source: https://docs.signupbreeze.com/account/appearance Switch between light mode, dark mode, or system default. SignUpBreeze supports light and dark themes so you can work in the environment that's most comfortable for you. ## Changing your theme Go to **Settings > Appearance** to choose from three options: * **Light** — a bright, white background * **Dark** — a dark background that's easier on the eyes in low-light environments * **System** — automatically follows your device's light/dark mode setting Your theme preference is saved to your account and applies across all devices. # Billing & Plans Source: https://docs.signupbreeze.com/account/billing Compare plans and manage your organization's subscription. SignUpBreeze offers a free plan plus two paid plans for teams and larger organizations. Manage everything from **Settings > Billing**. ## Plans | | Free | Starter | Pro | | ------------------------------ | --------- | ------- | --------- | | **Monthly price** | \$0 | \$9 | \$29 | | **Active events** | 3 | 10 | Unlimited | | **Organization members** | 1 | 3 | Unlimited | | **Registrations per shift** | 100 | 1,000 | Unlimited | | **Custom questions per event** | — | 3 | 10 | | **Waitlist management** | — | ✓ | ✓ | | **Configurable reminders** | — | ✓ | ✓ | | **CSV export** | — | ✓ | ✓ | | **Remove branding** | — | — | ✓ | | **Custom event URLs** | — | — | ✓ | | **Support** | Community | Email | Priority | ## Subscribing On the free plan, open **Settings > Billing** and review the plan cards under **Upgrade your plan**. Click **Subscribe** on the plan you want, and you'll be taken to a secure checkout to enter payment details. Once checkout completes, your new features become available within a moment. Paid plans start with a **30-day free trial**. You won't be charged until the trial ends, and you can cancel anytime before then to avoid a charge. Only organization owners and admins can manage billing. ## Managing your subscription Once subscribed, the **Billing** page shows your current plan and its status (**Active**, **Canceling**, or **Past due**). From here you can: * **Change plan** — switch between paid plans. * **Manage billing** — update your payment method, view invoices, and download receipts. * **Cancel subscription** — cancel anytime. You keep access until the end of the current billing period. ## Payment issues If a payment fails, your plan is marked **Past due** and you'll be prompted to update your payment method. Update it from the billing portal to avoid losing access to paid features. # Notification Settings Source: https://docs.signupbreeze.com/account/notifications Control which email notifications you receive from SignUpBreeze. Manage your email notification preferences from **Settings > Notifications**. ## Daily Digest The **Daily Digest** sends you a morning email summarizing sign-up activity across all your events over the last 24 hours. It's enabled by default. Each digest includes: * **A running total** of new sign-ups and cancellations across your events. * **A per-event breakdown**, with each shift's fill count (for example, "3/5") and a **+N today** marker for new sign-ups. Full shifts are flagged **FULL**. * **Direct links** to each event and to your full dashboard. Toggle the digest on or off from **Settings > Notifications** and click **Save** to update your preference. Every digest email also includes a link to change this setting. # Organizations Source: https://docs.signupbreeze.com/account/organizations Collaborate with others by creating and managing organizations. Organizations let you create shared workspaces where multiple people can manage events together. ## Switching organizations Every account belongs to at least one organization. The organization switcher sits at the top of the sidebar and shows the name of the one you're currently working in. Click the switcher to: * **Switch organizations** — select any organization you belong to. A checkmark marks your current one. You'll land on a valid page for that organization. * **Create a new organization** — click **New organization**, give it a name, and click **Create organization**. You'll be taken straight to the new organization's settings. Each organization keeps its own events, shifts, and registrations separate. Switching changes which organization's data you see across the app. ## Renaming an organization Go to **Settings > General**, update the **Organization name** field, and click **Save**. The name is displayed across the platform wherever your organization appears. On a calendar-driven organization, this field reads **Team name** instead. ## Availability Inviting others to collaborate is a paid feature. On the free plan, you'll see a prompt to join the waitlist when you visit **Settings > Organizations**. Once available on your plan, you'll be able to invite members and manage them in one shared organization. # Profile Settings Source: https://docs.signupbreeze.com/account/profile How to update your name, email, and timezone, and delete your account. Your profile settings let you manage your personal information. ## Updating your profile Go to **Settings > Profile** to update the following: * **Name** — your display name across SignUpBreeze * **Email** — the email address associated with your account * **Timezone** — used as the default timezone when you create new events Click **Save** to apply your changes. Your organization's name lives with the organization, not your profile. To change it, go to **Settings > General**. See [Organizations](/account/organizations). ## Deleting your account At the bottom of the Profile page, click the **Delete account** button to permanently delete your account and all of its resources. This action cannot be undone. # Signing In & Security Source: https://docs.signupbreeze.com/account/security How to sign in to SignUpBreeze with a one-time email code or a social account. SignUpBreeze is **passwordless** — there's no password to create, remember, or reset. You sign in with a one-time code sent to your email, or with a Google or Apple account. ## Signing in with an email code 1. Go to the sign-in page and enter your **email address**. 2. We email you a **6-digit code**. Open your inbox and copy it. 3. Enter the code to sign in. If this is your first time, you'll be asked for your name (and, optionally, an organization name) to finish creating your account — all in the same flow. Codes are single-use and expire after a short time. If yours doesn't arrive, check your spam folder or request a new one. Because there's no password, no one can sign in without access to your email. ## Signing in with Google or Apple Prefer one tap? Choose **Continue with Google** or **Continue with Apple** on the sign-in page. You'll authenticate with that provider and land back in SignUpBreeze. If you don't have an account yet, one is created for you using the name and email from that provider. You can use the email code and social sign-in interchangeably, as long as they share the same email address. ## Confirming your identity When you open a sensitive part of your account, SignUpBreeze may ask you to confirm it's really you by entering a fresh code emailed to you. This keeps your account protected even if you step away from a signed-in device. # Getting Help Source: https://docs.signupbreeze.com/account/support How to reach us, and what support is included on your plan. Every plan includes the documentation and the **Support** page at **Settings > Support**. What you can do from that page depends on your plan. ## Start with the documentation Most questions are answered here, and it is the fastest route to an answer on any plan. The Support page links straight to it. ## Support by plan | Plan | What's included | | ----------- | -------------------------------------------------- | | **Free** | Community support | | **Starter** | Email support through the in-app messenger | | **Pro** | Priority support — your requests are triaged first | ### Free Your plan includes community support. Our community portal is on the way; until it opens, the documentation is the place to start. If you need to reach us directly, direct support is included on Starter and Pro. Owners and admins can compare plans from **Settings > Billing**. ### Starter and Pro Open **Settings > Support** and choose **New message**. Pick a type — bug, question, feature request, or other — give it a subject, and describe what happened. We reply by email, and the conversation stays on the Support page so you can follow it and reply there too. Pro requests are triaged ahead of the queue. Priority is about the order we get to things, not a guaranteed response time. Only organization owners and admins can open and read support requests. Members see the documentation and are pointed at an owner or admin who can open a request on their behalf. ## Switching organizations Support requests belong to an organization, not to you personally. If you belong to more than one, switch to the right organization before opening a request — the Support page only shows that organization's conversations. # Authentication Source: https://docs.signupbreeze.com/api-reference/authentication How API tokens work, who they belong to, and when they expire. Every request needs a bearer token: ```bash theme={null} curl https://api.signupbreeze.com/v1/team \ --header "Authorization: Bearer YOUR_API_TOKEN" ``` There is no other way in. A browser session on signupbreeze.com does not authenticate an API request, even in the same browser. ## Creating a token Go to **Settings > API**. You need to be an owner or an admin. Grant only the [scopes](/api-reference/scopes) the integration needs. A token that only reads events cannot delete one. Pick 30, 90, 180, or 365 days. The default is 365. It is shown once, at creation, and never again. Store it somewhere your integration can read it and you cannot lose it. ## Tokens belong to the organization A token is not tied to the person who created it. If that admin leaves and their account is removed, the token keeps working and the integration keeps running. The practical consequence: anyone with admin access to the organization can see that a token exists and revoke it. Name your tokens after the integration that uses them, not after yourself. ## Every token expires There is no permanent token. The longest life you can choose is a year, and that is also the default. Plan for the renewal rather than discovering it. Create the replacement token, deploy it, then revoke the old one — nothing that uses the old token keeps working past its expiry date, which is shown in **Settings > API**. An expired token is refused with `401`, exactly like a revoked one. Your integration cannot tell the difference, and does not need to: both mean "get a new token". Expired tokens stay visible in settings for 90 days after they lapse, so there is a record to look at when someone asks why an integration stopped. ## Revoking a token Revoke it in **Settings > API**. It stops working immediately. Revoke a token the moment you suspect it has leaked — into a git history, a CI log, a screenshot, a pasted snippet. Creating a replacement takes a few seconds. ## Rate limits Your limit depends on your plan, and applies per token: | Plan | Rate limit | | ------- | ---------------- | | Free | 30 requests/min | | Starter | 120 requests/min | | Pro | 300 requests/min | Over that, the API answers `429` with a `Retry-After` header telling you how many seconds to wait. Give each integration its own token. Sharing one token across several tools means they share a rate limit, and a busy one can starve the others. # Errors Source: https://docs.signupbreeze.com/api-reference/errors What each status code means and what to do about it. Errors are JSON, and always carry a `message`: ```json theme={null} { "message": "Not found." } ``` ## Status codes | Code | Meaning | What to do | | ----- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | `401` | The token is missing, revoked, or expired. | Get a new token. Retrying will not help. | | `403` | The token is valid but lacks the required scope. | Create a token with the right [scopes](/api-reference/scopes). | | `404` | No such record — or it belongs to another organization. | See below. | | `422` | The request was understood but rejected. | Read `errors` for the specific fields, and fix the request. | | `429` | You have exceeded your plan's [rate limit](/api-reference/authentication#rate-limits) for this token. | Wait the number of seconds in `Retry-After`, then retry. | ## A 404 may mean "not yours" Everything a token can reach belongs to its organization. Asking for a record that belongs to a different organization returns `404`, not `403`. This is deliberate. A `403` would confirm the record exists, which would let anyone with a token check whether a given ID is real. So treat `404` as "this ID is not available to this token" rather than "this ID does not exist anywhere". In practice, a `404` on an ID you are sure about usually means the token belongs to a different organization than you thought. ## Validation errors A `422` lists the problem per field: ```json theme={null} { "message": "The start date field is required.", "errors": { "start_date": ["The start date field is required."] } } ``` Fix the request before retrying. Retrying an unchanged `422` gives the same `422`, and — unlike a successful write — a failed request is never [replayed from an idempotency key](/api-reference/idempotency), so the retry runs for real once the input is right. ## Plan limits Hitting a plan limit is an answer, not a fault. It comes back as `422` with an `error` field you can match on: ```json theme={null} { "message": "You have reached the maximum number of active events for your plan.", "error": "plan_limit_reached", "limit": { "feature": "max_active_events", "limit": 10 } } ``` The distinction matters for anything acting on its own: `plan_limit_reached` means "the request was fine, the plan is the obstacle" and calls for upgrading or archiving an old event — not for rewriting the request and trying again. ## Retrying safely `429` and `5xx` are worth retrying with backoff. `4xx` other than `429` will return the same answer until you change something. Whenever you retry a write, send the same [`Idempotency-Key`](/api-reference/idempotency) you used the first time. That way a retry after a timeout — where the write may well have succeeded before the connection dropped — replays the original response instead of creating a duplicate. # Create an event Source: https://docs.signupbreeze.com/api-reference/events/create-an-event https://api.signupbreeze.com/openapi.yaml post /v1/events Creates an event and, optionally, all of its shifts in the same call — which is usually what you want, since an event with no shifts has nothing to sign up for. Send an `Idempotency-Key` header. Repeating a create with the same key replays the original response instead of creating a second event. Requires the `events:write` scope. # Delete an event Source: https://docs.signupbreeze.com/api-reference/events/delete-an-event https://api.signupbreeze.com/openapi.yaml delete /v1/events/{id} Deletes the event and its shifts. Everyone with a confirmed signup is emailed that it was cancelled, so this is not a quiet operation — unpublish instead if you only want it out of sight. Requires the `events:write` scope. # Duplicate an event Source: https://docs.signupbreeze.com/api-reference/events/duplicate-an-event https://api.signupbreeze.com/openapi.yaml post /v1/events/{event_id}/duplicate Copies the event, its shifts, and its signup questions to a new start date. Shift times shift along with it, keeping their time of day. Signups are **not** copied. The copy is always created unpublished, so it does not count against your plan's active-event limit until you publish it. This is the endpoint to use for "set up the same signup for the next eight games". Requires the `events:write` scope. # Get an event Source: https://docs.signupbreeze.com/api-reference/events/get-an-event https://api.signupbreeze.com/openapi.yaml get /v1/events/{id} Returns one event with its shifts and how full each one is. To ask only "what still needs people?", use the coverage endpoint instead — it answers that in one call. Requires the `events:read` scope. # Get an event's coverage Source: https://docs.signupbreeze.com/api-reference/events/get-an-events-coverage https://api.signupbreeze.com/openapi.yaml get /v1/events/{event_id}/coverage Answers "what still needs people?" in one call: how full every shift is, plus a summary of the event as a whole. Prefer this over listing shifts and signups separately. Working it out from those takes several requests and some arithmetic; this gives you the answer, which matters when the caller is an agent deciding what to do rather than a page rendering a table. `hours_until_start` is negative once the event has begun, so `slots_unfilled > 0` together with a small positive value is the "chase people now" signal. Requires the `events:read` scope. # List events Source: https://docs.signupbreeze.com/api-reference/events/list-events https://api.signupbreeze.com/openapi.yaml get /v1/events Returns the organization's events, soonest-starting last. Cursor paginated: follow `meta.next_cursor` rather than assuming page numbers. Requires the `events:read` scope. # Update an event Source: https://docs.signupbreeze.com/api-reference/events/update-an-event https://api.signupbreeze.com/openapi.yaml patch /v1/events/{id} Send only the fields you are changing; anything omitted keeps its current value. Publish an event by sending `is_published: true`. Changing the title, location, or dates emails confirmed volunteers about a minute later. Pass `notify_volunteers: false` to correct a typo without mailing everyone. Requires the `events:write` scope. # Idempotency Source: https://docs.signupbreeze.com/api-reference/idempotency Send an Idempotency-Key so a retried write happens once, not twice. Retries happen. A request times out, a connection drops, or an agent decides it never got an answer — and the same call goes out again. Without protection, "create the snack signup for Saturday" run twice creates two events. Send an `Idempotency-Key` header on every write and that stops being possible. ```bash theme={null} curl --request POST https://api.signupbreeze.com/v1/events \ --header "Authorization: Bearer YOUR_API_TOKEN" \ --header "Idempotency-Key: a7f3c1e0-2b44-4f6e-9c1d-8e5b0a2d7f31" \ --header "Content-Type: application/json" \ --data '{"title": "Fall Festival", "start_date": "2026-09-12", "timezone": "America/Los_Angeles"}' ``` ## How it works The first request with a given key runs normally. If it succeeds, its response is stored for 24 hours. Any later request with the same key gets that stored response replayed — the same status code, the same body — and nothing happens on the server. Replayed responses carry an `Idempotent-Replay: true` header, so you can tell the two apart if you care. After 24 hours the key is forgotten and the same key would run for real again. That is far longer than any sensible retry window. ## Choosing keys Use a UUID, one per logical operation. Generate it before the first attempt and reuse the same value for every retry of that same operation. Do not reuse a key across different operations. Keys are matched together with the method and path, so `POST /v1/events` and `POST /v1/events/{id}/duplicate` with the same key do not collide — but two different events created with one key will, and the second will silently return the first one's response. Keys are scoped to your token. Another organization using the same key never sees your response. ## Only successful writes are replayed If a write fails — bad input, a missing scope, a plan limit — nothing is stored. Fix the problem and retry with the same key, and the request runs for real. Reads ignore the header entirely. `GET` requests change nothing, so there is nothing to protect against. ## Should you always send one? Yes, on writes. It costs a header, and it is the difference between a network blip being invisible and a duplicate event that someone has to find and delete. This matters most when the caller is an AI agent, which retries far more readily than a person clicking a button. # API Introduction Source: https://docs.signupbreeze.com/api-reference/introduction Manage events, shifts, and signups programmatically — from your own scripts, an automation platform, or an AI agent. The SignUpBreeze API lets other software do what you would otherwise do by hand: create an event, add shifts, check what still needs volunteers, and read who signed up. ``` https://api.signupbreeze.com/v1 ``` API access is included on every plan — plans differ by [rate limit](/api-reference/authentication#rate-limits), not by access. Create a token under **Settings > API** in your organization. ## What you can do Events and shifts are read-write. You can create an event, add and resize its shifts, duplicate it for next month, publish it, and delete it. Signups are read-only. You can see who has registered for a shift, but you cannot add or cancel a registration through the API — volunteers sign up through the public event page, and that is deliberately the only way in. The endpoint you probably want first is **coverage**. It answers "what still needs people?" for an entire event in one call, so you don't have to list shifts and registrations and do the arithmetic yourself. ## Before you start Four rules apply to every endpoint. Each has its own page: Every request carries a bearer token. Tokens belong to the organization and expire. Each token grants a specific set of permissions, and no more. Send an `Idempotency-Key` on writes so a retry doesn't create a second event. Collections are cursor paginated. Follow `meta.next_cursor`. ## Your first request ```bash theme={null} curl https://api.signupbreeze.com/v1/events \ --header "Authorization: Bearer YOUR_API_TOKEN" \ --header "Accept: application/json" ``` ## The OpenAPI spec The reference pages here are generated from a machine-readable spec, published at the root of the API host: ``` https://api.signupbreeze.com/openapi.yaml https://api.signupbreeze.com/openapi.json ``` Point Postman, Insomnia, an SDK generator, or an AI agent at either URL. The spec is generated from the code that serves the API, so it describes what is actually deployed rather than what someone remembered to write down. # Get the current organization Source: https://docs.signupbreeze.com/api-reference/organization/get-the-current-organization https://api.signupbreeze.com/openapi.yaml get /v1/team Returns the organization the request's token was issued to. Tokens belong to an organization rather than to a person, so there is no id to pass — a token can only ever see its own. Requires the `team:read` scope. # Pagination Source: https://docs.signupbreeze.com/api-reference/pagination Collections are cursor paginated. Follow meta.next_cursor rather than counting pages. Every endpoint that returns a list is paginated with a cursor. There are no page numbers, and asking for "page 3" is not something the API can answer. ## Reading a page A collection response looks like this: ```json theme={null} { "data": [ { "id": "019fdf11-4bb2-7039-92c3-9e7f1ee711a1", "title": "Fall Festival" } ], "meta": { "next_cursor": "eyJpZCI6IjAxOWZkZjExIn0" } } ``` `meta.next_cursor` is the whole mechanism. Pass it back as the `cursor` query parameter to get the next page: ```bash theme={null} curl "https://api.signupbreeze.com/v1/events?cursor=eyJpZCI6IjAxOWZkZjExIn0" \ --header "Authorization: Bearer YOUR_API_TOKEN" ``` When `next_cursor` is `null`, you have reached the end. That is the only reliable stop condition — a short page is not one. ## Fetching everything ```javascript theme={null} async function allEvents(token) { const events = []; let cursor = null; do { const url = new URL("https://api.signupbreeze.com/v1/events"); if (cursor) url.searchParams.set("cursor", cursor); const response = await fetch(url, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" }, }); const page = await response.json(); events.push(...page.data); cursor = page.meta.next_cursor; } while (cursor); return events; } ``` ## Page size Pages hold 25 records by default. Ask for fewer with `per_page`: ``` GET /v1/events?per_page=10 ``` The maximum is 100. Ask for more and you get 100 — an integration that wants everything at once should follow cursors, not request a page large enough to time out. ## Why cursors Cursor pagination stays correct while the data underneath is changing. With numbered pages, an event created while you are paging shifts every later record down one, and you either see something twice or miss it entirely. A cursor points at a position in the list rather than counting from the start, so that cannot happen. The tradeoff is that you cannot jump to an arbitrary page or know the total count in advance. For the things this API returns, that has never been the useful question. Treat a cursor as opaque. It is a token describing a position, not a record ID, and its format may change. # Scopes Source: https://docs.signupbreeze.com/api-reference/scopes What each permission grants, and how to choose the smallest set an integration needs. Every token carries a set of scopes. Each endpoint requires one, and a request whose token lacks it is refused with `403` — no matter who created the token or what plan the organization is on. ## Available scopes | Scope | Grants | | -------------------- | ------------------------------------------------------- | | `team:read` | Read the organization name, slug, and settings. | | `events:read` | List events and read their details, including coverage. | | `events:write` | Create, update, duplicate, publish, and delete events. | | `slots:read` | List shifts and read their capacity. | | `slots:write` | Create, update, and delete shifts. | | `registrations:read` | See who has signed up, including their name and email. | Write scopes do not imply the matching read scope. An integration that creates an event and then reads it back needs both `events:write` and `events:read`. There is no `registrations:write`. Signups are created through the public event page, and the API deliberately offers no way around that. ## Choosing scopes Grant the least that works. Two cases cover most integrations: **A dashboard or a reporting script** needs `events:read`, `slots:read`, and `registrations:read`. It can see everything and change nothing, so a leaked token is an information problem rather than a destructive one. **An agent that manages events for you** needs the write scopes as well. Be deliberate here: `events:write` includes deleting an event, and deleting an event removes its shifts and signups with it. `registrations:read` exposes volunteer names and email addresses. Grant it only to integrations that genuinely need to contact or count people, and treat the token as carrying personal data. ## Scopes are a stable contract These exact strings are what your token carries and what your code checks. They will not be renamed or repurposed — a scope that changed meaning would silently change what an already-issued token is allowed to do. New scopes may be added as the API grows. ## When a request is refused A `403` means the token is valid but lacks the scope the endpoint requires. Check which scopes the token was granted in **Settings > API**; you cannot add a scope to an existing token, so create a replacement with the right set. A `404` on a record that you know exists means something different — see [errors](/api-reference/errors). # Add a shift Source: https://docs.signupbreeze.com/api-reference/shifts/add-a-shift https://api.signupbreeze.com/openapi.yaml post /v1/events/{event_id}/slots Adds a shift to an existing event. Times are wall-clock (`14:30`) and are read in the event's own timezone — do not send an offset or a date. Requires the `slots:write` scope. # Delete a shift Source: https://docs.signupbreeze.com/api-reference/shifts/delete-a-shift https://api.signupbreeze.com/openapi.yaml delete /v1/slots/{id} Deletes the shift. Anyone with a confirmed signup on it is emailed that it was cancelled. Requires the `slots:write` scope. # List an event's shifts Source: https://docs.signupbreeze.com/api-reference/shifts/list-an-events-shifts https://api.signupbreeze.com/openapi.yaml get /v1/events/{event_id}/slots Returns every shift on the event in running order, with how full each one is. Not paginated: events have shifts, not thousands of them. Requires the `slots:read` scope. # Update a shift Source: https://docs.signupbreeze.com/api-reference/shifts/update-a-shift https://api.signupbreeze.com/openapi.yaml patch /v1/slots/{id} Send only the fields you are changing. Changing the time or location emails the volunteers already signed up; pass `notify_volunteers: false` to suppress that. Lowering `capacity` below the number already signed up does not remove anyone — the shift simply reports as over-full until someone cancels. Requires the `slots:write` scope. # List an event's signups Source: https://docs.signupbreeze.com/api-reference/signups/list-an-events-signups https://api.signupbreeze.com/openapi.yaml get /v1/events/{event_id}/registrations Returns the event's signups oldest first, so paging through them follows the order people actually signed up. Cursor paginated. Includes cancelled signups by default — filter with `status` if you only want the people who are still coming. Requires the `registrations:read` scope. # Changelog Source: https://docs.signupbreeze.com/changelog New features, improvements, and milestones for SignUpBreeze. ### Volunteers are told when an organization closes When you delete an organization or a sports team, everyone signed up for its upcoming events now gets an email letting them know those events are cancelled and their spot has been released. People on a waitlist are included too, so nobody is left waiting for a spot that will never open. Each person gets **one email** listing every event they were on, rather than a separate message per event. A volunteer signed up for a whole season of games hears about it once. ### An API for your organization SignUpBreeze now has a public API, so other software can do what you would otherwise do by hand — create an event, add and resize its shifts, check what still needs volunteers, and read who signed up. Point your scripts, your automation platform, or an AI agent at it. Create a token under **Settings > API**, granting only the scopes the integration needs, and start with the [API introduction](/api-reference/introduction). ### Get help without leaving the app There's a new **Support** page at [Settings > Support](/account/support). On paid plans you can open a request, describe what happened, and follow the whole conversation in one place. We reply by email, and every reply shows up in the thread too. ### Support on every plan Every plan now names what support it includes — **Community** on Free, **Email** on Starter, and **Priority** on Pro, where your requests are triaged first. The documentation and the Support page are open to everyone, whatever plan you're on. See the [plan comparison](/account/billing) or [how to get help](/account/support). ### Sharper organization logos Logos are now resized and optimized when you upload them, so they load faster and look right everywhere. Uploads that used to fail on larger images now go through. ### Starter and Pro plans SignUpBreeze now has paid plans for growing teams and organizations — **Starter** at \$9/mo and **Pro** at \$29/mo — each with a **30-day free trial**. See what's included and subscribe from [Settings > Billing](/account/billing). ### Team collaboration On paid plans, invite teammates into your organization and manage their roles from **Settings > Members**, so more than one person can run your events. ### Custom questions Collect exactly what you need at sign-up — t-shirt sizes, dietary needs, emergency contacts, and more. Build a [reusable question library](/organizers/custom-questions) and attach questions to any event. ### Waitlists Let volunteers [join a waitlist](/organizers/managing-waitlists) when a shift is full. When a spot opens, the next person in line is offered it — automatically or by you. ### Configurable reminders Fine-tune [when shift reminders send](/organizers/reminders) — set your own times, add or remove reminders, or turn them off — as a team-wide default or per event. ### Export registrations Download your event's registrations as a CSV, including custom-question answers, from the **Shifts & Registrations** tab. ### Team calendars for sports Coaches and team managers using **PlayMetrics** can connect their schedule so every game gets its own sign-up page for snacks and drinks — kept in sync automatically. [Reach out](mailto:hello@signupbreeze.com) to get set up. ### Welcome emails New organizers now get a welcome email, plus friendly nudges when they publish their first event and receive their first sign-up. ### Refreshed look An updated color palette across the app for a cleaner, brighter feel. ### Multiple organizations Run separate workspaces from one account. Switch between your organizations from the sidebar, or create a new one in a couple of clicks. ### New email provider Transactional emails now send through Resend for improved deliverability and reliability. ### Refreshed Event UI for mobile The event management interface has been refactored for a cleaner, more responsive experience on small screens and touch devices. ### Earlier shift reminders Reminder emails now go out 48 hours before a shift, giving volunteers more lead time. ### Documentation site Comprehensive documentation is now live at [docs.signupbreeze.com](https://docs.signupbreeze.com). Covers getting started, organizer guides, volunteer guides, and account settings. ### FAQ page A new [FAQ page](https://signupbreeze.com/faq) answers common questions about creating events, managing signups, and how SignUpBreeze works — right on the main site. ### QR codes for events Every event now has an automatically generated QR code. Download it as a PNG for flyers, posters, and bulletins. Volunteers scan and sign up instantly. ### Notification settings New settings page to control which email notifications you receive, including a daily digest of sign-up activity. ### Dark mode Full dark mode support across the entire app. Set it in Settings > Appearance, or let it follow your system preference. ### Social login Sign in with Google or Apple, alongside signing in with a one-time code sent to your email — no password required. ### Public event pages Every event gets a clean, mobile-optimized public page with a shareable URL. Volunteers see shift availability and sign up without creating an account. ### Magic link registration Volunteers sign up with just their name and email. A secure magic link is emailed for confirmation and future reference — no password needed. ### Event management Create, edit, and organize events with shifts. Full dashboard for tracking volunteer signups across all your events. ### SignUpBreeze launch Initial release of SignUpBreeze — a modern, mobile-first, ad-free alternative to SignUpGenius. # What is SignUpBreeze? Source: https://docs.signupbreeze.com/getting-started/introduction A modern, mobile-first volunteer signup platform that's clean, fast, and ad-free. SignUpBreeze is a modern alternative to legacy signup tools like SignUpGenius. It's built for organizers who want a clean, ad-free experience and volunteers who want to sign up in seconds from their phone. ## Who it's for **Organizers** create events with time-based shifts and share a single link. No spreadsheets, no back-and-forth emails. **Volunteers** tap a link, pick a shift, and they're signed up. No account required — magic links handle everything securely. ## What makes it different * **Mobile-first** — designed for phones first, because that's where volunteers are when they sign up. * **Ad-free** — no banner ads, no pop-ups, no distractions. Ever. * **No account required for volunteers** — magic links let people sign up without creating a password or remembering yet another login. * **QR codes** — every event gets a scannable QR code for flyers, bulletins, and handouts. ## How it works 1. An organizer creates an event and adds shifts (date, time, number of spots). 2. They share the public event link or QR code. 3. Volunteers visit the page, pick a shift, and confirm with their name and email. 4. Everyone gets a confirmation — the volunteer via magic link, the organizer on their dashboard. That's it. No friction, no clutter. # Key Concepts Source: https://docs.signupbreeze.com/getting-started/key-concepts The core building blocks of SignUpBreeze — organizations, events, slots, registrations, and magic links. Understanding a few core concepts will help you get the most out of SignUpBreeze. ## Organizations An organization is the workspace that owns everything else — its events, slots, registrations, members, and billing. Every account belongs to at least one, and you can belong to several: a PTA, a church group, a school committee, a club. Switching organizations changes which data you see across the app. See [Organizations](/account/organizations) for switching, creating, and renaming. ## Events An event is the thing you're organizing volunteers for — a bake sale, a park cleanup, a weekly tutoring session, a conference. Each event has a title, description, location, and one or more shifts. Every event gets a unique public URL (like `signupbreeze.com/e/spring-cleanup`) and a QR code that volunteers can scan to sign up. ## Slots (Shifts) Slots are the individual time blocks within an event that volunteers sign up for. Each slot has a date, start time, end time, and a maximum number of spots. For example, a "Saturday Park Cleanup" event might have three slots: 8am-10am, 10am-12pm, and 12pm-2pm, each with 10 spots. ## Registrations A registration is a volunteer's commitment to a specific slot. When someone signs up for a shift, a registration is created linking them to that slot. Organizers can view, manage, and export registrations from their event dashboard. ## Magic Links Magic links are secure, tokenized URLs sent to volunteers after they sign up. Instead of requiring an account with a username and password, volunteers use these links to view their confirmation, manage their registration, or return to the event. This is what makes SignUpBreeze frictionless — volunteers never need to create an account or remember a password. # Quickstart Source: https://docs.signupbreeze.com/getting-started/quickstart Create your first event in under 5 minutes. This guide walks you through creating an account, setting up your first event, and sharing it with volunteers. ## Step 1: Create your account Go to [signupbreeze.com](https://signupbreeze.com) and sign up. You can register with your email or use Google or Apple sign-in. After verifying your email, you'll land on your dashboard. ## Step 2: Create an event From your dashboard, click **Create Event**. Select from a predefined template to get started quickly, or click **Start from scratch** to build your event from a blank slate. Choose a Template screen showing predefined event templates organized by category Fill in the basics: * **Title** — what you're organizing (e.g., "Spring Bake Sale") * **Description** — details volunteers need to know * **Location** — where it's happening * **Date and time** — when it starts and ends ## Step 3: Add shifts If you selected a template, shifts are added automatically based on the template's structure — you can adjust them as needed. If you started from scratch, you'll need to add shifts manually. Each shift needs a date, start time, end time, and the number of volunteer spots available. You can add as many shifts as you need — morning and afternoon slots, different days, different roles. ## Step 4: Publish and share your event Before you can share your event, enable the **Publish immediately** toggle on the event page. Once published, your event gets a unique public URL and a QR code. Event Overview showing share the link via email, text, social media, or print the QR code on a flyer Share the link via email, text, social media, or print the QR code on a flyer. Volunteers visit the page, pick a shift, enter their name and email, and they're signed up. No account needed on their end. ## Step 5: Manage signups As volunteers register, navigate to your event and select the **Shifts & Registrations** tab. From there you can view who signed up for each shift and manage registrations as needed. That's it — you're up and running. # Creating Events Source: https://docs.signupbreeze.com/organizers/creating-events How to create and configure events in SignUpBreeze using templates or from scratch. Events are the core of SignUpBreeze. Each event represents something you need volunteers for — a bake sale, park cleanup, watch party, fundraiser, or anything else. ## Starting a new event From your dashboard or the Events page, click the **+ Create Event** button. You'll see the template picker. Template picker showing event templates organized by category ### Using a template SignUpBreeze comes with a library of predefined templates organized by category: * **School & Education** — field day, classroom volunteer, book fair * **Sports & Recreation** — tournament, practice schedule, team events * **Community & Church** — food drive, worship service, community cleanup * **Family & Social** — watch party, engagement party, baby shower * **Workplace & Business** — team building, office events * **Events & Celebrations** — fundraiser gala, holiday party, graduation Each template includes a cover image, description, pre-configured shifts, and an event badge. Click any template to create an event based on it — the title, description, shifts, cover image, and appearance settings are all pre-filled for you. ### Starting from scratch Click the **Start from scratch** button in the top right to create a blank event. You'll fill in everything yourself. ## Event details Whether you chose a template or started from scratch, you can edit all event details from the **Details** tab: Event Details form showing title, description, location, dates, timezone, and publish toggle * **Title** (required) — the name of your event * **Description** — what volunteers need to know (what to bring, expectations, parking, etc.) * **Location** — a physical address or meeting URL (placeholder hint: "e.g. Centennial Park Main Fields or meeting URL") * **Start Date** (required) — when the event begins * **End Date** — when it ends (can be the same day for single-day events) * **Timezone** — defaults to your local timezone, can be changed via dropdown * **Published** — toggle to make the event visible on its public page Click **Save** to apply your changes. ## Publishing your event Events are unpublished by default. When you're ready to share your event with volunteers, go to the **Details** tab and turn on the **Published** toggle, then click **Save**. Once published, a green "Published" badge appears on the event overview, and the public event page becomes accessible to anyone with the link. # Custom Questions Source: https://docs.signupbreeze.com/organizers/custom-questions Build a reusable library of sign-up questions and attach them to your events. Custom questions let you collect extra information when volunteers sign up — t-shirt sizes, dietary needs, emergency contacts, and more. You build a question once in your organization's library, then reuse it across as many events as you like. ## Availability Custom questions are available on paid plans. The number you can add per event depends on your plan: * **Free** — not available. * **Starter** — up to 3 questions per event. * **Pro** — up to 10 questions per event. ## Building your question library Go to **Settings > Questions** to manage your organization's question library. Click **Add Question** and set: * **Question** — the label volunteers see, such as "What is your t-shirt size?" * **Type** — Text, Textarea, Select (single choice), Multi select (multiple choices), or Checkbox. * **Options** — for Select and Multi select, add the choices volunteers can pick from. * **Required** — whether volunteers must answer this question to sign up. Drag questions by the handle to reorder them. To change a question later, click the **pencil** icon; to delete it, click the **trash** icon. Deleting a question removes it from every event it's attached to. Editing a question updates it everywhere it's used. ## Adding questions to an event Open an event and select the **Questions** tab. Your library questions are listed here. 1. **Select questions** — check the questions you want on this event, up to your plan's limit. A counter shows how many you've used (for example, "2 of 3 questions used"). 2. **Set the order** — use the up and down arrows to arrange how questions appear on the sign-up form. 3. **Override required/optional** — toggle a question between **Required** and **Optional** for this event, regardless of its library default. 4. **Save** — click **Save** to apply. Your library is empty? You'll be prompted to create questions in **Settings > Questions** first. ## How volunteers answer Once attached, questions appear on the event's public sign-up form. Volunteers answer them as part of signing up, and again when accepting a spot from a waitlist. You'll see each volunteer's answers next to their registration on the **Shifts & Registrations** tab. # Managing Shifts Source: https://docs.signupbreeze.com/organizers/managing-shifts How to add, edit, and organize shifts within your events. Shifts are the individual roles or time blocks within an event that volunteers sign up for. Each shift has a name, a capacity, and a status. ## Viewing shifts Navigate to your event and select the **Shifts & Registrations** tab. You'll see all shifts listed with their registrations. Shifts and Registrations page showing shift names, status badges, fill counts, and registration tables Each shift shows: * **Shift name** — e.g. "Food & Snacks", "Setup", "Cleanup Crew" * **Status badge** — "Open" (accepting signups) or "Full" * **Fill count** — e.g. "1/5 filled" with a progress bar * **Registrations table** — volunteers who signed up, with their name, email, status, and registration date ## Adding a shift Click the **+ Add Shift** button in the top right of the Shifts & Registrations page. Fill in the shift name and the number of volunteer spots available. If you created your event from a template, shifts are already pre-configured based on the template. For example, a "Watch Party" template comes with "Food & Snacks" and "Setup" shifts already created. ## Editing a shift Click the **Edit** button next to any shift to update its name or capacity. Changes are saved immediately. ## Deleting a shift Click the **Delete** button next to a shift to remove it. This will also remove any registrations associated with that shift. ## Shift status Shifts are automatically marked as **Open** when they have available spots and **Full** when all spots are taken. On the public event page, full shifts no longer show a "Sign Up" button. ## Filtering Use the filter icon at the top of the Shifts & Registrations page to narrow down what you see. # Managing Signups Source: https://docs.signupbreeze.com/organizers/managing-signups How to view and manage volunteer registrations for your events. Once volunteers start signing up for your event, you can track and manage their registrations from the **Shifts & Registrations** tab. ## Viewing registrations Navigate to your event and select the **Shifts & Registrations** tab. Registrations are grouped by shift. For each registration, you'll see: * **Name** — the volunteer's name * **Email** — their email address (clickable) * **Status** — "Confirmed" or other status badges * **Registered** — the date and time they signed up ## Removing a registration Click the **X** button to the right of any registration to remove a volunteer from that shift. This frees up the spot for someone else. ## Exporting registrations (CSV) On paid plans, you can download your event's registrations as a spreadsheet. From the **Shifts & Registrations** tab, open the actions menu and choose **Export CSV**. The file includes each volunteer's status, name, email, shift, sign-up time, and their answers to any custom questions on the event. CSV export is a paid feature. On the free plan, the option isn't available. ## Monitoring capacity Each shift shows a fill count (e.g. "2/3 filled") with a visual progress bar. This gives you a quick sense of which shifts still need people and which are close to full. ## Event overview summary For a high-level view, go to the **Overview** tab. The Summary section shows three cards: * **Shifts** — total number of shifts in the event * **Registrations** — total number of signups across all shifts * **Capacity** — total spots available across all shifts This gives you a snapshot without needing to dig into individual shifts. # Managing Waitlists Source: https://docs.signupbreeze.com/organizers/managing-waitlists Let volunteers join a waitlist when shifts fill up, and manage who gets promoted. Waitlists let volunteers line up for shifts that are already full. When a spot opens, the next person in line is offered the spot — automatically or by you. ## Availability Waitlist management is a paid feature. On the free plan, the **Waitlist** tab shows a prompt to upgrade, and the settings are locked. Once available on your plan, you can enable waitlists per event and manage the line from the **Shifts & Registrations** tab. ## Enabling a waitlist Open your event and select the **Waitlist** tab. Turn on **Enable waitlist**, then configure: * **Maximum waitlist size per shift** — how many volunteers can wait for each shift (1–50). * **Auto-promote** — automatically offer an open spot to the next person in line. Leave this on for a hands-off waitlist, or turn it off to promote people yourself. * **Acceptance window (hours)** — how long a promoted volunteer has to accept before the offer moves on (1–72). Click **Save**. Once enabled, full shifts on your public event page show a **Join Waitlist** button instead of being closed off. The **Waitlist** tab also shows a live count of how many volunteers are **Waiting** and how many have a **Pending** offer. ## Managing the waitlist Waitlisters appear under each shift on the **Shifts & Registrations** tab, in line order. For each person you can: * **Promote** — offer the open spot to that person. They're notified and have until the end of the acceptance window to accept. * **Reorder** — use the up and down arrows to move someone earlier or later in line. * **Remove** — take someone off the waitlist entirely. A waitlister's status shows as **Waiting** or **Offered** (a promotion is pending their response). With **Auto-promote** on, spots are offered automatically as they open. Manual **Promote** is there for when you want to choose who gets the next spot. ## If your plan changes If your plan no longer includes waitlists, any existing waitlists stay visible so you can wind them down. You can still **remove** people, but **promoting** and **reordering** are disabled until you're on an active plan again. # Reminders Source: https://docs.signupbreeze.com/organizers/reminders How volunteer shift reminders work and how to customize when they send. SignUpBreeze automatically emails volunteers to remind them about the shifts they've signed up for, so fewer people forget to show up. ## Default reminders On every plan, volunteers receive reminders on a recommended schedule: **1 week**, **48 hours**, and **2 hours** before each shift. You don't have to set anything up — reminders send on their own. ## Customizing your schedule On paid plans, you can change when reminders send — add your own times, remove ones you don't want, or turn reminders off entirely. ### Set an organization-wide default Go to **Settings > Reminders** to set the default schedule for all new events in your organization. * Leave **Use the recommended schedule** on to keep the 1 week / 48 hours / 2 hours default. * Turn it off to build your own schedule. Add a row for each reminder — choose a number and a unit (**minutes**, **hours**, **days**, or **weeks**) **before the shift** — then click **Save**. Each reminder must fall between **30 minutes** and **8 weeks** before a shift. Your plan sets how many reminders you can add per schedule. Remove every row to send **no** reminders by default. New events will inherit whatever you set here unless they define their own schedule. ### Override for a single event Open an event and select the **Reminders** tab. * Leave **Use organization default schedule** on to follow your organization's default. * Turn it off to set a **custom schedule for this event**. This replaces the default reminders for that event only. Click **Save** to apply. As with the organization default, an empty schedule means that event sends no reminders. # Sharing Events Source: https://docs.signupbreeze.com/organizers/sharing-events How to share your event with volunteers using links, QR codes, and social sharing. Getting your event in front of volunteers is easy. The event overview page has everything you need to share. Event Overview showing public link, social sharing buttons, QR code, and event summary ## Public event link Every published event has a unique public URL displayed prominently on the **Overview** tab under "Public Link." Click the copy icon next to the URL to copy it to your clipboard. The URL looks like: `signupbreeze.com/e/watch-party-m2EiqL` Share this link via email, text message, social media, group chats, newsletters — anywhere you communicate with your volunteers. ## Social sharing buttons Below the public link, you'll find one-click sharing buttons for: * **Facebook** — share directly to Facebook * **Twitter / X** — post to X (formerly Twitter) * **Bluesky** — share on Bluesky * **Email** — open a pre-filled email with the event link ## QR codes Every event automatically gets a QR code, shown on the right side of the Overview tab under "QR Code for Print." The default size is 500x500 pixels — sized for flyers and posters. Click the QR code to download it as a PNG image. Use it on printed materials like flyers, bulletin boards, church bulletins, or posters. When scanned, it takes the volunteer directly to your event's signup page. ## Event preview Click the **View** button in the top right of the event overview to see exactly what volunteers will see on the public event page. This lets you verify the cover image, description, shift list, and overall appearance before sharing. ## Tips for sharing * **Keep the event description concise** — volunteers are often reading on their phones * **Include the key details upfront** — date, location, what they're volunteering for * **Use QR codes on printed materials** — they make it effortless for people to sign up on the spot * **Use the social sharing buttons** — one click and the link is posted ## Customizing appearance before sharing Before sharing, visit the **Appearance** tab to customize how your event looks to volunteers: Appearance settings showing theme, cover image, category, badge, and a live preview * **Theme** — choose a color scheme for the public event page (e.g. "Ocean Blue") * **Cover Image** — select from built-in illustrations that match your event type, or clear it to show a colored gradient instead * **Event Category** — sets the event category (cover image, theme, and badge are managed separately) * **Event Badge** — a text overlay displayed on the cover image (e.g. "WATCH PARTY") A live preview on the right side of the Appearance tab shows exactly how the public page will look as you make changes. Click **Save** when you're happy with the result. # Team Calendars Source: https://docs.signupbreeze.com/organizers/team-calendars Connect a PlayMetrics calendar so your team's games appear automatically, with parents signing up for drinks and snacks. Team calendars are built for sports coaches and team managers. Connect your team's PlayMetrics calendar once, and SignUpBreeze keeps a sign-up page in sync for every game — so parents can claim drinks and snacks without you lifting a finger for the rest of the season. You paste your calendar link, choose your team's look, and share a single page. New games appear on their own, schedule changes flow through automatically, and you never have to create an event by hand. A team calendar replaces manual event creation. When you set up a calendar-driven team, your games are managed entirely by the feed — the usual "Create event" tools are hidden for that team. ## Getting started Team calendars are built for sports teams and clubs that manage their schedule in **PlayMetrics**. To get set up, reach out to us at [hello@signupbreeze.com](mailto:hello@signupbreeze.com) and we'll enable a calendar-driven team for you. Once your team is ready, you're taken straight to the **Calendar** settings to connect your feed — covered next. ## Connecting your PlayMetrics feed Open your team's settings and select the **Calendar** tab. Fill in: * **PlayMetrics calendar URL** — paste your team's calendar link. The dedicated games-only feed is recommended, but any of your team's PlayMetrics calendar links will work — SignUpBreeze always filters down to games. * **Sport** — choose your sport. * **Theme** — pick one of the preset color themes. It's applied to your public team page and to every game's sign-up page. * **Team logo** — upload a logo to show at the top of your team page. Click **Connect & sync**. SignUpBreeze immediately checks the feed and pulls in your games. If the link isn't a valid calendar URL, you'll see an error and nothing is saved — just fix the link and try again. In PlayMetrics, open your team's schedule and look for the calendar subscription (`.ics`) link. Copying the games-only feed keeps practices out from the start, though SignUpBreeze ignores practices either way. ## How games appear Each game in your feed becomes its own event: * The title reads **vs Opponent** for home games and **@ Opponent** for away games. * A **Game** badge marks it as a game. * The date, time, location, and details (arrival time, uniform, venue) come straight from the feed. * Two sign-up slots are added automatically — **Drinks** and **Snacks** — each for one person. Practices and other non-game items on the feed are skipped, so your team page stays focused on games. ## Keeping games in sync Your calendar stays current on its own: * **Daily sync** — SignUpBreeze checks your feed every day and applies any changes. * **Sync now** — need an update right away? Use the **Sync now** button on the Calendar settings tab. When something changes in the feed, SignUpBreeze updates the matching game in place: * **Reschedules** — if a game's time or location changes, the event is updated and any parents who already signed up are emailed about the change. Their sign-ups are kept. * **Cancellations** — if a game drops off the feed, its page is taken down and signed-up parents are notified. If that game later returns to the feed, its page comes back automatically. The **Calendar** tab shows when your feed last synced so you can confirm everything is up to date. A feed that briefly returns no games won't wipe your schedule — SignUpBreeze leaves your games in place and flags the anomaly instead of cancelling everything. ## Sharing your team page Your team has one public page that lists all upcoming games. Share its link at the start of the season and you're done — it always reflects the latest schedule. The URL looks like: `signupbreeze.com/t/atlanta-fire-bu15` Send it however you reach your team's families — group chat, email, a team app, or a season welcome message. ### What parents see On the team page, families see your logo and team name, then every upcoming game with its date, time, opponent, and venue. Each game shows whether **Drinks** and **Snacks** are still open or who's already bringing them. To sign up, a parent taps a game, which opens its sign-up page, and claims a slot — no account needed. They confirm with their name and email and get a magic link to manage their sign-up later, exactly like any other SignUpBreeze event. Past games drop off the page automatically, so the list always shows what's coming up next. # Magic Links Source: https://docs.signupbreeze.com/volunteers/magic-links How magic links work and how to use them to manage your signup. Magic links are secure, one-time-use URLs that let you access your registration without needing a password or account. ## How they work When you sign up for a shift, SignUpBreeze sends you an email containing a magic link. This link is unique to your registration and is cryptographically signed so it can't be guessed or tampered with. Clicking the link takes you directly to your confirmation page — no login required. ## What you can do with a magic link * **View your confirmation** — see which shift you signed up for, the event details, and the organizer's info. * **Return anytime** — bookmark or save the email to come back to your confirmation whenever you need it. ## Security Magic links are tied to your specific registration. They can't be used to access anyone else's signup or modify other people's registrations. The tokens are long, random, and cryptographically secure. ## Didn't receive your magic link? Check your spam or junk folder first. The email comes from SignUpBreeze and may take a minute or two to arrive. If you still don't see it, contact the event organizer for help. # Managing Your Registrations Source: https://docs.signupbreeze.com/volunteers/managing-registrations How to view and manage your volunteer signups. After signing up for a shift, you can manage your registration using the magic link sent to your email. ## Viewing your registration Click the magic link in your confirmation email to see your registration details, including the event name, shift time, and location. ## Confirmation page The confirmation page shows everything about your signup: * **Event details** — title, description, and location * **Your shift** — the date and time you signed up for * **Registration status** — confirmation that you're signed up ## Tips * **Save the confirmation email** — it contains your magic link for easy access later. * **Check the event details before your shift** — organizers may update the description with last-minute information like parking directions or what to bring. # Signing Up for an Event Source: https://docs.signupbreeze.com/volunteers/signing-up How to sign up for a volunteer shift — no account needed. Signing up for a volunteer shift on SignUpBreeze takes about 30 seconds. You don't need to create an account. ## How to sign up 1. **Open the event link** — you'll get this from the organizer via email, text, social media, or by scanning a QR code on a flyer. 2. **Browse available shifts** — the event page shows a cover image, event title, date, and description, followed by a list of available shifts. 3. **Check availability** — each shift shows its name, an "Open" or "Full" badge, and a fill count with a progress bar (e.g. "1 of 5 filled"). 4. **Tap Sign Up** — click the blue **Sign Up** button on the shift you want. 5. **Enter your info** — provide your name and email address. 6. **Confirm** — you'll see a confirmation page and receive a magic link via email. No password to create, no account to manage. ## What you'll see on the event page Public event page showing cover image, event details, and available shifts with Sign Up buttons The event page includes: * The event title, date (with timezone), and description * A list of shifts with availability and "Sign Up" buttons Shifts that are full won't have a Sign Up button — you can only sign up for shifts that still have open spots. ## After signing up You'll be taken to a confirmation page showing your registration details. You'll also receive an email with a magic link that you can use to return to your confirmation at any time. # Joining a Waitlist Source: https://docs.signupbreeze.com/volunteers/waitlists How to join a waitlist for a full shift and what happens when a spot opens up. When a shift is full, some organizers let you join a waitlist. If a spot opens up, you'll be offered the chance to claim it — no account needed. ## Joining the waitlist 1. **Open the event link** — the same public link you'd use to sign up. 2. **Find a full shift** — full shifts show a **FULL** badge. If the organizer enabled a waitlist, you'll see a **Join Waitlist** button with your would-be position (for example, "Join Waitlist · #2"). 3. **Tap Join Waitlist** — enter your name and email. 4. **Confirm** — you'll see your spot on the waitlist and we'll email you if a spot opens up. If you don't see a **Join Waitlist** button on a full shift, the organizer hasn't enabled a waitlist for that event, or the waitlist is already full. ## Your waitlist status The link in your email takes you to your waitlist page, which shows one of: * **You're on the waitlist** — your current position in line (for example, "#2 in line"). * **A spot opened up!** — you've been offered a spot and can claim it. * **Waitlist offer closed** — the offer expired or is no longer available. ## When a spot opens up If a spot becomes available, you'll get an email and your waitlist page will show **A spot opened up!** * **Accept the spot** — click **Accept spot** to confirm your registration. If the organizer added sign-up questions, you'll answer them here first. * **Decline** — click **Decline** to pass on the spot. It moves to the next person in line. Offers don't last forever. Your page shows a "Respond by" time — if you don't accept before then, the spot is offered to the next person. After you accept, you'll be taken to a confirmation page and receive a confirmation email, just like a regular sign-up. ## Leaving the waitlist Changed your mind? Open your waitlist page and click **Leave waitlist**, then confirm. You'll be removed from the line and won't be offered a spot.