← Back to Skills
Cron

knhb-hockey

tader By tader 👁 6 views ▲ 0 votes

Query Dutch field hockey match schedules and results from KNHB Match

GitHub
---
name: knhb-hockey
description: Query Dutch field hockey match schedules and results from KNHB Match Center (hockeyweerelt.nl). Use when looking up hockey clubs, teams, upcoming matches, or match results in the Netherlands.
---

# KNHB Hockey Match Center

Query the Dutch Hockey Federation (KNHB) Match Center API for clubs, teams, and matches.

## API Base URL

```
https://publicaties.hockeyweerelt.nl/mc
```

## Endpoints

### List all clubs
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/clubs" | jq '.data[]'
```

Response includes: `id`, `name`, `abbreviation`, `city`, `district.name`, `logo`, `hockey_types[]`

### Search clubs by name or city
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/clubs" | jq '.data[] | select(.name | test("Westland"; "i"))'
curl -s "https://publicaties.hockeyweerelt.nl/mc/clubs" | jq '.data[] | select(.city | test("Delft"; "i"))'
```

### List teams for a club
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/clubs/{clubId}/teams" | jq '.data[]'
```

Response includes: `id`, `name`, `short_name`, `type` (Veld/Zaal), `category_group`, `category_name`, `next_match_date`

### Get upcoming matches for a team
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/teams/{teamId}/matches/upcoming" | jq '.data[]'
```

### Get official (played) matches for a team
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/teams/{teamId}/matches/official" | jq '.data[]'
```

Match response includes:
- `datetime` — ISO 8601 format (UTC)
- `location.city`, `location.street`, `location.description`
- `home_team.name`, `home_team.club_name`
- `away_team.name`, `away_team.club_name`
- `home_score`, `away_score` — null for upcoming matches
- `competition`, `poule`, `status`, `field`

## Common Queries

### Find a club and list its teams
```bash
# Find club ID
CLUB_ID=$(curl -s "https://publicaties.hockeyweerelt.nl/mc/clubs" | jq -r '.data[] | select(.name | test("Westland"; "i")) | .id' | head -1)

# List teams
curl -s "https://publicaties.hockeyweerelt.nl/mc/clubs/${CLUB_ID}/teams" | jq -r '.data[] | "\(.id) \(.name) (\(.type)) - next: \(.next_match_date)"'
```

### Get next match for a specific team
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/teams/{teamId}/matches/upcoming" | jq '.data[0] | {
  date: .datetime,
  home: .home_team.name,
  away: .away_team.name,
  location: .location.city,
  field: .field
}'
```

### Format match schedule nicely
```bash
curl -s "https://publicaties.hockeyweerelt.nl/mc/teams/{teamId}/matches/upcoming" | jq -r '.data[] | "\(.datetime | split("T")[0]) \(.datetime | split("T")[1] | split(".")[0] | .[0:5]) - \(.home_team.name) vs \(.away_team.name) @ \(.location.city)"'
```

## Team Categories

- **Senioren**: Adult teams (H1, D1, etc.)
- **Junioren**: U18-U21
- **Jongste Jeugd**: Youth teams (MO/JO prefixes)
  - MO = Meisjes Onder (Girls Under)
  - JO = Jongens Onder (Boys Under)
  - Example: MO11 = Girls Under 11

## Notes

- **Datetime is in UTC** — add 1 hour for Amsterdam winter time (CET), 2 hours for summer (CEST)
- Use `date` command or proper date library to convert and get correct day of week
- `type: "Veld"` = outdoor field hockey, `type: "Zaal"` = indoor hockey
- **Teams have separate IDs for Veld and Zaal** — always query both to get complete schedule
- Veld season: ~Sep-Jun (outdoor), Zaal season: ~Nov-Mar (indoor)
cron

Comments

Sign in to leave a comment

Loading comments...