Description
PJ Event Timeline turns a list of dates into a page your visitors can actually use. Add each date as its own entry (title, event, start/end dates and times, venue, city, state, link, tags, category), place the [pjcal] shortcode on a page, and you get:
- Now & Next — a timeline of everything in progress or upcoming, with “Today”, “In progress” and “Upcoming” status, start/end times (or all day) and an optional tickets/info link.
- Past Dates — every finished date grouped by year, newest first, with instant search, category filter chips, a sort toggle and a statistics strip (total events, locations, years active).
- Automatic rollover — the split between upcoming and past is worked out in the visitor’s browser, so a date moves to Past the day after it ends even on an aggressively cached page.
- Optional hero photo — choose one site-wide photo, pass an attachment ID or URL per timeline, or let it use the page’s featured image. Shown as a full-width banner with the title over it; or choose the side layout, where the photo pins to the left while the dates scroll.
- Your colors and fonts — light or dark scheme, six accent presets or any accent color, custom background, card and text colors, and your own heading and body fonts (with an optional web-font stylesheet). Leave them empty and it follows the scheme and your theme.
- Projects, not just events — flag a category as a “project” (studio time, writing, development) and those dates show their project title as the heading and stay out of the statistics.
- Reusable venues — save a venue once with its city, state, address and website, then pick it from a list; a date’s blank city/state fall back to the venue’s. On the timeline the venue name links to its website, and a venue with a street address gets a map pin that opens Google Maps.
- Hide without deleting — a “Hide from the timeline” switch in Date Details, Quick Edit, Bulk Edit and the row actions keeps a date on file but out of every timeline and statistic.
- Admin niceties — a Status column with Current & Upcoming / Past / Hidden filters, a Duplicate row action for repeat venues, a Dates column sorted by start date, and a warning on any entry missing a start date.
- Cache-aware — clears WP Fastest Cache, W3 Total Cache, WP Super Cache or WP Rocket when dates change (optional), and fires
pjcal_purge_cachefor other caching plugins.
Shortcode
[pjcal] with no attributes uses the defaults from Settings → PJ Event Timeline. Attributes:
title,eyebrow— heading and the small text above it.now_title,past_title,empty_now— section titles and the message shown when nothing is upcoming.image— attachment ID or image URL for the hero photo (default: the site-wide photo from Settings, otherwise the page’s featured image;"none"for no photo).focus— CSS object-position, e.g."50% 20%".layout—top(default: the photo is a banner above the dates) orside(pinned beside the dates on wide screens).scheme—lightordark.accent—wine,coral,pink,ocean,forest,slate,custom(the color picked under Settings) or any hex color such as#0f6e8c.category— comma-separated category slugs to show only those categories.open_years— how many year groups start expanded (default 2).now_limit— show this many upcoming dates, with the rest behind a “Show N more” button (default 0 = all).show_stats,show_search,show_filters—yesorno.show—both(default),upcomingorpastto show only one section.fullbleed="yes"— break out of a boxed content area to full viewport width.
Example: [pjcal title="Tour Dates" scheme="dark" accent="ocean" image="123" category="concerts,festivals"]
For developers
Filters: pjcal_default_settings, pjcal_default_atts, pjcal_accent_presets, pjcal_accent_hex, pjcal_items, pjcal_venue_map_url, pjcal_l10n, pjcal_wrapper_classes, pjcal_wrapper_style, pjcal_save_meta, pjcal_settings_tabs, pjcal_shortcode_reference_rows.
Actions: pjcal_settings_page_load, pjcal_settings_after, pjcal_settings_tab_content, pjcal_shortcode_reference_after, pjcal_meta_box_fields, pjcal_before_now, pjcal_after_past, pjcal_purge_cache.
Themes can restyle by overriding CSS custom properties on .pjcal (e.g. --pjcal-accent, --pjcal-top for a fixed header height, --pjcal-head / --pjcal-body for fonts). The front-end script fires a pjcal:rendered DOM event once a timeline has rendered.
External services
None by default. If you enter a Font stylesheet URL under Settings PJ Event Timeline Typography (for example a Google Fonts link), that stylesheet is loaded from the address you entered on pages that show a timeline, so that service receives the visitor’s IP address and browser details like any web request. For Google Fonts see the Google Privacy Policy and Terms of Service. Map pins are ordinary links to Google Maps and contact Google only when a visitor clicks one.
Every feature in this plugin is free, with no license key, trial or usage limit.
Add-ons
PJ Event Timeline Pro is a separate plugin sold on purejeannius.com. It adds tools that are not part of this plugin: a month-grid view, a subscribable calendar feed for Apple Calendar, Outlook and Google Calendar, Google event listings (schema.org Event data), CSV import and export, “Add to calendar” links on upcoming dates, and a compact next-dates list for sidebars and footers.
Screenshots





Installation
- Upload the
pj-calendarfolder to/wp-content/plugins/, or install it from Plugins Add New. - Activate the plugin.
- Go to Event Timeline Add Date and enter your dates. Save venues you use often under Event Timeline Venues; create categories under Event Timeline Categories if you want filter chips.
- Add
[pjcal]to any page. Set defaults under Settings PJ Event Timeline.
FAQ
-
Does it create a public page for each date?
-
No. Dates are not public posts; they only appear inside the timeline on the page where you place the shortcode.
-
When does a date move from Now & Next to Past Dates?
-
The day after its end date (or its start date, for one-day entries). This happens in the visitor’s browser, so page caching does not delay it.
-
Do I have to make “Past” and “Upcoming” categories?
-
No — that split is automatic. Every date is in Now & Next until its end date passes, then it appears under Past Dates; the admin list has the same Current & Upcoming / Past filters. Categories are for the kind of date (concert, festival, studio…).
-
How do I show two different timelines?
-
Put each date in a category and use the
categoryattribute:[pjcal category="band"]on one page,[pjcal category="solo"]on another. -
Can I change the fonts or use my brand color?
-
Yes. Under Settings PJ Event Timeline pick a preset or any accent color, set background, card and text colors, and name your heading and body fonts (plus an optional web-font stylesheet if your theme doesn’t load them). For one timeline, use
accent="#0f6e8c". Themes can also override the CSS custom properties on.pjcal. -
Where do the statistics come from?
-
From past dates only, excluding categories flagged as projects. The first number adds up each date’s count field (default 1 per date), the second counts distinct State / province / country values, the third is the span of years between the first and most recent past date. The labels are editable under Settings PJ Event Timeline.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“PJ Event Timeline” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “PJ Event Timeline” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.4
- A cleaner, more modern settings screen: a header with the PureJeannius logo and version, a summary card with your current & upcoming and past date counts (plus All dates / Add date buttons), pill-style tabs, each settings section on its own card, wine-colored buttons and checkboxes, and a save bar that stays at the bottom of the screen while you scroll.
- Add-ons can reuse the same look:
PJCAL_Settings::header()andPJCAL_Settings::sections(), and extra tabs now sit on a card.
1.1.3
- Links to the PJ Event Timeline Pro page now use its new address (purejeannius.com/products/pj-event-timeline/).
1.1.2
- Renamed from PJ Calendar to PJ Event Timeline. Nothing else changes: the shortcode is still [pjcal], and your dates, venues, categories and settings are untouched.
- The admin menu is now “Event Timeline”, and help text says “timeline” instead of “calendar”.
- The default heading for new installs is now “Events” (sites with saved settings keep theirs).
1.1.1
- Fix: permanently deleting a date from the Trash now clears the page cache.
- Fix: “1 date / 5 dates” and “Show N more” use proper plural forms in every language.
- Settings: the shortcode field’s select-on-focus moved from an inline handler into the settings script.
- Venue help text no longer mentions an add-on feature.
1.1.0
- Any accent color with a color picker, plus
accent="#hex"per timeline. - Custom background, card, text and muted-text colors.
- Heading and body fonts, with an optional web-font stylesheet URL.
- Site-wide hero photo chosen from the Media Library.
- Settings screen tabs are filterable.
1.0.0
- Initial release.
