In more detail
The format is defined by RFC 5545. A file is a VCALENDAR block containing one or more components such as VEVENT (events), VTODO (tasks) and VTIMEZONE (time-zone rules). Each event needs a UID and a DTSTAMP, and usually has DTSTART, DTEND or DURATION and SUMMARY. Repeating events use an RRULE such as FREQ=WEEKLY;COUNT=4. Lines end in CR LF and lines longer than 75 bytes are folded onto continuation lines that start with a space.
Why it matters
Time zones cause most problems. A trailing Z marks UTC; a TZID=Europe/Madrid parameter ties the time to a named zone that follows daylight saving; a time with neither is "floating" and shows the same clock time wherever the viewer is. The UID identifies the event: sending a new file with the same UID updates the event instead of creating a duplicate.
Example
A minimal one-hour meeting on 20 October 2026 at 14:30 UTC, repeating for four weeks:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example//Calendar//EN
BEGIN:VEVENT
UID:[email protected]
DTSTAMP:20261009T120000Z
DTSTART:20261020T143000Z
DTEND:20261020T153000Z
RRULE:FREQ=WEEKLY;COUNT=4
SUMMARY:Team review
END:VEVENT
END:VCALENDAR