- Brand
- Exposure Events
- Category
- Operations
- Primary Subcategory
- Event Organizer & Box-Office Tools
Integration details
Description
Exposure Events connects ChatGPT to your Exposure Events director account so you can look up and manage your tournaments, leagues and other events in conversation. Sign in with your Exposure Events account. You only ever see and change events, seasons and venues that you own. What you can look up: your seasons and upcoming events; divisions; registered teams with their registration and payment status; team rosters with coach contact details; games filtered by division, team, date, status or venue; standings and pool records; season rankings; your saved venues and courts; the venues attached to an event; and the schedule setup, including which dates are scheduled and whether the schedule, standings, brackets and teams are published. What you can change: add, update and delete divisions and teams; create, update and delete standings pools; add venues to your venue list and attach, update or remove venues on an event; add, update and remove schedule dates and empty time slots; and publish or unpublish an event's schedule, standings, brackets and teams. Limitations: this is for event directors only - coaches, athletes and spectators cannot sign in. It does not create new events or seasons, does not take payments or process registrations, and does not send messages to teams. Some deletes are refused while games still depend on the item being removed.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Event Organizer & Box-Office Tools
- Secondary Subcategories
- None listed
- Brand
- Exposure Events
- Access
- Account required
- First tracked
- 2026-10-22
- Tool count
- 111
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Exposure Events
Get updates when Exposure Events’s Discoverability Score or category rank changes.
Competing in ChatGPT Event Organizer & Box-Office Tools
View Category111 tools agents can invoke
Builds a bracket for a division of the signed-in director's own event from a bracket template, like the website's bracket builder: the template (see get_bracket_templates - pick one that holds the right number of teams) is copied into the division and one game is created for every game of the bracket, without a date, time or location yet - place them with auto_schedule or place_games (bracket games go after the games they depend on). A template that makes several brackets (e.g. championship and consolation) creates all of them; the first is named by `name`. Say who goes in with populateFrom: Teams (give teamIds, up to as many as the template holds - fewer teams than places leave byes; placed by their bracket seed, otherwise in the order given), Pools (give positionIds - the pool positions from get_standings, e.g. the 1st and 2nd of every pool; places the template has left over stay open), Divisions (give divisionSeeds - 1st, 2nd... in the division standings), Seeds (give seeds like "1/2" - 1st of 2 seeds) or Participants (all places stay open, to be filled in later). algorithm is how entries are spread over the bracket: Standard (default seeding, 1 plays the last), Ordered (in the order given) or Balanced. If the division already has scores, the bracket's teams are filled in from the pool results by the website's game processor shortly after the bracket is saved (the website's own game queue), so check get_brackets a little later. Not included: bracket ranking links. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. Only works for events the director owns.
Adds one or more new divisions to the signed-in director's own events. Call get_events first to find a valid event id. Only EventId and Name are required - Gender, Color, Order, Active, LocationSize, and ExternalId are optional and match the real Add Division form's manual-entry mode. Each division's Active defaults to true. Only works for events the director owns.
Attaches one or more of the signed-in director's own venues (from get_venues) to their events, with the game window the schedule uses there. EventId, VenueId, StartGameTime, LastGameTime and TimeIncrements are required: take them from the user's schedule (the earliest and latest game at the venue and the gap between games) and NEVER make them up or use a default - if you cannot tell, ask the user. The event gets its own copy of the venue and all of its locations for the event's sport; use update_event_venues to turn locations off or adjust them. A venue can only be attached to an event once. The whole request is rejected (nothing saved) if any item is invalid. Only works for events the director owns.
Adds individual pool games between two teams' standings positions (PositionId from get_standings), matching the real Add Pool Games dialog's Manual mode. Each game needs a division, an away position and a home position - both must be positions of that division; the round and exhibition flags are optional. The game is saved without a date, time or location yet. The whole request is rejected (nothing saved) if any game is invalid. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. All games must be on the same event. Only works for events the director owns.
Adds location restrictions to the signed-in director's own event, like the website's location restrictions page: a location is not available on a date and / or between two times (give a date, a start time, an end time, or any of them). add_time_slots then leaves those slots out, and the schedule checks flag games placed there. Refused (nothing changed) if no date or time is given, the end time is before the start time, or the location is not a location of the event's venues. Existing time slots are not removed. To change a location restriction use update_location_restrictions. At most 100 per request. Only works for events the director owns.
Records a payment of one team of the signed-in director's own events WITHOUT charging a card, like Add Payment on a team's Payments page of the Directors portal with the credit card switched off. status Paid records money already received (cash, a check - say which in internalNotes); status Unpaid makes an invoice the team can pay later. Give either priceId (an entry fee the team can use - get_event_prices with the teamId shows them) or a title and an amount. The event's tax is added to the amount, as on the website. The payer is the team's primary contact unless firstName, lastName, email and phone are given; the website needs all four. When the status is Unpaid and sendInvoice is true (the default) the invoice is emailed to the payer shortly afterwards. A Paid payment is NOT emailed as a receipt by this call - use send_receipt for that, and tell the user. Paying a fee that marks the team as paid also marks the team Paid. TWO STEPS: call it first WITHOUT confirmationToken - nothing is saved or sent, and it returns the plan and a confirmationToken; show the user every line and, only after they clearly agree, call it again with the same values and that confirmationToken (valid for ten minutes and only for exactly that request, and it works once). Refused (nothing saved) when the team is not in the event, its division is inactive, the price is not one the team can use, a Paid payment is for a fee with play days (record that on the website), the payer lacks a name, email or phone, or the amount is not above zero. Never invent an email address or a phone number.
Adds prices to one of the signed-in director's own events, like the Add Price form on the event's Prices page: entry fees (offered to chosen divisions), and other prices such as a t-shirt, college coach or gate fee. Needs a name and an amount; an entry fee also needs the divisions it applies to (ask the user, or use all of the event's divisions if they say so - get_divisions lists them). Dates, quantities, where it is offered and play days are optional. Prices of the same name in one event are refused. Show the user the prices that will be added and wait for their yes before calling. Only works for events that director owns.
Adds questions to the registration of one of the signed-in director's own events, like Add Team / Coach / Player Fields on the event's Settings page. Each question has a group (Team, Coach or Player; for an individual event Team is the participant and Coach its primary contact, and there is no Player group), the question text, and a kind: Textbox (a short answer), TextArea (a long answer) or Dropdown (with a list of options). It can be required or hidden, but not both. At most 20 questions per group, and no two with the same text in a group. Show the user the questions and wait for their yes before calling. Only works for events that director owns.
Adds one or more dates to the schedule of the signed-in director's own events - the game days games can be placed on. EventId and Date are required; the first/last game time and the per-date limits (most/fewest games, block letters, same-day-only, travel start) are optional and match the real Add Date dialog. It also creates the date's empty time slots, as the website's Add Date does (one per active location at every time increment between the first and last game time, honoring location restrictions) - those slots are the free cells games are placed in, and a date only shows on the schedule page once it has slots - so attach venues first (add_event_venues). When building from a sheet, give each date's firstGameTime and lastGameTime from that sheet (the earliest and latest game of that date, which can differ from day to day) and place the games into those slots; NEVER make up a time or use a default such as 8:00 AM - if you cannot tell the times, ask the user. Without a firstGameTime/lastGameTime the venues' game windows are used. A date can only be on an event's schedule once, and a past date is rejected if the event hides past dates. The whole request is rejected (nothing saved) if any item is invalid. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. All dates must be on the same event. Only works for events the director owns.
Adds one or more standings groups (pools) to divisions of the signed-in director's own events, placing teams in numbered positions. Call get_divisions and get_teams first to find valid division and team ids. DivisionId, Name and TeamIds are required; Label, Order and Active are optional. The Name is shown on the schedule in front of the position number (name A, position 2 = A2), so keep names short: a single letter or number, never a word like 'Pool' or 'League'. Use the group names the user or their sheet gives. If there are none, put all of the division's teams in one group named 'A' (next groups 'B', 'C') and say so in the plan you show the user before creating it - never make up a name such as 'League'. Names must be unique within a division, and a team can only be in one pool of its division. The whole request is rejected (nothing saved) if any item is invalid. Only works for events the director owns.
Creates the standings games (pool-play games) for the signed-in director's own events: for each standings group (pool) of the division (or of every active division of the event) it works out who plays whom - a round robin by default, using the same matchup methods as the real Add Pool Games dialog (Auto, FirstFit, Cyclic, Balanced) - and saves the games without a date, time or location yet. Optionally limit how many games each team plays (GamesPerTeam) or start from a later round. Pools need at least two teams (see add_standings), and pools that already have games are rejected - remove those games first. Like the website, it follows the event's team restrictions - teams that must not play each other (a Matchup restriction) and a team's least/most games (a Games restriction), see add_team_restrictions - unless ignoreRestrictions is true; save the restrictions first, then create the games. Cross-pool play and conditional games are not applied. The whole request is rejected (nothing saved) if anything is invalid. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. All requests must be on the same event. Only works for events the director owns.
Adds team restrictions to the signed-in director's own event, like the website's "Add Restriction" form for teams; the auto schedule then follows them. Each item has a Kind: DateTime (the team is only scheduled in - or not scheduled in - a window of dates and times: give position Between/On/After/Before, inclusion Schedule or DontSchedule - ASK the user which they mean - and a date or dayOfWeek and the times), Location (the locations the team plays at, with an optional least / most games, date, group and home location flag), Games (the least and / or most games, overall or on one date), Team (two or more teams that must not play at the same time, e.g. the same coach), Matchup (two or more teams that must not play each other) or Exhibition (the team plays as an exhibition team and doesn't count in the standings). Like the website, adding the same restriction again does not duplicate it: an existing location or games restriction for the same team and date is updated, an existing pair of teams is left alone. Refused (nothing changed) for an invalid item, a team that doesn't exist or isn't in the event, or a location that isn't a location of the event's venues. All teams must be on the same event, at most 100 items per request. Only works for events the director owns.
Adds one or more new teams to divisions in the signed-in director's own events. Call get_divisions first to find a valid division id, and get_age_grades first if an Age or Grade value is being provided. Only DivisionId and Name are required - every other field (gender, address, age/grade, social handles, status, etc.) is optional and matches the real Add Team form; never ask the caller for them, but populate them if they're already given (e.g. from a pasted list of teams). Each team's Status defaults to Active if not specified - can also be Inactive or Waitlist. Only works for events the director owns.
add_schedule_dates already creates the full-day slots for a new date, so use this only for extra slots: a time outside the venues' increments or window (e.g. a game at 8:30 on an hourly venue) or a date's slots the user asked to add - say so in the plan. Never create slots only where a sheet has games: the grid would have no free cells, unlike the website. Never use it to get around a refused place_games (a cell without a slot is a disabled cell on the website; ask the user first). Adds empty time slots to dates already on the schedule of the signed-in director's own events -one for each location at every time increment from FirstGameTime to LastGameTime (omit LastGameTime for a single time) - matching the real Add Times dialog. Games are placed into these slots. Optionally limited to some locations (LocationIds from get_event_venues). A time a location already has a slot or game at is skipped, and so is a time the location is unavailable. The whole request is rejected (nothing saved) if any item is invalid. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. All dates must be on the same event. Only works for events the director owns.
Adds one or more venues, each with its locations, to the signed-in director's own venue list - matching the real Add Venue and Add Location forms. Check get_venues first: a venue with the same name in the same city is rejected, use the existing one. Never invent a street address, city or postal code - if the user did not give them, ask. Name, Abbr, StreetAddress, City, State, PostalCode and TimeIncrements are required; Locations is optional (a venue with no locations gets one default location). Location names and abbreviations must be unique within a venue. The whole request is rejected (nothing saved) if any item is invalid. If you have events in more than one sport, give each venue an EventId (the venue is made for that event's sport). Adding a venue does not attach it to an event - use add_event_venues for that. Like the website, the address is looked up on Google for its map pin (the result says mapPinSet); if Google finds nothing the venue is still saved, without a pin - tell the user.
Saves the website's autoschedule for the signed-in director's own event: gives the unscheduled pool games and bracket games of the chosen divisions (or of all divisions when divisionIds is left out) a date, time and location in the event's existing empty time slots, exactly as preview_auto_schedule proposes (same rules, same engine) - like pressing Autoschedule and then Save on the Directors schedule page. ALWAYS call preview_auto_schedule first, show the user what it proposes and what could not be placed, and only call this after the user agrees; pass the scheduleVersion from that preview. It works the placements out again inside the change, so the result can differ from the preview only if the schedule was changed in between - which is refused (the version no longer matches) and nothing is saved. Each placed game takes its empty slot, queues a game.updated webhook notification and records a schedule revision for its teams, like place_games. Games that could not be placed stay unscheduled. Only games that have no date yet, at most 500 games per call (use divisionIds or startDate/endDate to split a bigger request). Only works for events the director owns.
Copies one of the signed-in director's events into a new event, like the Copy button of an event on the Directors portal: the new event keeps the source's details (type, gender, age groups, contact, address, time zone, settings, schedule settings, reports, email templates), its event venues, divisions, prices and sponsors (each can be left out; the divisions' venues are copied only with includeDivisionVenues) - but you must give the new season (seasonId, from get_seasons) and the new dates (startDate, endDate, yyyy-MM-dd), as the website's copy form clears them; the name is the source's unless you give one. The new event is not published and has no teams, games or schedule slots. Not copied: the logo and other files, certifications (the website's copy leaves them off too), pools. TWO STEPS: call it first WITHOUT confirmationToken - nothing is saved, and it returns the plan and a confirmationToken; show the user every line and, only after they clearly agree, call it again with the same values and that confirmationToken (valid for ten minutes and only for exactly that request). It checks the same rules as create_event and refuses with the problems listed; an event that looks like one already made (same season, name and dates) is refused unless allowDuplicate is true.
Copies one of the signed-in director's seasons into a new season, like the Copy button of a season on the Directors portal: the new season gets new years (startYear, optional endYear and session) and keeps the source season's settings (registration, waivers, rankings, fields), its season divisions and levels (includeSeasonDivisions and includeSeasonLevels, both on like the website), and its season groups. The source season's dates are NOT copied - give startDate and endDate (yyyy-MM-dd) or the new season has none. It can go into another of the director's organizations (organizationId; the source's organization when left out). Its events and teams are not copied. TWO STEPS: call it first WITHOUT confirmationToken - nothing is saved, and it returns the plan and a confirmationToken; show the user every line and, only after they clearly agree, call it again with the same values and that confirmationToken (valid for ten minutes and only for exactly that request). Refused for the same reasons as create_season (an existing season with the same organization, sport, years and session, a session without parentSeasonId, a renewal with no earlier season, bad dates).
Creates a new event in one of the signed-in director's own seasons, like saving a new event on the Event Details page of the Directors portal, and returns its event id for every other tool. Give the name and the seasonId (from get_seasons; the season decides the organization). TWO STEPS: the first call (confirmed=false, the default) saves nothing and returns the plan; show the user every line of it and wait for their yes, then call again with the same values and confirmed=true. Never pick the organization or season yourself: if get_seasons lists more than one, ask which; if one, name it in the plan. Do NOT ask the user for the type, gender, age groups, contact or address before calling: make the first call with what the user told you (at least the name, the season and the dates) - the director's saved event settings fill the rest, as on the website - and ask only for what the plan or the error says is still missing. Never copy from another event of the season, and never invent a contact, address or date. Like the website's new event form, anything NOT given is filled from the director's saved event settings (the organization's, else the account's) - type, participation type, age group type, gender, contact, address, time zone, age groups, notes, costs and so on - and the result lists what was filled that way, so tell the user. What the director has no saved value for and did not give is asked for: type (Tournament, League, CampClinic, Tryout, Practice, Training), participationType (Team or Individual), ageGroupType (Youth, Adult, AdultYouth, Collegiate), gender (M, F or B for both), contactName, contactEmail, city, state, postalCode and at least one age/grade group (boysAgeGradeIds / girlsAgeGradeIds from get_age_grades) - the call then fails with the list of what is missing and nothing is created. It checks the same rules as the website (end date not before the start date or in the past, dates inside the season years, valid email and links, a Tryout's name contains "tryout", costs and notes) and refuses with all the problems listed. The new event gets the website's defaults: its settings, schedule settings, the default reports, the email templates, the director as its owner (and the organization's and season's owners, as the website adds them), and the director's saved settings, payment vendor and notification providers. No marketing credit is used (the event stays as it is on the website without one). The event is NOT published and has no divisions, teams or schedule yet. Refuses an event that looks like one already made (same season, name and dates) unless allowDuplicate is true - so a retry never makes a second one. The address is looked up on Google for its map pin like the website does; if Google finds nothing the event is still created, without a new pin. Not included: certifications, logo, prices, sponsors. Only works in seasons the director owns.
Creates a new organization for the signed-in director, like saving a new organization on the Organizations page of the Directors portal. The director becomes its owner, and it becomes their default organization when they have none. Only the name and the contact email are required; the website, description, phone and social links are optional. TWO STEPS: call it first WITHOUT confirmationToken - nothing is saved, and it returns the plan and a confirmationToken; show the user every line of the plan and, only after they clearly agree, call it again with the same values and that confirmationToken (valid for ten minutes and only for exactly that request). Refused (nothing saved) when the director already belongs to an organization with the same name (ignoring case and extra spaces) - tell the user and ask for another name, or use that organization. Never invent a contact email: ask the user. Not included: the store, payment vendor, webhook, logo and Amazon storage settings (edit them on the website). A season is made separately with create_season.
Creates a new season in one of the signed-in director's own organizations, like saving a new season on the Seasons page of the Directors portal. Needs organizationId (get_seasons shows the director's organizations; ask which when there is more than one) and startYear; the end year is the same year when left out. TWO STEPS: call it first WITHOUT confirmationToken - nothing is saved, and it returns the plan and a confirmationToken; show the user every line and, only after they clearly agree, call it again with the same values and that confirmationToken (valid for ten minutes and only for exactly that request). Like the website it refuses (nothing saved): a season with the same organization, sport, years and session as an existing one, a session without parentSeasonId (a season with a session belongs to a parent season of the same years), teamSeasonRenewal=true with no earlier season of the same session to renew from, only one of the two dates, an end date not after the start, or a range of a year or more. Registration starts off; the registration, ranking and level settings are edited on the website (the player waiver has its own tools: get_season_waiver and update_season_waiver).
Step 2 of 2: deletes brackets completely with all their games, like Delete on the Directors portal's bracket list - their places on the schedule become empty time slots again, the scores of any scored games are lost, and brackets that depended on a deleted one lose that link. Needs the confirmationToken from prepare_delete_brackets for exactly the same brackets and scheduleVersion - call that first and show the user what it lists. Records a schedule revision for the teams that were in the games and queues a game.deleted notification for each deleted game, like the website. With gamesOnly=true only the games and layout go and the empty bracket stays (the same value as in prepare_delete_brackets). Refused if someone else changed the schedule since you loaded it. All brackets must be on the same event. Only works for events the director owns.
Step 2 of 2: deletes one or more of the signed-in director's own divisions. Needs the confirmationToken from prepare_delete_divisions for exactly the same ids - call that first and show the user what it lists. Rejected (nothing deleted) if any division still has games scheduled - remove those games first - or still has a team with an active scheduling credit - reimburse that credit or delete the team first. Deleting a division does not delete its teams. At most 50 divisions per request. Only works for events the director owns.
Step 2 of 2: removes one or more venues from the signed-in director's own events (the venue stays in the director's own list). Needs the confirmationToken from prepare_delete_event_venues for exactly the same ids - call that first and show the user what it lists. Rejected (nothing removed) if any of the venues' locations still has a game on it - remove those games first. At most 50 venues per request. Only works for events the director owns.
Step 2 of 2: deletes events the way the website does. Needs the confirmationToken from prepare_delete_events for exactly the same ids - call that first and show the user what it lists. For an event the director owns, the event is hidden for everyone (its data is kept); for an event the director only has access to, just their own access is removed. Rejected (nothing deleted) if a team on an event the director owns has an applied scheduling credit. At most 50 events per request. Only works for events the director has access to.
Step 2 of 2: deletes pool games completely, like removing them on the Directors schedule page; the time slot a game was in becomes an empty slot again. Needs the confirmationToken from prepare_delete_games for exactly the same games and scheduleVersion - call that first and show the user what it lists. Refused (nothing deleted) for a game that is locked on the website, has a score or outcome, or is a bracket game, and for more than 100 games at once. To keep a game and only take it off the grid use unschedule_games. Refused if someone else changed the schedule since you loaded it. All games must be on the same event. Only works for events the director owns.
PERMANENTLY deletes one of the signed-in director's own organizations (the Delete button of the Organizations page of the Directors portal). Only the organization's owner can. Like the website it is refused (nothing deleted) when the organization is tied to an event (remove it from those events first), tied to a mobile application, or still has seasons - delete or move those first. TWO STEPS: call it first WITHOUT confirmationToken - nothing is deleted, and it returns the plan and a confirmationToken; show the user the plan, say clearly that it cannot be undone, and only after they clearly agree call it again with the same organizationId and that confirmationToken (valid for ten minutes and only for exactly that request). The organization's logo file is not removed (that happens on the website). Never delete an organization the user did not name.
Step 2 of 2: deletes players from rosters in the signed-in director's own events. Needs the confirmationToken from prepare_delete_players for exactly the same ids - call that first and show the user what it lists. The same rules as the website apply: nothing is deleted if any player took part in an event that has ended, is in an event that has disabled roster changes, or was copied from a coach's roster (set those Inactive with update_players instead). At most 50 players per request. Only works for events that director owns.
Step 2 of 2: deletes prices of one of the signed-in director's own events. Needs the confirmationToken from prepare_delete_prices for exactly the same event and ids - call that first and show the user what will be deleted. A price that has been used can't be deleted; switch it off with update_prices instead. Cannot be undone.
Removes questions the director wrote from the registration of one of the signed-in director's own events, like the remove button of Add Team / Coach / Player Fields on the event's Settings page. Each is found by its questionId from get_registration_fields. New registrations no longer see the question; answers already given are not deleted. Show the user which questions will go and wait for their yes before calling. Only works for events that director owns.
Step 2 of 2: deletes restrictions (location or team), like deleting them on the website's restrictions pages; the auto schedule no longer follows them. Needs the confirmationToken from prepare_delete_restrictions for exactly the same restrictions - call that first and show the user what it lists. Deleting an Exhibition restriction also takes the team off exhibition when it has no other exhibition restriction, as the website does. Games already scheduled are not moved. All restrictions must be on the same event. Only works for events the director owns.
Step 2 of 2: removes one or more dates from the schedule of the signed-in director's own events, together with the date's empty time slots. Needs the confirmationToken from prepare_delete_schedule_dates for exactly the same dates and scheduleVersion - call that first and show the user what it lists. At most 50 dates per request. Rejected (nothing removed) if any of the dates has a game with teams on it - remove those games first. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. All dates must be on the same event. Only works for events the director owns.
PERMANENTLY deletes one of the signed-in director's own seasons (the Delete button of the Seasons page of the Directors portal), together with its season divisions and the teams registered in them; seasons that had it as their parent lose that parent. Only the season's owner or the organization's owner can; anybody else who has the season only removes their own access to it, and the season stays. Like the website it is refused (nothing deleted) while the season is tied to an event - remove it from those events first. TWO STEPS: call it first WITHOUT confirmationToken - nothing is deleted, and it returns the plan with what would be removed and a confirmationToken; show the user the plan, say clearly that it cannot be undone, and only after they clearly agree call it again with the same seasonId and that confirmationToken (valid for ten minutes and only for exactly that request). Never delete a season the user did not name. To keep the data, archive it instead (update_season archived=true).
Step 2 of 2: deletes one or more of the signed-in director's own standings groups (pools), including their team positions. Needs the confirmationToken from prepare_delete_standings for exactly the same ids - call that first and show the user what it lists. Rejected (nothing deleted) if any pool still has games - remove those games first. Teams are not deleted, only taken out of the pool. At most 50 groups per request. Only works for events the director owns.
Step 2 of 2: deletes one or more of the signed-in director's own registered teams. Needs the confirmationToken from prepare_delete_teams for exactly the same ids - call that first and show the user what it lists. If a team still has a scheduling credit applied and its refund window has expired, the whole request is rejected (nothing is deleted) rather than skipping that team - set its status to Inactive instead. At most 50 teams per request. Only works for events that director owns.
Step 2 of 2: removes the empty time slots (slots with no teams in them) from a date on the schedule of the signed-in director's own events, optionally only between FirstGameTime and LastGameTime and/or only for some locations. Slots that already have a game with teams are never removed - take those games out first. The date itself stays on the schedule (use delete_schedule_dates to remove it). Needs the confirmationToken from prepare_delete_time_slots for exactly the same dates, ranges and scheduleVersion - call that first and show the user what it lists. At most 50 dates and 500 time slots per request. Needs scheduleVersion; refused if someone else changed the schedule since you loaded it. All dates must be on the same event. Only works for events the director owns.
Disables events, the website's Disable button: a disabled event is switched off but nothing is deleted, and it can be switched back on with enable_events. Disabled events are left out of get_events unless disabled=true is given. At most 50 events per request. Only works for events the director has access to.
Enables events that were disabled, the website's Enable button. Find the disabled events with get_events and disabled=true. At most 50 events per request. Only works for events the director has access to.
Gets the real, valid age group and grade values a team's Age/Grade fields can be set to (via add_teams/update_teams). A fixed, site-wide reference list - not scoped to any one event or division. Call this instead of guessing a value for Age/Grade; pass the exact Name back, e.g. "14U" or "8th Grade". Each value also has an Id: create_event takes the Ids (boysAgeGradeIds / girlsAgeGradeIds).
Lists the bracket templates a director can build a bracket from - the "Template" list of the website's bracket builder: the website's ready-made shapes (e.g. an 8-team single-elimination bracket) plus any the director saved. Each shows how many teams it holds, how many games the bracket has, the fewest and most games a team plays, and the brackets it makes (a template can make several, e.g. championship and consolation). Filter by totalParticipants to find the templates for a number of teams, e.g. 8. Each of the website's own templates has previews: the website's real picture of each bracket it makes. To show what a template looks like, show only those imageUrl pictures; if a template has no previews, say the picture is not available and describe it with the numbers - never draw, search for or invent a picture. Pass the templateId to add_brackets. Read only.
Lists the brackets of the signed-in director's own event (or of one division) with their games: each game's id, number, round, who plays (a team, a pool position like "1st in A", a seed, "Winner of game 3", or "TBD" while open) and, once scheduled, its date, time and location. Use the game ids with the schedule tools. Only works for events the director owns.
Gets the visible divisions (active and inactive) for one of the signed-in director's own events. Needed to find a valid division id before calling add_teams/update_teams, or before calling update_divisions/delete_divisions to manage the divisions themselves. Only works for events that director owns.
Gets the entry fees of one of the signed-in director's own events that can be invoiced: the active prices of type Event Fee or Other that are offered for the event and within their dates today - the list the Send Invoice window of the Teams page shows. Give teamId to get instead the fees a payment for that one team can use (add_payment): the Event Fees of the team's division within their dates, and the event's Other prices. Use it to find the priceId for send_invoices or add_payment, and to tell the user what each fee is. Every fee in this list can be invoiced, whether its type is Event Fee or Other - 'Other' does not mean it cannot be invoiced; a price that is not in the list (inactive, outside its dates or not offered for the event) cannot.
Gets the venues attached to one of the signed-in director's own events, each with its locations (the location id is what a game's location is set to) and the game window and time increments used to schedule on them. Only locations for the event's sport are returned. Use get_venues for the director's own venue list. Only works for events that director owns.
Gets the signed-in director's active events for one season, optionally filtered by event type, participation type, age group, or gender. By default only upcoming events are returned (events that have not ended yet). To see past events, or any other period, give startDate and/or endDate: then the events that take place within that date range are returned instead - an event counts if any part of it falls in the range. A date range can be at most one year. Events are listed by start date. Only returns events tied to that season - events not attached to any season won't appear. Call get_seasons first to find valid season ids. Give disabled=true to list the director's disabled events instead (the ones switched off with disable_events), so they can be switched back on with enable_events. Each event has its public links on the website (urls: info, schedule, registration when it is on, and app) - when the user asks for links, list every entry of urls for every event they asked about, none left out, and never make one up.
Gets the final place (1st, 2nd, 3rd...) of every team in each division of one of the signed-in director's own events. A team's place is, in this order: the place entered for it on the Teams > Rankings page (PlaceType Division), else the place its bracket gave it (PlaceType Bracket, PlaceName the bracket, e.g. Gold): a place stored on a bracket game, or else worked out from the games' results - the winner of the Championship game is 1st and its loser 2nd, the winner of the 3rd place game is 3rd and its loser 4th, once those games have a winner - else - in a division with one pool and no bracket, once the pool is finished - its place in the pool standings (PlaceType Pool, PlaceName the pool). Each team has its team id and its parent team id (the persistent team record that stays the same across events). Empty values are left out: a team with no Place has none yet - its bracket or pool is not finished, or the division has several pools and no bracket so there is no single order. Teams that tie share a place. Optionally limited to one division. Only works for events that director owns.
Gets games for one of the signed-in director's own events, optionally filtered by division, team, date (single day or a range), game status, or venue. ScheduleVersion is the schedule's version at the time of the read - pass it to any tool that changes the schedule; it is refused if someone else changed the schedule in the meantime. Only works for events that director owns.
Gets the signed-in user's own orders, like the Orders page of the website (past purchases and reimbursements): for each order its id, description, amount, date and type, and refund: true when the order is marked as a refund. By default the purchases (transactionType Debit) are returned; give Credit for the reimbursements. Also returns the total amount of all the user's orders of that transaction type (for how much was spent), not just of the page. Newest first, 100 per call: if MoreAvailable is true, call again with the next page number. When you write an order id to the user, write it as 'order 171020', never '#171020' - a # followed by six digits is drawn as a color swatch in chat. Only returns the signed-in user's own orders; the website's receipt links are not included. For the team payments and invoices of the director's events use get_payments instead.
Gets the organizations the signed-in director is an active member of (the same ones the website's organization list shows), with how many seasons each has. Use it to find the organization id for create_season, to check whether an organization already exists before create_organization, and to see whether an organization already has seasons (create_season then needs the team season renewal answer).
Shows how one of the signed-in director's own events takes payments: the payment vendor it uses now, and the director's connected payment vendors it could use (Stripe, Square and PayPal only), like the Payment Vendor choice on the event's Settings page. Also says when the organization's event store controls the payment vendor, in which case the event's own vendor can't be changed. A vendor is connected on the website (Settings > Payment Vendors) - if the list is empty, tell the user to connect one there first; it can't be done here. Never shows keys.
Exposure Events ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Exposure Events's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Exposure Events alternatives on ChatGPT?
As of 2026-11-03, Exposure Events competes with A Seat Awaits, Artist Growth, Booking OS, CatMai, Checkin, ClubMeister: Team Manager, comethru, DrawKind Secret Santa and 24 more in ChatGPT Event Organizer & Box-Office Tools, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.