Link lifecycle
The Lifecycle
Transitions Explained
Links can be created current or already ended. The inclusive end day determines calendar state, independent of whether an end date has just been stored. Clearing or extending the end can reopen a historical link; removing a dated link with any stored end date erases it as a correction.
What Cannot Happen
A past-ended link cannot be explicitly ended again, and removal cannot be reversed under the deleted identity.
Concurrency and Timing
Creates and occupancy-changing writes acquire advisory locks before span checks. Replacements and explicit ends require a version; removal does not. Notes-only edits preserve historical merge overlaps. Opposite-direction custom links can deadlock and require caller retry.