# Team Members

Team Members deliver services and own the calendars that appointments are scheduled into.
This section covers the Team Member directory and each member's working schedule — the
configured working days that availability search is computed from.

 - [GET /locations/{location_id}/team_members](https://developer.alteg.io/en/b2b-v3/openapi/team-members/listteammembers.md): Returns the Team Members of the Location as a cursor-paginated list. The base representation contains name, position, and bookable services; Team Member personal contact data is not exposed in the pre
 - [POST /locations/{location_id}/team_members](https://developer.alteg.io/en/b2b-v3/openapi/team-members/createteammember.md): Creates a Team Member in the Location. After creating, set the working schedule (`PATCH .../schedule`) and link services (`PATCH .../services`) — otherwise the member does not appear in availability s
 - [GET /locations/{location_id}/team_members/{team_member_id}](https://developer.alteg.io/en/b2b-v3/openapi/team-members/getteammember.md): Returns a single Team Member.
 - [PATCH /locations/{location_id}/team_members/{team_member_id}](https://developer.alteg.io/en/b2b-v3/openapi/team-members/updateteammember.md): Partially updates the Team Member card with a merge-patch body: name, specialization, position and the paid-seat flag. Service links are written through `updateTeamMemberServices` and dismissal throug
 - [DELETE /locations/{location_id}/team_members/{team_member_id}](https://developer.alteg.io/en/b2b-v3/openapi/team-members/deleteteammember.md): Removes a Team Member from the Location.
 - [GET /locations/{location_id}/team_members/{team_member_id}/schedule](https://developer.alteg.io/en/b2b-v3/openapi/team-members/getteammemberschedule.md): Returns the **configured working schedule** of a Team Member for a date range — the days and working slots set by the business. This is not availability: free bookable slots come from `GET /locations/
 - [PATCH /locations/{location_id}/team_members/{team_member_id}/schedule](https://developer.alteg.io/en/b2b-v3/openapi/team-members/updateteammemberschedule.md): Updates the working schedule as a **merge-patch map keyed by date**: each key is a `YYYY-MM-DD` date, the value sets the working slots of that day, and `null` clears the day. Dates absent from the bod
 - [POST /locations/{location_id}/team_members/{team_member_id}/dismiss](https://developer.alteg.io/en/b2b-v3/openapi/team-members/dismissteammember.md): Dismisses a Team Member as a command: the response is the Team Member with `dismissal_date` set and `is_bookable: false`. Dismissal is not a field of the Team Member card — `updateTeamMember` cannot s
 - [PATCH /locations/{location_id}/team_members/{team_member_id}/services](https://developer.alteg.io/en/b2b-v3/openapi/team-members/updateteammemberservices.md): Updates which services a Team Member provides and the per-member overrides, as a **merge-patch map keyed by `service_id`**: a value creates or updates the link, `null` unlinks the service, services ab
 - [GET /locations/{location_id}/access_roles](https://developer.alteg.io/en/b2b-v3/openapi/team-members/listlocationaccessroles.md): Returns public role ids and titles only; internal permission slugs are never exposed. Cursor-paginated list. Default ordering: title, role_id tie-breaker. Cursors use the `cursor` query parameter, exp
 - [GET /locations/{location_id}/team_members/{team_member_id}/access](https://developer.alteg.io/en/b2b-v3/openapi/team-members/getteammemberaccess.md): Returns current system-access status for a Team Member: `none`, `invited`, or `active`, plus public `role_id` and pending invitation timestamps. The response carries a strong `ETag` for a subsequent a
 - [PATCH /locations/{location_id}/team_members/{team_member_id}/access](https://developer.alteg.io/en/b2b-v3/openapi/team-members/updateteammemberaccess.md): Merge-patch access settings. Only `role_id` is mutable; unavailable roles fail with `422 role_not_assignable`. Requires `If-Match` with the `ETag` from `getTeamMemberAccess` (or a prior successful wri
 - [DELETE /locations/{location_id}/team_members/{team_member_id}/access](https://developer.alteg.io/en/b2b-v3/openapi/team-members/revoketeammemberaccess.md): Revokes pending or active system access and returns the Team Member to `none`; the Team Member record is not deleted. The last location owner cannot be revoked (`409 last_location_owner`). Requires `I
 - [POST /locations/{location_id}/team_members/{team_member_id}/invitation](https://developer.alteg.io/en/b2b-v3/openapi/team-members/sendteammemberinvitation.md): Sends or resends delivery for the single pending invitation of this Team Member. Delivery contact is set only at Team Member create via write-only `access_invitation.phone` / `access_invitation.email`
