Two blocks let visitors build a personal shortlist of your events: a save button on the event itself, and a page listing everything they have saved. Neither one requires an account, though signing in makes the list follow the visitor around.
The Save Event Button
In the inserter this block is called Save Event Button. It renders only on events, so put it on a single event page or in a single event template, near the title or beside the sign-up form. Building a single event page covers how those templates are assembled.
The visitor clicks it once to save and again to unsave. The icon and the wording change with the state, and the button reports that state to screen readers, so it works without sight of the colour change.
Its settings live in a Button panel:
- Default label: the wording before saving. Default is Save event.
- Saved label: the wording once saved. Default is Saved.
- Icon: Heart, Bookmark or Star.
Saving is not a sign-up. It adds the event to a personal list and nothing more: no seat is reserved and no attendee record is created. If you need people on a list you can act on, use an RSVP form instead, or alongside.
The My Schedule block
The My Schedule block lists everything the current visitor has saved. It does not need an event context, so its natural home is a normal page, called something like “My schedule”, that visitors can bookmark and come back to.
Each row shows the event title as a link, and optionally the date and time, the venue name and a thumbnail. A remove button sits at the end of every row. Remove the last one and the page reloads to show the empty state.
Two panels control it:
- Display: Show image, Show date and Show venue, all on by default.
- Empty state: a Title and a Body line for when nothing is saved. The defaults are No saved events yet and a sentence telling visitors to tap the save button on any event.
An all-day event shows All day instead of a start time. Events you trash or delete drop out of everyone’s list automatically, so a saved list never links to something that no longer exists.
Signed in or not: where the list is kept
This is the part worth understanding, because the two cases behave differently.
Signed-in visitors
The list is stored against their WordPress user account. It is available on every device they sign in on, it survives a cleared browser, and the most recently saved event sits at the top. On a My Schedule page the whole list is built on the server, so it is there the instant the page appears.
Anonymous visitors
The list is stored in that one browser, on that one device. Nothing about it reaches your server, which keeps your personal-data footprint at zero for logged-out browsing. The flip side is that a different browser, a different device or a cleared history means the list is gone.
On a My Schedule page an anonymous visitor first sees the empty state, then the browser fills the list in a moment later. Those browser-built rows show the event title and the venue only: no date and no thumbnail, whatever the block settings say. Something to keep in mind if your site is aimed mostly at visitors who never sign in.
What happens when an anonymous visitor signs in
Nothing is lost. On the first page they load after signing in, the list held in their browser is sent to their account and merged with anything already there. Duplicates are dropped, and only real events survive the merge. The browser copy is then cleared, and from that point the account is the single source of truth.
This is why the save button is worth adding even on a site where most visitors never register: they can start collecting straight away, and the collection follows them if they sign up later.
Styling the two blocks
The Save Event Button accepts text and background colours, padding, margin and font size. My Schedule accepts wide and full alignment, padding, margin, font size and line height, which lets it sit comfortably as the main content of a page. Both follow the same styling conventions as the rest of the HappenBoard blocks.