> ## Documentation Index
> Fetch the complete documentation index at: https://docs.time2.bike/llms.txt
> Use this file to discover all available pages before exploring further.

# Invites & join codes

> Four ways to get people onto your roster, and when to use each.

You have four ways in. Most teams use the join code for riders and the staff
code for coaches, and never touch the other two.

| Method              | Best for                                | Approval needed?       |
| ------------------- | --------------------------------------- | ---------------------- |
| **Join code**       | Thirty riders at the first practice     | No                     |
| **Staff join code** | Coaches and managers you already trust  | No                     |
| **Email invite**    | One specific person                     | They accept            |
| **Application**     | Teams that want to read something first | Yes — an admin decides |

## The join code

Find it under **Settings → Join code**. Click **Generate a join code** if you
don't have one yet.

> !!-IMAGE-NEEDED-!! — The **Join code** card: the code, the share link, the "People who use it join as" dropdown, and the Disable / Rotate buttons.

You get two things:

* **A code** — `ABCD-1234`. Read it out, print it on a flyer, put it on a
  whiteboard.
* **A link** — `time2.bike/join/ABCD-1234`. Anyone who opens it lands straight
  on the join screen.

The code works **regardless of your join policy**. Holding the code *is* the
invitation, so an invite-only team can still use one.

### People who use it join as

Leave this on **Athletes**. It's your rider code, and switching it to Coaches
would make every rider who uses it a coach.

A code never grants admin rights on the team — that stays a deliberate choice.

### Disable and rotate

* **Disable code** — the code stops working, but you keep it.
* **Rotate** — issues a new code and invalidates the old one. Use this the
  moment a code escapes into somewhere you didn't intend.

The card shows how many times the code has been used.

### Sharing the link

The share link is shown at the top of the **Invites** tab, which is admin-only
today. Copy it there and pass it on however you like — text it to a parent, put
it in the team chat, print it.

Once someone has the link, they can forward it to anyone. Recruiting the next
rider isn't an administrative act, and the parent already on the team is usually
the one doing it. Creating, rotating, and disabling the code stay with admins in
Settings.

## The staff join code

A separate code, under **Settings → Staff join code**, off until you turn it on.
It exists because your rider code is set to Athletes and needs to stay that way.

Whoever uses it lands on the roster as **coach** or **manager** immediately —
no approval step.

<Warning>
  This makes an adult staff on your roster with no review. Hand it to people
  directly; never paste it into a group chat. If you'd rather vet each coach,
  leave it off and turn on staff applications instead.
</Warning>

Being on the roster as staff is not the same as being *cleared*. If your league
requires credentials, new staff will see what they owe and can upload proof, but
that's a separate thing from joining.

## What happens when someone claims staff on the rider code

They're asked what they're joining as when they redeem, and picking Coach or
Manager on a *rider* code puts them on the roster as **invited**. They'll be
told so on screen. An admin confirms it from the roster with **Confirm as
coach**. Until then, they count for nothing.

## Email invites

The **Invites** tab sends a personal invitation to one email address.

<Steps>
  <Step title="Open Invites and click the add button">
    > !!-IMAGE-NEEDED-!! — The **Invites** tab with the shareable join link at the top and a list of pending invites.
  </Step>

  <Step title="Enter the email and pick a team role">
    This is the **team** role (member / admin), not the roster role.
  </Step>

  <Step title="Send">
    The invite shows in the pending list with who sent it and when it expires.
  </Step>
</Steps>

Pending invites can be **resent** (if someone lost the email) or **revoked**.

## Applications

For teams that want to read something about each person before letting them on.
Set **Join policy** to **Application required** in Settings, then build the form.

Full detail in [Applications](/teams/applications).

## Which should I use?

<AccordionGroup>
  <Accordion title="A high-school team with 30 riders showing up in August" icon="users">
    Join code, read out at the first practice, plus a staff code handed to your
    assistant coaches. Nothing else.
  </Accordion>

  <Accordion title="A development team that selects riders" icon="clipboard-list">
    Join policy set to Application, with a form asking about racing experience
    and category. Keep a staff code for the coaching staff.
  </Accordion>

  <Accordion title="A small shop team" icon="envelope">
    Email invites. There are eight of you.
  </Accordion>
</AccordionGroup>

## Next

<Card title="Applications" icon="clipboard-list" href="/teams/applications">
  Build the form and review who applies.
</Card>
