add_tournament_teams
ChatGPTEnter more teams into a tournament the active team organises (League plan only), optionally all into one group (A-F). Names must be unique within the tournament, because fixtures and standings link teams by name. Existing fixtures do not include the new teams; generate_tournament_schedule rebuilds them.
approve_join_request
ChatGPTApprove a pending join request, exactly like 'Approve' in the app: the person becomes a member of the active team with the standard member role and can then see its events, posts and members. Pass user_id from list_join_requests, or the person's name. Confirm with the user first.
attendance_stats
ChatGPTPer-member attendance over a window of past events: how many events they were invited to, how often they answered going / maybe / no / not at all, check-ins, and an attendance rate. Cancelled and future events are excluded. Use this for 'who keeps missing training' questions.
cancel_event
ChatGPTMark an event cancelled. The event stays visible and every invited member is notified. This is not a delete and can be undone in the app. Always confirm with the user first.
create_ballot
ChatGPTPrepare a confidential ballot: title, candidates, when voting opens and closes, who may vote, and the election committee that counts it. Eligible voters get a push when voting opens. Confirm every list with the user first: once someone has voted, nothing can be changed. Voting itself happens in the app, never through the assistant.
create_custom_field
ChatGPTAdd a custom field for member profiles or for events. A mandatory member field is added to every member's 'Complete your profile' prompt in the app, so confirm that with the user. Choice fields need 2 to 6 options.
create_event
ChatGPTCreate an event in the connected team, optionally repeating and optionally invite-only. Members are notified exactly as they are for an event created in the app. Times are interpreted in the venue's timezone, falling back to the team timezone. Always settle the title AND the venue with the user before calling: pass site_id (use list_sites to find it) or is_online for an event with no physical venue.
create_poll
ChatGPTPublish a poll to the team feed with 2 to 10 options. Every member gets a push notification, so confirm the question and options with the user before calling this.
create_post
ChatGPTPublish a post to the team feed, optionally with a poll and photos attached. Every member gets a push notification, so show the user the exact wording, the poll options and the photo links and get their approval before calling this. Photos must be https links to images; they are copied into ClubMeister. Video cannot be embedded — put a video link in the body.
create_site
ChatGPTAdd a venue (pitch, hall, meeting point) to the active team. Events need a venue, so use this when list_sites has no match. The address is looked up on OpenStreetMap to place the venue on the map and pick its timezone. Only pass latitude and longitude if the user gave them; never estimate coordinates.
create_team
ChatGPTCreate a new team in the same club as the active team, with you as its admin, its own team chat and a join code. The new team becomes the active team for this connection, so you can go on to add venues, events and invites for it; switch_team goes back. Settings you leave out are copied from the active team. Confirm the name with the user first. At most 3 teams per connection per day.
create_tournament
ChatGPTCreate a tournament in the app's Tournaments feature (League plan only): name, format, dates and venue, and optionally the participating teams dealt evenly into groups. It opens in the app with its teams, groups, fixtures, standings and bracket — use this, not create_event, when the user wants to organise a tournament. It notifies nobody and adds nothing to the team calendar. Afterwards offer to generate the fixtures with generate_tournament_schedule, and to put the tournament day(s) in the team calendar with create_event: type "Tournament" at the same venue, one event per day, never one per fixture.
end_ballot_voting
ChatGPTEnd voting on an open ballot now. Only someone who runs the ballot or sits on its election committee can. Members who have not voted cannot vote any more, and this cannot be undone. Always confirm with the user first.
event_type_breakdown
ChatGPTPer event type: number of past events in the window, average 'going' per event, average response rate, and the change versus the preceding window of equal length. Use this to compare training turnout against games.
generate_tournament_schedule
ChatGPTGenerate a tournament's fixtures like the app's Schedule screen (League plan only): a round-robin, played within each group when the teams are in groups, or for the knockout format the first knockout round in entry order (needs 2, 4, 8 or 16 teams). Matches are spread over the fields from the first kickoff, with 5 minutes between matches. Replaces the tournament's fixtures, so it refuses once any match has started or has a score. The knockout stage that follows a group stage is seeded from the results in the app.
get_event
ChatGPTGet one event with its full RSVP breakdown per member (status, running-late ETA, check-in), plus carpools and the event's data fields (notes) with their type, options and current value. Use this when asked who is coming to a specific event.
get_lineup
ChatGPTShow the line-up for a game: every position of the team's sport, grouped by section, with the assigned player or null. Only events of type 'Game' have line-ups.
get_team
ChatGPTGet the active team: name, sport, team type, division and league, timezone, club, active member count and plan tier, the event types create_event accepts, the join code and invite link people can use to ask to join, and connection_teams — the teams this connection can switch between. Start here when you need context about the team before answering.
invite_members
ChatGPTEmail invitations to join the active team. Each address gets ClubMeister's invite mail and is added to the team straight away; people who already have an account are added without a new mail. Respects the club plan's member limit. Show the user the exact list of addresses and get their confirmation first. For people who should ask to join themselves, share the invite_link from get_team instead.
list_ballots
ChatGPTList the team's confidential ballots (club votes, e.g. electing a president) that you can see in the app: open, upcoming and finished, with candidates, the window, your roles, how many have voted if you run it, and the result you are allowed to see once voting closed. Nobody, including you, can see how anyone voted.
list_custom_fields
ChatGPTList the team's custom fields: member profile fields (like shirt size or licence number) and event data fields (like result or kit colour), with type, options and whether they are mandatory, hidden from profiles, or filled in by admins only.
list_events
ChatGPTList the team's events in a time window with RSVP tallies (going / maybe / no / no response). Defaults to the next 30 days. Use this for questions about the schedule, upcoming games, or training load.
list_join_requests
ChatGPTList people waiting for approval to join the active team (they used the join code or invite link), with when they asked. Use approve_join_request to let someone in.
list_member_data
ChatGPTList members' answers to the team's member profile fields (custom fields), e.g. shirt sizes. Narrow to one field, and to members who have not answered it yet with missing_only. Fields hidden from profiles are never included.
list_members
ChatGPTList active members of the team with their role, playing position and join date. Contact details are only included when 'include_contact' is set and the caller's role grants member read access.
list_posts
ChatGPTList recent posts on the team feed with reply counts, read confirmations, and poll results where a poll is attached. Use this to see what has already been announced before writing a new post.
list_sites
ChatGPTList the team's venues (pitches, halls, meeting points) with address and coordinates. Use this to resolve a venue name to the site_id needed by create_event.
list_tournaments
ChatGPTList the active team's tournaments from the app's Tournaments feature: the ones it organises and the ones it plays in after accepting another club's invite, with format, status, dates, venue, team and fixture counts, and the public link when shared. Use it to find the tournament_id the other tournament tools need; can_organise says whether the club's plan allows organising (League plan).
set_event_note
ChatGPTFill in one of the team's event data fields (the 'Additional data' card on an event), such as a result, kit colour or meeting time. get_event lists the fields under notes with their type and allowed options. Text and single-choice fields take value; checkbox fields take values.
set_lineup
ChatGPTAssign players to positions in a game's line-up. Pass only the positions to change; leave out player to clear a position. Positions not listed stay as they are. Position names come from get_lineup, player names from list_members. Only 'Game' events. Confirm the line-up with the user before calling.
set_member_data
ChatGPTSet one member's answer to one of the team's member profile fields. Text fields take value; single-choice fields take one option as value; checkbox fields take values. Fields that only admins fill in need admin settings permission. Confirm with the user first.
set_rsvp
ChatGPTSet an RSVP on an event. Without 'user_id' this sets your own answer; with it, it answers on another member's behalf, which needs attendee edit permission. Cancelled and past events are refused.
share_tournament
ChatGPTShare a tournament the active team organises (League plan only), like Publish in the app's setup checklist: returns its public read-only page, where anyone with the link sees the teams, fixtures, results, standings and scorer names without signing in, so ask the user first. With invite_clubs it also returns the link other clubs use to enter their own team. Running it again returns the same links.
switch_team
ChatGPTMake another team in this connection's scope the active team that every other tool works on. The scope is the team that was connected plus any team created through this connection with create_team; get_team lists them under connection_teams. Tell the user which team is now active.
team_pulse
ChatGPTA compact health rollup for the team: upcoming events, RSVP response rate over the last 30 days, members who have not responded to 3 or more consecutive events, new members this month, and post/poll engagement. Use this to answer 'how is my team doing'.
update_custom_field
ChatGPTChange a custom field: rename it, make it mandatory or not, hide it from profiles or show it again, make it admin-only, or add options to a choice field. Existing options cannot be removed or renamed here. Confirm with the user first.
update_event
ChatGPTChange an existing event's title, description, time, type, venue or supervisors. Members are notified of the change. Only fields you pass are changed. Confirm with the user before calling this.
update_site
ChatGPTChange a venue of the active team: name, address, notes or map location. Only fields you pass change. A new address without coordinates is looked up on OpenStreetMap; if nothing is found the old map location is kept. Confirm with the user before calling.
update_team
ChatGPTChange the active team's name, division, league, timezone or sport. Only fields you pass change. Changing the timezone does not move events that already exist. Confirm with the user first.