# Import and Export ADIF

OpsLog is **ADIF 3.1.7 compliant**: a full field dictionary, 30 promoted columns,
a generic "extra fields" editor for anything not promoted, and standard/all
export modes.

## Import

**File → Import** (`Ctrl+O`) → pick an `.adi` / `.adif` file → the **Import ADIF**
dialog opens with the options below. Import runs into the **active profile's**
logbook. A file **without a header** (records pasted from another log) imports
fine. Progress shows live; a summary follows — imported / updated / duplicates /
skipped / total — with expandable **error** and **duplicate** lists.

### Duplicate handling

A **duplicate** is a record with the same **callsign + UTC minute + band + mode**
as a QSO already in the logbook. Pick how they are treated:

| Mode | What it does |
|------|--------------|
| **Skip duplicates** *(default)* | Adds only new QSOs; existing ones left untouched. Safe default. |
| **Update duplicates** | Merges the file's non-empty fields (QSL / LoTW / eQSL / QRZ statuses & dates, etc.) onto the matching QSO — fields the file omits are kept. Use to re-sync from Log4OM or LoTW. |
| **Import everything** | Inserts every record, duplicates included. For deliberately merging two overlapping logs. |

### Enrichment options

- **Fix country & zones (cty.dat + ClubLog)** *(on by default)* — recompute
  Country, DXCC and CQ/ITU zones from `cty.dat`, overriding the file. Corrects
  what contest software exports wrong (e.g. RG2Y tagged Asiatic instead of
  European Russia). ClubLog's date-ranged DXpedition overrides are applied on top
  per QSO date (e.g. TO2A in 2012 → French Guiana) whenever the ClubLog data is
  downloaded. Everything else in the ADIF is kept as-is. *Tip: combine with
  **Update duplicates** to re-fix QSOs already in your log.*
- **Fill my station fields from my profile** *(off by default)* — backfill empty
  `MY_*` fields (grid, rig, antenna, address, city, state, county, SOTA/POTA ref,
  TX power…) plus Operator and Owner callsign from the active profile. Existing
  values are kept; only `STATION_CALLSIGN` is left untouched so a mixed-call log
  isn't re-routed. It **also** stamps your default confirmation statuses (paper
  QSL, LoTW, eQSL, Club Log, HRDLog, QRZ.com — sent & received) on QSOs the file
  leaves empty. Enable when importing **your own** log; leave off for someone
  else's.

### Field remapping (move fields on import)

Contest software stores the exchange where its own module keeps it. The RSGB IOTA
contest, for example, exports the island reference in `STATE` — imported as-is it
becomes a US state and the IOTA award stays empty. Click **"The file puts a field
in the wrong place…"**, then add a `STATE → IOTA` row (add as many rows as you
need). The destination is filled **only where the file left it blank**.

### Unknown fields

Any valid ADIF field OpsLog doesn't promote to a column is preserved in a per-QSO
**extras** store — editable later and re-exported intact. Nothing valid is
dropped.

## Export

- **Whole log**, **selected rows**, or the **filtered view** (no limit) — see
  [[Recent QSOs and Filters]].
- **Standard** mode exports the common promoted fields; **All** mode also
  exports every extra field; **Choose fields…** opens a picker that separates
  the official ADIF 3.1.7 fields (by category) from the OpsLog / non-standard
  tags actually present in your log, with All/None per group. Your selection is
  remembered.
- **Cabrillo** export for contest submission.

## Round-trip safety

Award references you assign manually are stored in an ADIF extra field
(`APP_OPSLOG_AWARDREFS`), so exporting your full log and re-importing it does
not lose your award-reference assignments.

## Tips

- To move a batch of QSOs between logs, export selected → import into the other
  profile.
- Re-syncing statuses from another logger (Log4OM, LoTW, QRZ)? Import the file
  with **Update duplicates** — it merges the new confirmations onto your existing
  QSOs without creating copies.
- Use **Find duplicates** (Tools) after importing to catch overlaps.
