Skip to content

Support Location and Online URL on events (7.0) #190

Open

Description

@edalzell

Originally scoped in transformstudios/zakat.org#2329; moved here since all the work is in this repo.

Agreed approach. Blocking dependency: transformstudios/prime#834. Targets main (7.0); 6.x maintenance continues on the 6.x branch.

Context

Events needs two independent things: an online URL (Zoom, livestream) and a physical place (plain description or address), optionally together for hybrid events.

Through 6.x the addon mostly read undeclared handles and sniffed meaning (link, string/URL location, address, top-level coordinates). 6.2 added declared online_url (non-breaking) and fixed ICS decoration. 7.0 finishes the contract.

Decisions

Release 7.0 breaking, with an update script. Ship Events 7 and the Prime cutover together.
Physical place Declared location group: name (text, localizable — ICS LOCATION) + nested coordinates (latitude / longitude floats).
Online Declared online_url sibling (already on 6.2). Stays outside the place group.
Removed in 7.0 Top-level address, link, URL-sniff on string location, and reading top-level coordinates / string location / address for ICS.
Why nest Logical CP grouping, clean raw data, matches how Prime already nests coords. Declaring top-level coords on 6.x would force a migration for anyone who filled them then jumped to 7 — so coords wait for 7.
Foreign location shapes Runtime: if location is not the expected group (or name isn't a string), skip — never fatal. Events never rewrites Prime/Simple array-shaped location; that's prime#834.

ICS mapping (7.0)

Event LOCATION: URL: GEO:
Physical only location.name — location.coordinates
Online only online_url online_url —
Hybrid location.name online_url location.coordinates

Online-only still puts the join link in LOCATION: so Apple Calendar / Fantastical stay useful without vendor props.

Work

Done on 6.x (v6.2.0), forward-merged to main

Still to do on main (7.0)

Dependency — Prime must rename its location group

7.0 cannot ship into a Prime site until prime#834 is done. Statamic collapses duplicate handles silently (keyBy->handle()). Today Events declares no location, so Prime owns it. Once Events declares a location group, blueprints importing both collide.

Prime keeps its richer UI (details, etc.) under a new handle and migrates its own data. Events' migrator never touches non-string / foreign-shaped location.

Deliberately out of scope

  • venue / spatie addressName() — would unlock X-APPLE-STRUCTURED-LOCATION; new scope.
  • description as a declared field — still documented-but-undeclared.

Steps

Activity

  1. edalzell commented on Sep 9, 2026

    @edalzell
    MemberAuthor

    Plan update

    • 6.x done for this epic: online_url (Add online_url for Zoom and livestream links #209) + ICS fixes. No coordinates fieldset declaration on 6.x.
    • 7.0 (main): nested location group (logical place fields + coordinates), drop address/link/URL sniff, migrator, Prime cutover with Events 7.
    • Forward-merge 6.x → main next; then nest work branches off main.
  2. edalzell commented on Sep 9, 2026

    @edalzell
    MemberAuthor

    Plan rewritten for the nested location group decision:

    • 6.x / v6.2.0 done — #193 shipped; top-level coords on 6.x cancelled (#194 closed)
    • 7.0 — location group (name + nested coordinates), online_url sibling; #195 + #196; ship with prime#834
  3. adnankussair commented on Oct 15, 2026

    @adnankussair
    Member

    @edalzell Please track time to wrap this up here on this issue, original linked ZF issue was closed in favor of this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions