Sports schedules, slates and standings, and calendar feeds that keep a team's games up to date.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Creates a calendar of up to 25 teams by id, and answers with its links; pass season ids to follow only those seasons. Its feed is the .ics address a calendar app subscribes to, and it stays up to date. A fan of a racing driver, such as one in Formula 1, follows the driver rather than their team: pass the driver's slug from find_teams in drivers, beside any teams, and the calendar holds every race of the driver's series with the driver's line and, once classified, their place.
The teams, in pick order; may be empty when drivers are named.
The racing drivers to follow, by slug (lewis-hamilton); none follows no driver.
The seasons to follow only, or none.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://teamcalendar.com/api/mcp
Creates a calendar of up to 25 teams by id, and answers with its links; pass season ids to follow only those seasons. Its feed is the .ics address a calendar app subscribes to, and it stays up to date. A fan of a racing driver, such as one in Formula 1, follows the driver rather than their team: pass the driver's slug from find_teams in drivers, beside any teams, and the calendar holds every race of the driver's series with the driver's line and, once classified, their place.
| Argument | Type | Description |
|---|---|---|
| drivers | array | null | The racing drivers to follow, by slug (lewis-hamilton); none follows no driver. |
| teamIds* | array | The teams, in pick order; may be empty when drivers are named. |
| seasonIds | array | null | The seasons to follow only, or none. |
{
"type": "object",
"required": [
"teamIds"
],
"properties": {
"drivers": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "The racing drivers to follow, by slug (lewis-hamilton); none follows no driver."
},
"teamIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"maxItems": 25,
"description": "The teams, in pick order; may be empty when drivers are named."
},
"seasonIds": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"format": "uuid"
},
"description": "The seasons to follow only, or none."
}
},
"additionalProperties": false
}Creates a calendar of every club in a league by its code, such as f1, and answers with its links. For Formula 1 that is every Grand Prix's race, or every session of each weekend (practice, qualifying, sprint and race) when weekend is true. Name teams to follow only them, and drivers by slug to follow them too: each session then carries their lines and, once classified, their places. Its feed is the .ics address a calendar app subscribes to, and it stays up to date as sessions are scheduled or moved. Fails for a league of more than 25 clubs, such as the NFL; pick its teams with create_composed_calendar instead.
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case. |
| teams | array | null | The league's teams to follow; none follows no team of a series, and every club of any other league. |
| drivers | array | null | The drivers to follow, by slug (lewis-hamilton); none follows no driver. |
| weekend | boolean | Whether the calendar takes every session of a racing weekend (practice, qualifying, sprints) rather than the race alone. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case."
},
"teams": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"format": "uuid"
},
"description": "The league's teams to follow; none follows no team of a series, and every club of any other league."
},
"drivers": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "The drivers to follow, by slug (lewis-hamilton); none follows no driver."
},
"weekend": {
"type": "boolean",
"description": "Whether the calendar takes every session of a racing weekend (practice, qualifying, sprints) rather than the race alone."
}
},
"additionalProperties": false
}Creates a calendar of the teams a name picks out, such as "phoenix suns", and answers with its links. Its feed is the .ics address a calendar app subscribes to, and it stays up to date as games are scheduled or moved. A name such as "giants" picks out more than one team, so check with find_teams when a name could. Fails when it names none.
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 60,
"minLength": 1
}
},
"additionalProperties": false
}Finds teams by name: a full name, a short name such as "suns", or a place such as "new york". Use it to get a team's id, or to check which teams a name means before creating a calendar from it, since "giants" is two teams. It finds racing drivers too, by their name ("hamilton") or their team's ("cadillac" finds its race drivers): pass a driver's slug in create_composed_calendar's drivers to follow that driver, which is how a fan of a driver follows them.
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 60,
"minLength": 1
}
},
"additionalProperties": false
}Gets every game live right now in every league TeamCalendar follows, grouped by league in display order, each game with its score and where it is, as the league's board shows it. Pass a league code for that league's live games alone. For a screen that shows every live game at once.
| Argument | Type | Description |
|---|---|---|
| league | string | null | A league code, in any case, for that league's live games alone; null for every league's. |
{
"type": "object",
"properties": {
"league": {
"type": [
"string",
"null"
],
"description": "A league code, in any case, for that league's live games alone; null for every league's."
}
},
"additionalProperties": false
}Gets a calendar by its address, the slug at the end of its link: its links, its teams and seasons, and its games between two instants, the next twelve months when none are given. Use it when someone shares a TeamCalendar link.
| Argument | Type | Description |
|---|---|---|
| to | string | null | |
| from | string | null | |
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"to": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"from": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"slug": {
"type": "string",
"pattern": "^(?:^[A-Za-z0-9]{1,32}$)?$",
"minLength": 1
}
},
"additionalProperties": false
}Gets one session's scoreboard by league code, Grand Prix slug, season and stage, such as f1, monaco-grand-prix, 2027 and race: its state, how many laps it has run while live, and its whole classification (place, driver, team, time or gap, laps, grid, fastest lap), with the weekend's other sessions. Answers "who is leading the race", "who won qualifying" and "where did Hamilton finish".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case. |
| slug* | string | The meeting's evergreen slug, such as monaco-grand-prix. |
| stage* | string | The session's stage code, such as qualifying or race. |
| season* | integer | The edition's year. |
{
"type": "object",
"required": [
"code",
"slug",
"season",
"stage"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case."
},
"slug": {
"type": "string",
"description": "The meeting's evergreen slug, such as monaco-grand-prix."
},
"stage": {
"type": "string",
"description": "The session's stage code, such as qualifying or race."
},
"season": {
"type": "integer",
"description": "The edition's year."
}
},
"additionalProperties": false
}Gets one game's scoreboard by game id: both clubs, its state, its line score in the league's columns, and where and when it is played. Answers "what was the score" or "when does it start" for one game.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"minLength": 1
}
},
"additionalProperties": false
}What the home page highlights for a region: a state, province, country or city. An operator's choice when there is one; otherwise the league the country governs (England's, Mexico's), or else the most popular clubs whose venue is in the region. Fails as not found when the region has none, and the home page shows as it always does.
| Argument | Type | Description |
|---|---|---|
| region* | string |
{
"type": "object",
"required": [
"region"
],
"properties": {
"region": {
"type": "string",
"maxLength": 60,
"minLength": 1
}
},
"additionalProperties": false
}Gets a league's scoreboard by league code: today's games and scores, the previous game day's finals and the games of the next three game days. Pass a date for another day, or a team id for that team's recent finals.
| Argument | Type | Description |
|---|---|---|
| code* | string | The league code, in any case. |
| date | string | null | The day the board shows in place of today; null is today in the league's day zone. |
| team | string | null | A club of the league whose last finals Recent holds in place of the league's; null for the league's. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league code, in any case."
},
"date": {
"type": [
"string",
"null"
],
"format": "date",
"description": "The day the board shows in place of today; null is today in the league's day zone."
},
"team": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "A club of the league whose last finals Recent holds in place of the league's; null for the league's."
}
},
"additionalProperties": false
}Gets a tournament's bracket by league code: each pool's table, then every knockout slot with where its two sides come from ("winner of group A", "winner of match 49"), the teams filling them once decided, the games played in it and who went on. Answers "who plays whom next in the World Cup" and "who is left in the NBA Cup".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case (FWWC, nba). |
| season | string | null | The edition's season slug (2026-2027) or page slug (emirates-nba-cup-2026), or null for the league's newest. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case (FWWC, nba)."
},
"season": {
"type": [
"string",
"null"
],
"description": "The edition's season slug (2026-2027) or page slug (emirates-nba-cup-2026), or null for the league's newest."
}
},
"additionalProperties": false
}Gets a league's latest playoff season by league code, with its next four games and whether the playoffs are on now.
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code (NBA, wnba — matched as the league routes match it). |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code (NBA, wnba — matched as the league routes match it)."
}
},
"additionalProperties": false
}Gets a racing series' season by league code, such as f1: the next sessions with their start times, every Grand Prix of the season in round order with its circuit, dates and winner, the latest race's podium, and the drivers' and constructors' championships. Answers "when is the next F1 race", "what time is qualifying" and "who leads the championship".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case. |
| season | integer | null | The season's year; null for the current one. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case."
},
"season": {
"type": [
"integer",
"null"
],
"description": "The season's year; null for the current one."
}
},
"additionalProperties": false
}Gets a league's games from today through the next few days, grouped by day in the league's day zone, with each game's score as the board shows it and its permalink key. Pass days=1 for today alone, or a team id for that club's games. Answers "what games are on today" and "who plays this week".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league code, in any case. |
| days | integer | How many days from today, today included: 1 for today alone, 7 for the week ahead. |
| team | string | null | A club of the league whose games alone the slate holds; null for every club's. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league code, in any case."
},
"days": {
"type": "integer",
"maximum": 7,
"minimum": 1,
"description": "How many days from today, today included: 1 for today alone, 7 for the week ahead."
},
"team": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "A club of the league whose games alone the slate holds; null for every club's."
}
},
"additionalProperties": false
}Gets a league's standings by league code: every club that plays in its current season, in table order, with its place, its regular-season record in the league's columns and, where the league ranks on points, its points. Answers "who leads the league" and "where are they in the standings".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case."
}
},
"additionalProperties": false
}Lists the leagues TeamCalendar follows, such as the NBA or NFL, optionally by sport code, ISO country code (US, GB) or gender (men, women, mixed). A country finds every league that plays there, so CA finds the NHL. A league's code is what list_teams, list_seasons, get_league_playoffs and get_league_board take.
| Argument | Type | Description |
|---|---|---|
| sport | string | null | |
| gender | string | null | |
| country | string | null |
{
"type": "object",
"properties": {
"sport": {
"type": [
"string",
"null"
]
},
"gender": {
"type": [
"string",
"null"
],
"pattern": "^(?:^(?i:men|women|mixed)$)?$"
},
"country": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}Gets a Grand Prix weekend by league code and slug, such as f1 and monaco-grand-prix: where it is held, every session with its start and end time, each session's classification once it has one, and the winner of every other edition. Answers "what time is the Monaco Grand Prix", "when is qualifying" and "who won last year".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case. |
| slug* | string | The meeting's evergreen slug, such as monaco-grand-prix. |
| season | integer | null | The edition's year; null for the current season's, else the latest. |
{
"type": "object",
"required": [
"code",
"slug"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case."
},
"slug": {
"type": "string",
"description": "The meeting's evergreen slug, such as monaco-grand-prix."
},
"season": {
"type": [
"integer",
"null"
],
"description": "The edition's year; null for the current season's, else the latest."
}
},
"additionalProperties": false
}One published post, by its path, ready for a page: its body rendered and its head's tags. A draft, an archived post and no post at all are the same not found.
| Argument | Type | Description |
|---|---|---|
| path* | string | The post's full path, such as products/widget/launch-notes. |
| culture | string | null | The culture to read it in: the request's when left out. A field not yet translated reads in the source. |
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"description": "The post's full path, such as products/widget/launch-notes."
},
"culture": {
"type": [
"string",
"null"
],
"description": "The culture to read it in: the request's when left out. A field not yet translated reads in the source."
}
},
"additionalProperties": false
}Gets a racing driver's season by league code and driver slug, such as f1 and charles-leclerc: the team they drive for, their place, points and wins in the drivers' championship, their season's starts, wins, podiums, poles, best finish, best grid slot and retirements, the next session, and every Grand Prix they have raced with their grid slot, finish, status and points in the race and sprint and their place in qualifying. Answers "where is Leclerc in the championship", "how many podiums has Norris got this year" and "where did Hamilton finish in Monaco".
| Argument | Type | Description |
|---|---|---|
| code* | string | The league's code, in any case. |
| slug* | string | The driver's slug, such as charles-leclerc. |
| season | integer | null | The season's year; null for the current one. |
{
"type": "object",
"required": [
"code",
"slug"
],
"properties": {
"code": {
"type": "string",
"description": "The league's code, in any case."
},
"slug": {
"type": "string",
"description": "The driver's slug, such as charles-leclerc."
},
"season": {
"type": [
"integer",
"null"
],
"description": "The season's year; null for the current one."
}
},
"additionalProperties": false
}Gets a racing team's current season by team id, such as a Formula 1 constructor's: its place, points and wins in the constructors' championship, its drivers, the next session with its start time, and every Grand Prix of the season in date order with its track and how the team's cars finished the race. Answers "when do Ferrari race next", "where are McLaren in the championship" and "how did Red Bull do in Monaco".
| Argument | Type | Description |
|---|---|---|
| id* | string | The team. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"minLength": 1,
"description": "The team."
}
},
"additionalProperties": false
}Lists the sports TeamCalendar follows, such as basketball and hockey, each named in the reader's language. A sport's code filters get_leagues.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Gets one club's next three games and its last three finals, with the league's line-score columns. Takes the id find_teams or list_teams gives. Answers "when is the next game" and "how did the last ones go".
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"minLength": 1
}
},
"additionalProperties": false
}Lists one team's games, home and away, between two instants: the next twelve months when none are given. Takes the id find_teams or list_teams gives. Answers a question about a team's schedule without creating a calendar.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| to | string | null | |
| from | string | null |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"minLength": 1
},
"to": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"from": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": false
}Gets one club's season: every game in it, pre-season, regular season and post-season, each with the club's result and its record after it, and every season held for the club. Takes the id find_teams or list_teams gives, and a season slug such as 2026 or 2025-2026; without one, the current season. Answers "what is their record" and "how did their season go".
| Argument | Type | Description |
|---|---|---|
| id* | string | The club. |
| season | string | null | The season's slug (2026, 2025-2026); the current season when none is given. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"minLength": 1,
"description": "The club."
},
"season": {
"type": [
"string",
"null"
],
"description": "The season's slug (2026, 2025-2026); the current season when none is given."
}
},
"additionalProperties": false
}Lists the seasons a league has games in, oldest first, by the slug a club's season page takes: 2026, or 2025-2026 for a league whose season spans two years. Not the stored season codes list_seasons gives.
| Argument | Type | Description |
|---|---|---|
| code* | string |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false
}Published posts, newest first, at a path and beneath it, or about one thing.
| Argument | Type | Description |
|---|---|---|
| under | string | null | Only posts at this path or beneath it. |
| anchor | string | null | Only posts anchored to this, as kind:key. |
| paging | object | The page to return: the first of 25 unless asked, and at most 200. |
| culture | string | null | The culture to read them in: the request's when left out. A field not yet translated reads in the source. |
{
"type": "object",
"properties": {
"under": {
"type": [
"string",
"null"
],
"description": "Only posts at this path or beneath it."
},
"anchor": {
"type": [
"string",
"null"
],
"description": "Only posts anchored to this, as kind:key."
},
"paging": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"size": {
"type": "integer",
"maximum": 200,
"minimum": 1
}
},
"description": "The page to return: the first of 25 unless asked, and at most 200.",
"additionalProperties": false
},
"culture": {
"type": [
"string",
"null"
],
"description": "The culture to read them in: the request's when left out. A field not yet translated reads in the source."
}
},
"additionalProperties": false
}Lists a league's seasons by league code, such as its regular season and playoffs. Pass season ids to create_composed_calendar to follow only those seasons.
| Argument | Type | Description |
|---|---|---|
| code* | string |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false
}Lists a league's teams by league code, such as NBA, ordered by name. A team's id is what get_team_schedule and create_composed_calendar take; find_teams finds one by name instead.
| Argument | Type | Description |
|---|---|---|
| code* | string |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false
}Lists the leagues with a game or session being played or starting within the next week, in display order, each with the start of its next one, whether it plays today in its own day zone, and, for a racing series, the session in play or next. Answers "which leagues are playing now".
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Changes how a calendar's events read, for every team of a league or sport in it (leagues, sports, by code such as NFL or SOCCER) or for the whole calendar. The settings: games all, home or away (a team's games kept); names short or long (club names in titles); scoreRevealHours 0 (right away), 24, 48, 96 or -1 (never), the hours after the start before a result shows; alarmMinutes 0 (none), 30, 60 or 90 before the start. A team reads its own choice first (save_team_settings), then its league's, its sport's, the calendar's, then the standard (all games, short names, score right away, alarm 60 minutes). A league or sport named replaces what it had, one named with no choices is cleared, one left out is kept; the calendar's own four are replaced as sent. With applyToAllTeams, the teams' own choices of what the calendar states are cleared. Answers with every setting the calendar now holds.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The calendar's address. |
| settings* | object | The calendar's own four choices, each left out being the standard, and any of its sports' or leagues' by code ({"leagues": {"NFL": {"games": "home"}}}). A league or sport named replaces what it had, one named with no choices is cleared, and one left out keeps what it had. |
| applyToAllTeams | boolean | Also clears these choices from every team, so they all follow the calendar. |
{
"type": "object",
"required": [
"slug",
"settings"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^(?:^[A-Za-z0-9]{1,32}$)?$",
"minLength": 1,
"description": "The calendar's address."
},
"settings": {
"type": "object",
"properties": {
"games": {
"enum": [
"all",
"home",
"away",
null
],
"type": [
"string",
"null"
],
"description": "All of a team's games, its home games, or its away games. Head-to-head games only."
},
"names": {
"enum": [
"short",
"long",
null
],
"type": [
"string",
"null"
],
"description": "Short club names in titles, or both clubs' full names. Head-to-head games only."
},
"sports": {
"type": [
"object",
"null"
],
"description": "Its choices for every team of one sport, by sport code (SOCCER).",
"additionalProperties": {
"type": "object",
"properties": {
"games": {
"enum": [
"all",
"home",
"away",
null
],
"type": [
"string",
"null"
],
"description": "All of a team's games, its home games, or its away games. Head-to-head games only."
},
"names": {
"enum": [
"short",
"long",
null
],
"type": [
"string",
"null"
],
"description": "Short club names in titles, or both clubs' full names. Head-to-head games only."
},
"version": {
"type": "integer",
"description": "The shape of the stored JSON."
},
"alarmMinutes": {
"type": [
"integer",
"null"
],
"description": "Minutes before the start an alarm goes off: AlarmOff, 30, 60 or 90."
},
"scoreRevealHours": {
"type": [
"integer",
"null"
],
"description": "Hours after the start before a result shows: ScoreImmediately, 24, 48, 96 or ScoreNever."
}
}
}
},
"leagues": {
"type": [
"object",
"null"
],
"description": "Its choices for every team of one league, by league code (NFL).",
"additionalProperties": {
"type": "object",
"properties": {
"games": {
"enum": [
"all",
"home",
"away",
null
],
"type": [
"string",
"null"
],
"description": "All of a team's games, its home games, or its away games. Head-to-head games only."
},
"names": {
"enum": [
"short",
"long",
null
],
"type": [
"string",
"null"
],
"description": "Short club names in titles, or both clubs' full names. Head-to-head games only."
},
"version": {
"type": "integer",
"description": "The shape of the stored JSON."
},
"alarmMinutes": {
"type": [
"integer",
"null"
],
"description": "Minutes before the start an alarm goes off: AlarmOff, 30, 60 or 90."
},
"scoreRevealHours": {
"type": [
"integer",
"null"
],
"description": "Hours after the start before a result shows: ScoreImmediately, 24, 48, 96 or ScoreNever."
}
}
}
},
"version": {
"type": "integer",
"description": "The shape of the stored JSON."
},
"alarmMinutes": {
"type": [
"integer",
"null"
],
"description": "Minutes before the start an alarm goes off: AlarmOff, 30, 60 or 90."
},
"scoreRevealHours": {
"type": [
"integer",
"null"
],
"description": "Hours after the start before a result shows: ScoreImmediately, 24, 48, 96 or ScoreNever."
}
},
"description": "The calendar's own four choices, each left out being the standard, and any of its sports' or leagues' by code ({\"leagues\": {\"NFL\": {\"games\": \"home\"}}}). A league or sport named replaces what it had, one named with no choices is cleared, and one left out keeps what it had.",
"additionalProperties": false
},
"applyToAllTeams": {
"type": "boolean",
"description": "Also clears these choices from every team, so they all follow the calendar."
}
},
"additionalProperties": false
}Changes how one team's games read in a calendar that follows it, over its league's and the calendar's settings (save_calendar_settings). The settings: games all, home or away; names short or long (both clubs' names in titles); scoreRevealHours 0 (right away), 24, 48, 96 or -1 (never); alarmMinutes 0 (none), 30, 60 or 90. The four are replaced as sent: one left out follows the league, then the calendar. A race has no opponent and no home or away, so only the score and the alarm change a racing team's events. Fails when the calendar doesn't follow the team. Answers with every setting the calendar now holds.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The calendar's address. |
| teamId* | string | A team the calendar follows. |
| settings* | object | Every choice the team makes for itself; one left out is as the calendar. |
{
"type": "object",
"required": [
"slug",
"teamId",
"settings"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^(?:^[A-Za-z0-9]{1,32}$)?$",
"minLength": 1,
"description": "The calendar's address."
},
"teamId": {
"type": "string",
"format": "uuid",
"minLength": 1,
"description": "A team the calendar follows."
},
"settings": {
"type": "object",
"properties": {
"games": {
"enum": [
"all",
"home",
"away",
null
],
"type": [
"string",
"null"
],
"description": "All of a team's games, its home games, or its away games. Head-to-head games only."
},
"names": {
"enum": [
"short",
"long",
null
],
"type": [
"string",
"null"
],
"description": "Short club names in titles, or both clubs' full names. Head-to-head games only."
},
"version": {
"type": "integer",
"description": "The shape of the stored JSON."
},
"alarmMinutes": {
"type": [
"integer",
"null"
],
"description": "Minutes before the start an alarm goes off: AlarmOff, 30, 60 or 90."
},
"scoreRevealHours": {
"type": [
"integer",
"null"
],
"description": "Hours after the start before a result shows: ScoreImmediately, 24, 48, 96 or ScoreNever."
}
},
"description": "Every choice the team makes for itself; one left out is as the calendar."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.