Title: PJ Event Timeline
Author: PureJeannius
Published: <strong>November 10, 2026</strong>
Last modified: November 11, 2026

---

Search plugins

![](https://ps.w.org/pj-calendar/assets/banner-772x250.png?rev=3795547)

![](https://ps.w.org/pj-calendar/assets/icon.svg?rev=3795352)

# PJ Event Timeline

 By [PureJeannius](https://profiles.wordpress.org/jquinn33/)

[Download](https://downloads.wordpress.org/plugin/pj-calendar.1.1.4.zip)

 * [Details](https://wordpress.org/plugins/pj-calendar/#description)
 * [Reviews](https://wordpress.org/plugins/pj-calendar/#reviews)
 *  [Installation](https://wordpress.org/plugins/pj-calendar/#installation)
 * [Development](https://wordpress.org/plugins/pj-calendar/#developers)

 [Support](https://wordpress.org/support/plugin/pj-calendar/)

## 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_cache` for 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) or `side` (
   pinned beside the dates on wide screens).
 * `scheme` — `light` or `dark`. `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` — `yes` or `no`.
 * `show` — `both` (default), `upcoming` or `past` to 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](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms).
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](https://purejeannius.com/products/pj-event-timeline/) 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

[⌊Now & Next timeline and Past Dates with search, filters and statistics (light 
scheme).⌉⌊Now & Next timeline and Past Dates with search, filters and statistics(
light scheme).⌉[

Now & Next timeline and Past Dates with search, filters and statistics (light scheme).

[⌊The dark scheme with a hero photo on a wide screen.⌉⌊The dark scheme with a hero
photo on a wide screen.⌉[

The dark scheme with a hero photo on a wide screen.

[⌊Editing a date — times, venue picker, tags.⌉⌊Editing a date — times, venue picker,
tags.⌉[

Editing a date — times, venue picker, tags.

[⌊Settings → PJ Event Timeline.⌉⌊Settings → PJ Event Timeline.⌉[

Settings  PJ Event Timeline.

[[

## Installation

 1. Upload the `pj-calendar` folder to `/wp-content/plugins/`, or install it from Plugins
    Add New.
 2. Activate the plugin.
 3. 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.
 4. 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 `category` attribute: `[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.

Contributors

 *   [ PureJeannius ](https://profiles.wordpress.org/jquinn33/)

[Translate “PJ Event Timeline” into your language.](https://translate.wordpress.org/projects/wp-plugins/pj-calendar)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/pj-calendar/), check
out the [SVN repository](https://plugins.svn.wordpress.org/pj-calendar/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/pj-calendar/) by
[RSS](https://plugins.trac.wordpress.org/log/pj-calendar/?limit=100&mode=stop_on_copy&format=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()` and `PJCAL_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.

## Meta

 *  Version **1.1.4**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [calendar](https://wordpress.org/plugins/tags/calendar/)[events](https://wordpress.org/plugins/tags/events/)
   [performances](https://wordpress.org/plugins/tags/performances/)[timeline](https://wordpress.org/plugins/tags/timeline/)
   [tour dates](https://wordpress.org/plugins/tags/tour-dates/)
 *  [Advanced View](https://wordpress.org/plugins/pj-calendar/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pj-calendar/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pj-calendar/reviews/)

## Contributors

 *   [ PureJeannius ](https://profiles.wordpress.org/jquinn33/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pj-calendar/)