All articles

ICS UID and SEQUENCE: why a changed title is still the same meeting

A meeting renamed from “Planning” to “Launch planning” can remain the same event. Its title is not the interchange identifier. When an update creates a second entry, compare the event identity and delivery route before deleting either copy.

Illustrative identity comparison

ObservationLikely interpretation to investigateNext check
Same title, different UIDSeparate identities, possibly a copyOwning calendars and creation route
Same UID, higher SEQUENCEA later revision may be involvedOrganizer and supported update route
Same UID, different RECURRENCE-IDDifferent instances in one seriesOriginal occurrence dates
Same file imported twiceRepeated snapshot operationDestination import behavior; not live sync

Start with UID, not the title

RFC 5545 section 3.8.4.7 defines UID as a persistent, globally unique identifier. Calendar systems use it to correlate scheduling requests with later replies, modifications and cancellation requests. Two different meetings may share a title, while one meeting may change its title and time.

A UID that resembles an email address is still an identifier; it does not by itself establish the organizer’s email address or grant permission. Preserve the complete value while investigating a harmless sample. Do not replace it with a newly generated value merely because a meeting was edited.

Read the revision number in context

SEQUENCE describes the component’s revision sequence. Section 3.8.7.4 says it begins at zero and the organizer’s calendar system increments it for significant revisions. It is not an attendance count, a timestamp or an instruction requesting an RSVP.

Imagine a fictional event with UID:planning-demo@example.invalid. The original is SEQUENCE:0 at 10:00Z. A revised invitation has the same UID, SEQUENCE:1 and a new 11:00Z start. That is an illustrative revision relationship. It is not a promise that every file-import command recognizes or replaces the first entry.

Distinguish delivery from identity

An account connection or scheduling message and a user importing a downloaded file are different paths. Google explicitly says imported events do not stay in sync between accounts. A matching UID does not turn a one-time import into a live subscription or guarantee how every application resolves repeated imports.

For a duplicate report, record whether the second entry arrived through an invitation email, an account sync, a subscription or another import. Compare both owning calendars as well as UID and the revision information you can inspect. Similar text on two calendars is not enough to prove the records are the same.

Handle recurring events and suspicious updates carefully

A recurring series uses UID for the set, with RECURRENCE-ID identifying a particular instance. Comparing only the UID can mistake a legitimate exception for a duplicate. The occurrence identifier refers to the original scheduled start, even when that occurrence has been moved.

This diagnostic guide does not claim Cloud Calendars exposes raw UID or SEQUENCE fields. Use the original provider or an authorized support export if needed. Do not accept a calendar file as an authorized update solely because its text contains a familiar UID: sender identity and scheduling authorization also matter.

What it looks like

  • Week calendar with color-coded appointments
  • Weather view with hourly and daily forecasts

Cloud Calendars overview, using our product images. Provider settings and protocol examples described in this guide are separate from the screens shown here.

What to do

  1. Keep both records while identifying their owning calendars.
  2. Compare UID rather than relying on titles alone.
  3. For a recurring series, include RECURRENCE-ID in the comparison.
  4. Check revision and delivery route with the organizer or provider before removing a copy.

Questions

Does a higher SEQUENCE request an RSVP?
No. The RFC distinguishes revision numbering from the RSVP parameter on an attendee.
Will importing another file with the same UID always replace the old event?
No universal import behavior is promised. A scheduling identity does not make a snapshot import an updating connection.

Primary documentation used for this guide

Related