Ulsav Docs

Event Visibility

Public, unlisted, and private: what each changes for discovery, direct links, indexing, and public checkout

Visibility is the reach dimension. It decides whether a public read resolves and whether discovery lists the Event; it does not change price, eligibility, or refunds once an entry exists.

ValueIn discoveryDirect URLIndexing
publicListedWorksIn the pooled sitemap
unlistedAbsentWorksNot listed; the page has no noindex directive
privateAbsentReturns not found to every public readerNot reachable anonymously

The default is public. An organizer changes visibility with events.update, and the change is an ordinary Event update.

Public

A public Event is listed in the marketplace and included in the sitemap's pooled Event list. It is also reachable through its canonical Ulsav path and any verified custom Domain mapped to it.

Public discovery shows what a browsing stranger needs:

FieldWhat is shown
NameThe Event's name and its organizer
CategoryThe format axis
DateWhen the Event happens
CityThe gazetteer city or locality
Price indicationFree, a from-price, or Sales not open
Participation modeWhat the Event offers

Topics filter discovery but are not returned on a result card.

Two properties of public discovery are deliberate.

  • Live operational data. The price indication and whether any Pass is active are read from the Pass rows rather than a search copy, so a card cannot advertise a price the checkout will not honour.
  • Ranking is date, distance, or relevance. There is no popularity ranking and no paid placement.

Unlisted

An unlisted Event is absent from discovery and the sitemap but fully reachable by anyone holding the link. It still sells, still appears on its Group and Series pages, and still behaves like a published Event in every other respect.

Unlisted is a distribution choice, not an access control. It suits a link shared in a newsletter, a private community, or a partner page. It is not a way to hide an Event from someone determined to find it, and it is not a substitute for a Requirement when access genuinely must be restricted.

Private

A private Event is absent from every public read. The public API returns the same not-found problem an absent Event produces, for every public reader.

That is intentional — a distinct "you may not see this" reply would confirm the Event exists and leak its existence across Organizations.

The practical consequence is that a private Event is not filled through the ordinary public checkout path. The supported route is an issued or imported Registration, which bypasses visibility because the organizer is asserting the attendee.

Issuance is complimentary-only, so a private paid Event has no self-serve sale path in the current scope.

UNLISTED — a distribution choice

  • Absent from discovery and the sitemap, but reachable by anyone holding the link
  • Still sells, and still appears on its Group and Series pages
  • Not an access control, and not a substitute for a Requirement

PRIVATE — an absence, not an invitation

  • Absent from every public read, including the direct URL
  • Readable only through the organizer API by a member with Event read authority
  • Not filled through the ordinary public checkout path; an issued or imported Registration is the supported route

What visibility does not change

  • Money. Currency, tax, fee, discounts, and refund policy are identical across all three values.
  • Eligibility. A Requirement on a public path applies regardless of visibility. Admin issuance does not evaluate requirement gates.
  • Moderation. A suspended Event is suspended whether it is public, private, or unlisted.
  • Hostnames. A Domain, an EventGroup subdomain, or the marketplace apex resolves which page is served. Host resolution never establishes authorization.
  • Exact location in discovery. Discovery strips the venue name, street address, and precise point unless the Event sets showExactVenue. The public Event page still renders the stored venue name and address; the flag controls its map.

Public Events enter discovery and the pooled sitemap. Unlisted and private Events do not. Unlisted pages are not marked noindex, so a crawler that reaches one by link may index it.

A direct link works for any published Event except a private one. The canonical path is derived from the Event's slug.

The slug is editable only before publication. After publication it is locked, so a published Event's URL does not change; treat the Event's identity as its opaque id. Domain changes never alter entity identity either.

Changing visibility on a live Event

ChangeEffect
Set any of the three valuesAllowed on a published Event
Move to publicEnters discovery on the next read; joins the sitemap pool on its next revalidation
Move to unlistedLeaves discovery immediately and the sitemap pool on its next revalidation; stays on its Group and Series pages
Move to privateLeaves discovery, the sitemap, and its Group and Series pages

None of these transitions affect existing Orders or Registrations. A buyer who purchased while the Event was public keeps a confirmed entry if it later becomes unlisted or private, because visibility governs reach, not entitlement.

Is an unlisted Event hidden?

No. Unlisted is a distribution choice rather than an access control: anyone holding the link can reach it, so use a Requirement when access genuinely must be restricted.

Does making an Event private affect Orders already placed?

No. Visibility governs reach, not entitlement, so a buyer who purchased while the Event was public keeps a confirmed entry.

Can a private paid Event be sold through public checkout?

No. Issuance is complimentary-only, so a private paid Event has no self-serve sale path in the current scope.

On this page