Documentation

Jumping Access · Equipe Extensions

Equipe Extension - FEI Schedule Import

This extension reads an FEI approved schedule (PDF) and updates the meeting in Equipe: prize money of every competition, horses per athlete, extra fees, the qualification lists of the Grand Prix, and the officials.

Features

  • Reads the FEI approved schedule PDF: no typing, no AI — the FEI layout is fixed and read as is
  • Prize money: total prize money, amount from 14th place, prize money chart (25 % or 30 %), currency
  • Horses per athlete: "Number of horses per athlete" written on each competition
  • Extra fees: horse fees, other fees, no-shows / late withdrawals, with their price and VAT rate
  • Fees hidden in notes: "50€ + 21% for small truck", "50€ for larger horse"… become extra fees of their own
  • Grand Prix: "Qualif" and "Reserves" lists created, GP restricted to the Qualif list, "Only allow horses that completed at least one competition" ticked
  • Officials: ground jury, course designers, stewards, veterinarians created as people (official) and set on each competition in the right order — chosen person by person
  • Several weeks: one PDF with Week 1 / Week 2, numbering restarting at 1 or running on
  • Several arenas: arena written on each competition when the schedule uses more than one
  • Respects what already exists: extra fees and lists set up by hand are recognised and left untouched
  • Preview first: nothing is written until you click Apply
  • One undo: every write of a run shares one transaction, undoable in Equipe in one action
  • Safe to run again: a new version of the schedule (V3, V4…) updates what changed, without duplicates

Usage

Import Interface

  • In Equipe, open the meeting (the FEI entries import must already have created the competitions)
  • Click on the "Schedule Import" action

Upload

  • In the window that opens:
    • Choose the FEI approved schedule PDF
    • Click "Preview"
    • The extension displays, week by week:
      • Event, FEI show ID, schedule version, weeks and dates
      • To check: anything it could not match or found inconsistent
      • Competitions to update: each change, old value → new value
      • Extra fees: name, price incl. VAT, VAT rate, date, status
      • Lists: Qualif / Reserves lists of the Grand Prix
      • Officials: role, Equipe type, name, NF, FEI ID, Import / On comp. checkboxes, status
      • Not handled: free fees, Equipe competitions not in the schedule
  • Tick or untick "Import officials", and person by person "Import" / "On comp."
  • Click "Apply" to write everything, or "Probe (1 + 1)" to write one extra fee/list and one competition first and see what Equipe returns

Event

Apply

After Apply, the result and what Equipe returned:

Done

Steps

Step
1 Upload the schedule The FEI approved schedule PDF
2 Review Nothing is written yet
3 Probe (optional) One extra fee/list + one competition
4 Apply Everything, in one transaction

Status Indicators

  • new: will be created
  • exists · 128: created by this extension on a previous run, will be updated
  • already in Equipe · 27 « NCH - Non Competing Horse » — left as is: made by hand, recognised, not touched
  • already up to date: competition already holds the schedule's values

What Is Written

Competitions

Field From the schedule Example
Prize money (premietxt1) Total prize money, amount from 14th place 4000, 10 — GP « N/A » → 120000
prsum1 Total prize money 4000
Prize money chart Chart 1 → 25 %, Chart 2 → 30 % 25
Currency EUR
Max horses per rider Number of horses per athlete 2
Arena (tavlingspl) Competition arena, without "Arena" — only if several arenas Nelson Pessoa
Class number (clabb) Only if several weeks numbered from 1 each W1-5, W2-5

Only fields whose value changes are sent.

Competitions to update

Grand Prix

  • Every GP (article -GP or "Grand Prix" in the name): "Only allow horses that completed at least one competition" ticked
  • GP with a qualification system:
    • List Qualif CSI2 (code Qualif-CSI2) and Reserves CSI2 (code Reserves-CSI2)
    • Several weeks: W1 Qualif CSI3* / W1-Qualif-CSI3
    • Dated like the masterlists of the week
    • The GP accepts only the riders of the Qualif list (only_rider_list_ids)
  • The lists are created empty: they are filled by the Qualifications extension, which shows them in its "Destination Lists" by their code

Extra Fees

  • One extra fee per line of HORSE FEES, OTHER FEES and NO-SHOWS AND LATE WITHDRAWALS, per week
  • Dated 2 days before the first competition of the week
  • Price VAT included and VAT rate read from the schedule, line by line (6 / 21 % in Belgium, 5.5 / 10 / 20 % in France…)
  • Club discount off, "Respect 'Do not charge VAT'" on
  • Free lines (0.00 EUR) and ATHLETE FEES are not imported
  • Name: Hay — several weeks: Week 1 - Hay

Extra fees

Fees Hidden in Notes

The schedule:

Fee for lorry parking   95.00 EUR + 21.00% VAT = 114.95 EUR per lorry/caravan
                        50€ + 21% for small truck
                        The fee includes electricity.
Double Boxe            165.29 EUR + 21.00% VAT = 200.00 EUR per box
                        50€ for larger horse

is imported as:

Extra fee Price incl. VAT VAT
Fee for lorry parking 114.95 21 %
Fee for small truck 60.50 21 %
Double Boxe 200.00 21 %
Larger box 50.00 0 %
  • "for X" → Fee for X — "for larger horse" under a box → Larger box — "non EU" → Fee for … (non EU)
  • "+ 21%" → that rate — "+ VAT" → rate of the line, or the most common rate of the schedule — "incl. VAT" / "ttc" → price incl. VAT — nothing stated → 0 %
  • "for 2 weeks" → created once, in week 1
  • A note repeating a price already listed ("90€ ttc inside EU") is not a new fee

No-Shows and Late Withdrawals

  • "Amount charged 250.00 EUR" is printed without VAT: the most common VAT rate of the schedule is added (Liège: 250 + 21 % = 302.50)

Officials

Section V of the schedule ("OFFICIALS").

Choices

Checkbox Where Default
Import officials next to Apply ticked — unticked: nothing is done for officials
Import each line of the Officials table ticked for every role Equipe knows
On comp. each line of the Officials table ticked for Ground Jury President, Foreign Judge, Course designer
  • The competitions table and the counters follow the ticks live
  • Apply sends exactly what is shown

Officials

Foreign Judge unticked "On comp.", a Ground Jury member ticked:

Officials chosen

The competitions follow at once:

Competitions follow

People

  • Each imported official becomes a person in Equipe with official ticked and his FEI ID
  • A person already in Equipe (same FEI ID, or same name and country) is reused, not created twice
  • A person already in Equipe without "official" ticked is shown as not flagged official and left as is

Competitions

  • The officials ticked On comp. go into Officials (officials_data) of every competition of their week and level
    • "All Events" → every competition of the week
    • "CSI2" → only the CSI2 competitions
  • Several weeks: each week has its own officials (section V lists them week by week); a week's competitions get only that week's officials. Gassin: Foreign Judge Kassandra Mohr in week 1, Stephen Lynch in week 2
  • Several course designers: each gets the competitions of his levels (Gassin W1: Ron Hamon Serval on CSI3 / CSI1, Jean Christophe Laparra on CSI2*)
  • In the Officials table, each line is one role in one week (W1 · Foreign Judge): the checkboxes choose week by week
  • Officials already set on a competition are kept
  • Order on every competition: Ground Jury President, Foreign Judge, Ground Jury members, Course Designer, then assistant course designers, technical delegate, stewards
  • A competition already holding the right officials in another order is put back in order ("reordered" in the preview)

Roles

Schedule Equipe type
Ground Jury President ground_jury_president
Ground Jury Member ground_jury_member
Foreign Judge foreign_judge
Technical Delegate technical_delegate
Course designer course_designer
Assistant Course Designer course_designer_assistant
Chief Steward chief_steward
Steward assistant_steward
Veterinary Delegate foreign_veterinary_delegate
Additional Veterinary Delegate veterinary_commission_member
Veterinary Service Manager (VSM) treating_veterinarian_president
Treating Veterinarian treating_veterinarian_member

Farrier and Medical Services are not imported (no Equipe type).

Multi-Week Shows

  • One PDF can hold several weeks ("WEEK 1 - …", "WEEK 2 - …")
  • Numbering may restart at 1 each week (1→26 / 1→26) or run on (1→32 / 33→64): both are handled
  • Numbering restarting at 1 → class numbers become W1-5, W2-5 so they stay unique
  • Extra fees and lists are created per week, prefixed W1 / Week 1

How Competitions Are Matched

  • Class number + date + level: schedule N°6 on 22/10, CSI2 ↔ Equipe competition clabb 6 on 22/10 whose name starts with CSI2
  • If no class number matches: the competition's rank inside its FEI event (end of the FEI id, e.g. …_S_S_01_04 = 4th CSI2* competition) + date + level
  • No single match, or right number but wrong level → nothing is written, the competition is listed under "To check"

What Already Exists in Equipe

When the meeting was set up by hand, the extension reuses what is there instead of creating it twice:

  • Extra fees: same price and same VAT rate; when several share a price (Tackbox / NCH, both 250 € at 21 %), the words of the label decide
  • Qualif / Reserves lists: "Qualif" or "Reserves" + level (+ week) in the name or code, e.g. CSI2*-GPQual "CSI2* Qualif GP"
  • Recognised items are never modified; their number is used to link the GP

Checks

Shown under "To check", nothing is corrected:

  • Sum of the competitions ≠ "Total Prize Money" of the tour
  • Height in the competition name ≠ "Height of obstacles" (e.g. "1m40" with 130 cm)
  • Competition of the schedule not found in Equipe
  • Equipe competition in the show dates but not in the schedule ("Not handled")

Possible Combinations

  • ✅ First import: right after the FEI entries import — prize money, fees and GP lists in one run
  • ✅ New schedule version (V2, V3…): run again, only the changes are written
  • ✅ Meeting set up by hand: only what is missing is created
  • ✅ Several weeks: one PDF, all weeks at once
  • ✅ Officials already set by hand: kept, missing ones added, all put in order

Import Process Flow

  • Read the PDF: weeks, competitions, fees, GP qualification rules
  • Read the meeting: competitions.json (+ people.json when the schedule lists officials)
  • Match competitions, fees and lists; build the preview
  • On Apply:
    • Batch 1: officials (people) + extra fees + Qualif / Reserves lists
    • Read competitions.json once to get the numbers of the new lists (and people.json if officials were created)
    • Batch 2: competitions, with the GP linked to its Qualif list and the officials set

Settings

Everything has a default. To change one, add the line to config.php:

Setting Default
'fee_days_before' => 2, 2 Extra fees dated N days before the week's first competition
'skip_free_fees' => true, true No extra fee for 0.00 lines
'extra_fee' => ['klubbrab' => true], off Club discount on every extra fee
'qualified_prefix' => 'Qualif', Qualif Name of the qualified riders list
'reserves_prefix' => 'Reserves', Reserves Name of the reserve riders list
'week_clabb' => false, true Keep class numbers as they are on multi-week shows
'link_gp_qualified' => false, true Do not restrict the GP to the Qualif list
'import_officials' => false, true No officials at all (nothing read, checkbox greyed)
'competition_official_roles' => ['Ground Jury President', 'Foreign Judge', 'Course designer', 'Technical Delegate'], the 3 roles Roles ticked "On comp." by default
'officials_order' => ['ground_jury_president', 'foreign_judge', 'ground_jury_member', 'course_designer'], President, Foreign Judge, members, CD… Order of the officials on a competition
'official_types' => ['Steward' => 'judge'], table above Change the Equipe type of a role

Requirements

  • pdftotext (poppler-utils) on the server
  • The meeting's competitions created by the FEI entries import

Troubleshooting

  • "No competition could be read from this PDF": the file is not an FEI approved schedule, or pdftotext is missing
  • A competition is under "To check": its class number or date differs between the schedule and Equipe — correct it in Equipe and run Preview again
  • An extra fee is created although it exists: its price or VAT rate differs from the schedule — align it in Equipe, or delete the new one
  • The GP is not linked to the Qualif list: run Apply again — the list now exists and will be linked
  • The Qualif list does not appear in the Qualifications extension: that extension shows only lists dated in the current week (Monday–Sunday)
  • An official is not on the competitions: tick "On comp." on his line before Apply
  • An official is created twice: the person in Equipe has no FEI ID and a different name spelling — add the FEI ID to the person in Equipe
  • Something went wrong: undo the run in Equipe (one transaction), fix, and run again
Schedule_Import.md Last update: 05/10/2026 à 18:36