Home / Help & Docs / Shortcodes
Shortcodes
Display shortcodes for The Events Calendar events. Place them in any page, post,
or block-editor “Shortcode” block. All output is escaped; a bad/missing event id
fails soft (renders the default text, never an error).
Page builders: put shortcodes in the builder’s dedicated Shortcode element /
widget / block, not a plain Text or Heading element (those usually print the shortcode
literally). In Bricks you can also use the{keepsya_event_*}dynamic-data tags in
a Text element. SeeSTYLING-AND-PAGE-BUILDERS.mdfor the full per-builder recipe.
The shortcodes below also appear in the KeepsYa block (Gutenberg) and the native
KeepsYa element (Bricks) as point-and-click pickers, so you rarely have to type them.
[keepsya_event]: one field of one event
[keepsya_event field="title" id="123"]
id is optional: on a single event page it defaults to the current event.
Fields: title, description/excerpt, content, permalink/url, link
(linked title), image/thumbnail, id, date, time, datetime, start,
end, venue, venue_address/address, organizer, cost, price,
deposit, coach, ages/age_group, skill_level, dropoff, what_to_bring,
capacity, spots_left, register_url, register_button/register,
seo_title, seo_description.
Attributes:
| Attr | Purpose |
|---|---|
id |
Event id (defaults to current event on an event page) |
format |
PHP date format for date fields (default: site format) |
link |
true wraps the value in the event link |
label |
true prefixes the field’s label |
before / after |
Text shown only when the value is non-empty |
default |
Fallback text when the field/event is empty |
size |
Image size for image |
Examples:
[keepsya_event field="date" id="123" format="l, F j"]
[keepsya_event field="price" id="123" before="From " after=" / player"]
[keepsya_event field="venue" label="true"]
[keepsya_event field="register_button"]
[keepsya_events]: a filtered list / grid / cards
[keepsya_events when="upcoming" layout="grid" columns="3" limit="6"]
| Attr | Default | Purpose |
|---|---|---|
when |
upcoming |
upcoming, past, today, week, month, all |
from / to |
– | Explicit date range YYYY-MM-DD (overrides when) |
category |
– | tribe_events_cat slug(s) or id(s), comma-separated |
venue |
– | Venue id |
organizer |
– | Organizer id |
registration_only |
false |
true shows only events with KeepsYa registration on |
layout |
grid |
list, grid, cards |
columns |
3 |
Grid columns (1-6) |
limit |
6 |
Max events |
order |
asc |
asc / desc |
fields |
image,title,date,venue,excerpt,register |
Which fields each card shows (any [keepsya_event] field) |
format |
– | Date format for card date fields |
empty |
– | Message when nothing matches |
filters |
– | Adds an interactive filter bar. Comma-separated list of: type (All / Trainings / Camps pills), age, tag, day (day-of-week pills, e.g. Mon / Wed / Fri, only the days your events actually fall on; great for day-of-week repeating trainings), search (live type-to-filter box). All filtering is client-side, no reload. (day also accepts the aliases dayofweek / weekday.) |
per_page |
0 |
“Load more” page size. 0 = show all at once. Set e.g. 12 to show 12 cards with a “Load more” button. Client-side, so it composes with the filters (paging is over whatever the filters match, and resets to the first page when a filter or search changes). |
Examples:
[keepsya_events category="trainings" registration_only="true" fields="title,date,time,price,register"]
[keepsya_events when="month" layout="list" fields="title,date,venue"]
[keepsya_events filters="type,age,tag,search" limit="-1"]
Recipe: one category, styled like the events page
To drop a grid of just Camps (the soccer-camp category) on a builder page,
looking exactly like the /events/ page (image with the “New” ribbon, availability
line, Load more):
[keepsya_events category="soccer-camp" when="upcoming" limit="-1" per_page="12" columns="3" filters="age,tag,search" fields="image,title,date,time,venue,price,availability,register"]
For Trainings, swap the category. Day-of-week repeating trainings benefit from the
day filter, which adds pills for just the weekdays your sessions run on (e.g. Mon / Wed / Fri):
[keepsya_events category="trainings" when="upcoming" limit="-1" per_page="12" columns="3" filters="age,tag,day,search" fields="image,title,date,time,venue,price,availability,register"]
Variants:
# No filter bar, just the camp cards + Load more:
[keepsya_events category="soccer-camp" when="upcoming" limit="-1" per_page="12" columns="3" fields="image,title,date,time,venue,price,availability,register"]
# Full events-page experience (All / Trainings / Camps pills) but defaulting to Camps:
[keepsya_events filters="type,age,tag,search" filter_type="soccer-camp" when="upcoming" limit="-1" per_page="12" columns="3" fields="image,title,date,time,venue,price,availability,register"]
# Wider 2-up layout; or show just the next 6 with no Load more:
[keepsya_events category="soccer-camp" columns="2" per_page="12" fields="image,title,date,time,venue,price,availability,register"]
[keepsya_events category="soccer-camp" limit="6" per_page="0" fields="image,title,date,time,venue,price,availability,register"]
Notes:
– category (a tribe_events_cat slug like soccer-camp / trainings) only filters the
query when type is not in filters, so the recipes above use
filters="age,tag,search" (no type pills, since it is already one category).
– Place it in the builder’s Shortcode element / widget / block, not a plain Text
element (see STYLING-AND-PAGE-BUILDERS.md).
[keepsya_search]: a standalone live search box
Drops a search box anywhere on the page. As the visitor types, it filters the visible
cards of every [keepsya_events] grid on the same page by event title (no reload). Use
this when you want the search separate from the grid (for example in a sidebar or hero).
[keepsya_search]
[keepsya_search placeholder="Search our camps…"]
| Attr | Default | Purpose |
|---|---|---|
placeholder |
Search events… |
Placeholder text inside the box |
label |
Search events |
Accessible label (for screen readers) |
The look of both the in-bar search and the standalone box is set under
KeepsYa, Style, Search box; the filter pills and dropdowns under
KeepsYa, Style, Filters.
[keepsya_availability]: the availability / urgency line
Shows one event’s availability the way the Urgency Creator decides it (New Event /
Limited Spots Available / the real spot count), or the plain count when the Urgency
Creator is turned off. Useful in a builder or a text widget next to an event.
[keepsya_availability id="123"]
| Attr | Default | Purpose |
|---|---|---|
id |
current event | Event ID (defaults to the current loop event) |
The same thing is available as a card field, availability, e.g.
[keepsya_events fields="image,title,date,price,availability,register"], and as a single
field via [keepsya_event field="availability" id="123"]. Configure the behavior under
KeepsYa, Settings, General, Urgency Creator; style it under
KeepsYa, Style, Cards (availability color, scarcity color, size).
On KeepsYa’s grid cards the “New Event” badge rides as a ribbon on the image; the
availability field / {keepsya_event_availability} tag are the message only (Limited /
Almost / count). To place the “New” badge yourself (e.g. on a builder card), use the
new_badge field or the {keepsya_event_new_badge} Bricks tag.
In page builders: inside a tribe_events query loop, drop [keepsya_availability]
into the builder’s Shortcode element (works in Bricks, Elementor, Gutenberg Query Loop,
Divi, Beaver, Oxygen). In Bricks you can also use the native dynamic-data tag
{keepsya_event_availability} in a Text element. See
STYLING-AND-PAGE-BUILDERS.md for the full per-builder card recipe and the complete
list of {keepsya_event_*} Bricks tags.
[keepsya_referral_kit]: the family share kit
Put this on a page (e.g. /share) to give families a ready-made way to invite others.
A logged-in family sees their personal invite link plus copy-paste messages (an
email/message version and a short text/social version) with one-tap Copy buttons. Set
this page’s URL under KeepsYa → Settings → Credits, punch cards & referrals → Share-kit
page URL so the referral promo in family emails links to it.
[keepsya_referral_kit]
No attributes. Requires the referral program to be on; logged-out visitors are prompted
to log in.
[keepsya_event_schema]: schema.org Event JSON-LD
[keepsya_event_schema id="123"]
Outputs structured data (name, dates, location, organizer, price/availability,
cancellation status) so search engines can show rich event results. id defaults
to the current event.
Automatic schema (opt-in)
Settings → SEO → Event schema turns on automatic Event JSON-LD on every single
event page. It is off by default because your SEO plugin (SEOPress, Yoast,
Rank Math) may already emit Event schema, and duplicates hurt SEO. When on, KeepsYa
feeds the event data into the active SEO plugin’s schema graph (no duplicates), or
emits a standalone tag if no SEO plugin is present. Use the [keepsya_event_schema]
shortcode instead when you only want schema on specific pages.
[keepsya_account]: the family account page
Put [keepsya_account] on a page (e.g. “My Account”). Logged-out visitors see a
log-in / create-account form; logged-in families see their dashboard: a quick-links
toolbar (member/delegate shortcuts + Log out), contact details, a collapsible
“How this works” help panel, emergency contact, balances + add funds, bookings (with
Past tucked into a collapsible accordion), refer-a-friend, saved players, a
change-password card, and their quick sign-in link.
You can also place a single section on its own with a module attribute,
which is handy for laying the account out across a page builder:
| Shortcode | Section |
|---|---|
[keepsya_account] |
The whole account page |
[keepsya_account module="contact"] |
Name + phone. Aliases: details. |
[keepsya_account module="emergency"] |
Emergency contact name + phone |
[keepsya_account module="players"] |
Saved-players manager (add / edit / remove). Alias: player. |
[keepsya_account module="bookings"] |
Upcoming bookings, with past bookings in a collapsible “Past bookings” accordion. Alias: booking. |
[keepsya_account module="balance"] |
Store-credit balance, add funds, and (when transfers are enabled) transfer credit to another family by email. Aliases: credit, funds. |
[keepsya_account module="referral"] |
Refer-a-friend code + share link. Alias: refer. |
[keepsya_account module="password"] |
Change the account password (stays signed in on the device). Aliases: security, passwd. |
[keepsya_account module="magic"] |
The bookmarkable quick sign-in link (on/off + reset). Aliases: signin, magiclink. |
[keepsya_account module="help"] |
A collapsible “How this works” help panel for families (quick links, saved players, bookings, check-in QR codes, password, quick sign-in). Add-ons extend it via the keepsya_account_help_lines filter. Aliases: about, howto, guide. |
[keepsya_account_quick_links] renders just the quick-links toolbar (member/delegate
shortcuts + Log out) as its own element, so a page-builder layout can place it full-width at
the top instead of having it inherit the width of the first account card. It renders once per
request; add-ons contribute buttons via the keepsya_account_quick_links filter. In the full
[keepsya_account] dashboard the toolbar renders automatically, this shortcode is only for
module-split builder layouts.
A logged-out visitor always sees the log-in / create-account form, whichever module is used.
Other shortcodes
These power specific features and are used the same way (drop into a page or a builder’s
Shortcode element):
| Shortcode | What it shows |
|---|---|
[keepsya_request_session] |
The public request form for a private / small-group session that is not on the schedule. The owner reviews requests under KeepsYa → Session Requests and (Pro) sends a booking link. See the On-Request Sessions guide. |
[keepsya_request_session_card] |
A “request your own session” promo card linking to the request-form page. Place it anywhere (e.g. above your training cards). Copy + link come from Settings → On-Request; override per placement with title / text / button / url attributes. |
[keepsya_training_schedule] |
A read-only schedule of training sessions. |
[keepsya_trainings_schedule] (alias [keepsya_training_booking]) |
The training schedule with a booking picker (reserve a session). |
[keepsya_punch_card] (KeepsYa Pro) |
A punch-card purchase block (buy a multi-session pass). |
[keepsya_package] (KeepsYa Pro) |
A package purchase block: a logged-in family picks an active package and one of their players, and pays by account credit or an offline method. |
Notes
- Event listing uses The Events Calendar’s own query, so recurring events are
included correctly. seo_title/seo_descriptionread the active SEO plugin’s values, falling
back to the event title / excerpt.spots_leftreflects live capacity minus active bookings (blank when capacity
is unlimited).