Team Importer V5.3.2 • 100% Free

Add Your Team

Upload your roster or schedule as Word, Excel, CSV, PDF, screenshots, photos, or text. AI fills the team setup, or load a ready-made JSON packet without AI.

Upload Team Info

Select your roster, schedule, Word file, Excel sheet, CSV, PDF, screenshot, photo, or text file. You can mix documents. Upload a ready-made JSON packet by itself to skip AI.

Drag & drop team files here JSON packet, Word, Excel, CSV, PDF, images, or text. Up to 6 documents, or one JSON packet.
0Players
0Games
0Practices
0Tryouts

Review Your Team Import

Check the roster, linked photos, and all games before saving.

Nothing is saved yet
Photo Sources Source approval is checked when a packet loads.
Packet source notes

1 Team Basics

Used for team/contact setup.
Helps families find the right team.
You can adjust later if needed.

2 Invite Parents

Optional, but this makes the invite feel more personal.
This is only the public team photo. It is separate from the documents AI reads above.
Team picture preview
Legacy / Manual AI Import

Legacy / Manual AI Import

Backup method only. Use this if you already have AI-generated JSON or need the old copy/paste workflow.

AI extraction prompt Copy this, paste it into ChatGPT with the coach schedule and roster/contact sheet, then bring the JSON result back here.
You are helping me bulk import a youth sports team into MVPeeps.com.

I will give you two coach documents, screenshots, photos, copied tables, or text blocks:
1) a team schedule sheet
2) a team roster/contact sheet

Extract the information and return ONLY valid JSON. No markdown. No explanation. No code fence.

Use this exact JSON shape:
{
  "team": {
    "team_name": "",
    "sport": "",
    "season": "",
    "division": "",
    "coach_name": "",
    "team_email": "",
    "zip_code": "",
    "max_players": ""
  },
  "players": [
    {
      "player_number": "",
      "jersey_number": "",
      "player_name": "",
      "age": "",
      "position": "",
      "parent_1_name": "",
      "parent_2_name": "",
      "phone": "",
      "email": ""
    }
  ],
  "schedule": [
    {
      "event_type": "game",
      "date": "YYYY-MM-DD",
      "time": "6:30 PM",
      "home_away": "Home",
      "opponent": "",
      "location": "",
      "notes": ""
    }
  ],
  "practices": [
    {
      "event_type": "practice",
      "date": "YYYY-MM-DD",
      "time": "6:00 PM",
      "title": "Practice",
      "location": "",
      "notes": ""
    }
  ]
}

Rules:
- Return JSON only.
- Use 4-digit years.
- Convert all dates to YYYY-MM-DD.
- Use Home, Away, or Practice exactly.
- If the year is not shown, infer the season year from the document title.
- If age is not shown but the division says 10U, set age to 10.
- If jersey number is not shown, use player_number when available.
- Parent contact data is private coach/admin data.
- Use blank strings for missing values.
- Do not invent real people. If data is unclear, leave that field blank.
- Keep each player as one row.
- Keep each game/practice as one row.
Paste Existing AI JSON Paste JSON from the old workflow only.
Private parent names, phone numbers, and emails are saved to a private team contact table. Public player profiles only use the normal athlete fields.

3 Optional Fundraising

This can show with your team donation link.
Donation link: Not added
Choose a donation platform or clear the username/email.