Import once, or subscribe?

An import reads the file once and creates events. After that the two are unrelated: edit the WordPress copy and the original does not change, and vice versa. Right for a one-time migration, or for a published programme that is not going to move.

A subscription re-reads the source on a schedule and keeps the site in step. Right when the calendar continues to be maintained somewhere else. The WordPress copy becomes a reflection, and editing it is pointless because the next sync overwrites you.

Decide which one you are doing before you start, because the failure modes are opposite: an import that you treat as a subscription silently goes stale, and a subscription that you treat as an import throws your edits away.

The duplication problem

Every VEVENT carries a UID — a stable identifier that stays the same across exports. A well-built importer records it and uses it to recognise the same event next time. A poor one matches on title and date, or does not match at all, and every re-import creates a second copy of everything.

Check the reader above: if your file's events have sensible UIDs, re-importing is safe with a decent plugin. If UIDs are missing or regenerated on every export — which some exporters do — no importer can reliably deduplicate, and you should import once and never again.

Check these three things first

Recurring events. Does the file contain rules, and are they the kind your importer understands? A file full of ordinal rules imported by a plugin that does not handle them produces a calendar full of wrong dates that nobody notices for a month.

Timezones. Events without a timezone will be interpreted in whatever zone the importer prefers. If your file has floating times, decide what they mean and fix them at the source before importing, not after.

Size. A calendar with years of history can be a large file with thousands of events. Importing all of it fills your database with past events nobody will ever look at. Most people want the future and perhaps the last few months; if your importer cannot limit the range, trim the export instead.

Do it on a staging copy first

Import into a copy of the site, look at what you got, and only then do it for real. An import is easy to run and tedious to undo — a thousand events created by a mis-parsed file take a long time to remove one at a time, and “delete everything with today's date” will take your real events with it.