Import your schedule via CSV
Instead of creating every match of a season one by one, you can import a team's entire fixture list at once from a CSV file. Known opponents are automatically matched with their logo and address.
You'll find the import via the "Schedule" menu item, then the "Import schedule" button.
1. Select a team
The import always runs for one team at a time β exactly how you'd receive a fixture list from your league. There's no team column in the CSV; you pick the team directly on the import page instead.
2. Choose an import mode: Create or Update
Before uploading a file, you choose one of two import modes:
- Create new matches (default) β creates new matches. Matches that already exist (same opponent + same date) are skipped. The right choice for a season's first import.
- Update existing matches β meant for later corrections, e.g. when your league moves a date or changes the venue. Spieltag.Studio recognizes an existing match against the same opponent (home or away) independent of the date, and updates the date, time, competition, matchday and address. New fixtures that additionally appear in the file are created as usual.
π‘ Since most leagues play each opponent twice (home and away), the update match is keyed by home/away too β so the first-leg fixture against an opponent never gets confused with the second-leg fixture against the same opponent.
For update mode there's a second button next to "Download template": "Download current schedule". It downloads your already-saved schedule for the selected team in the same CSV format β with the real opponent names exactly as stored. That way you can correct the date, time or venue directly without having to retype opponent names by hand and risk a mismatch.
3. Download the template
Click "Download template". You'll get a CSV file with all columns and two example rows. Open it in Excel, Google Sheets, or a text editor and fill in your matches.
π Important: The column names always stay in English (
date,opponent,home_away, etc.), regardless of which language you use the app in. This is intentional β a fixed, technical format works worldwide without ambiguity.
4. The columns in detail
| Column | Required? | Format | Example |
|---|---|---|---|
| date | β
Required | YYYY-MM-DD | 2026-08-15 |
| time | optional | HH:MM | 15:00 |
| opponent | β
Required | free text | SV Musterstadt |
| home_away | β
Required | exactly Home or Away | Home |
| competition | optional | free text | Cup Round 1 |
| matchday | optional | free text | Matchday 12 |
| street, zip, city, venue | optional | free text | only relevant for Away |
Why exactly YYYY-MM-DD?
It's the only date format that's unambiguous anywhere in the world. 03/04/2026 means April 3rd in Europe but March 4th in the US β that's why we deliberately avoid any locale-specific format.
Why Home/Away instead of a translated word?
Same reason: one spelling that stays the same no matter which language your app is set to. Please use exactly Home or Away (case doesn't matter, but no abbreviations like "H" or "A").
5. The special case: competition
Most of the time you don't need to fill in this column at all.
If you leave it empty, the import automatically uses the league you've set up for this team in your club profile (e.g. "Kreisliga B") β a full season file is almost always a league season anyway.
You only need to fill it in when a single row is not a league match, for example:
- a cup match in between β
competition=Cup Round 1(or any text you like) - a friendly β
competition=Friendly
There's no fixed list of allowed values β you can enter whatever text fits your match.
6. Away match address
street, zip, city and venue are entirely optional and only used when home_away is Away. For home matches the import ignores these columns, since your own address is already stored in your club profile.
Once you've entered an opponent's address (via CSV or manually), Spieltag.Studio remembers it for that opponent β you won't need to enter it again for the next away match against the same club.
7. What happens with your opponents
For every row, the import checks whether the opponent name already exists for your club:
- Known opponent β logo (if one was uploaded before) and address (if stored) are applied automatically.
- New opponent β gets created without a logo. As soon as you manually create a graphic against this opponent and upload a logo, it's saved automatically for future imports and selections.
8. Preview before importing
After uploading, Spieltag.Studio shows you a preview table before anything is saved:
- Known opponent (with logo) β green
- New opponent β blue
- Will be updated β update mode only: the match already exists and will be overwritten with the new data
- Already exists β will be skipped β default mode only: matches with the same opponent and date that already exist won't be duplicated
- Error β e.g. an invalid date or an empty required field
Matches are only created or updated once you click "Confirm import".
Two more things help before confirming: date and opponent can be clicked and corrected directly in the preview β handy if a reading mistake slipped in (especially with the AI-powered PDF import). And a checkbox per row (checked by default) lets you exclude individual matches from the import without editing the whole file.
9. Free and Pro plans
- Pro and above: unlimited imports, no row limit
- Free: a one-time import of up to 15 matches
What to read next
Discover all blog articles
π View all articles
Discover all Spieltag.Studio features
π View all features
