Vizou Events Manager

The Vizou Events Manager plugin was conceived for my own and my clients’ use (mostly musicians). We needed an easy way to add gigs to our calendars and display them in a variety of ways (upcoming, past, by artist).

This privately developed plugin – not available in the WordPress repository – is based on the conceptual approach of the now-deprecated GigPress plugin (from talented and helpful Canadian developer/musician Derek Hogue). I used and loved it for many years until it was purchased and subsequently phased out by The Events Calendar (Modern Tribe), who offer both a free and a paid Pro version. When GigPress got flagged as containing a security vulnerability, I decided it might be fun to build a similar plugin for my own use. While The Events Calendar is appreciated by many, it was overkill for my clients’ simpler needs. I also had difficulty with The Events Calendar’s GigPress import option – there appears to be a frequently-cited issue with imports hanging or not completing, which was what I experienced after many hours spent trying on different servers and fooling with PHP and memory settings.

As the proverb says, necessity is the mother of invention. Just call me Mom.

Vizou Events Manager was made in Québec over the winter of 2024-25 with the help – as well as some incredibly annoying detours – from claude.ai, who somewhat ironically bears the same name as my humanly-intelligent partner, allowing for some comical discussions about the many hours I was spending with my new “boyfriend”. The learning curve was steep, and I’m still tweaking this project, but so far, it’s working well for my particular needs. I especially love being able to import old GigPress data (thank you, Derek, for making that possible), a feature I added so that my clients and I wouldn’t have to start over from scratch.

Once my plugin is a bit more mature, I plan to add it to my Github repository and make it publicly available to anyone who’d like to use, modify or improve on it.

Vizou Events Manager is dependent upon the very popular free (or Pro) version of the Advanced Custom Fields (ACF) plugin from WP Engine.

Features

  • Custom post type (Events) making it easier to manage event posts all in one place
  • Event data including venue, artist, date, address, venue URL, ticket URL, tour, and event status
  • Auto-generate a unique URL for every event (no duplicated post title increments)
  • Automatically add a venue, artist or tour to the database
  • Choose from existing venues, artists and tours
  • Add, edit and delete venues, artists and tours independently and sync them with existing events that use them
  • Change event status via Quick Edit on All Events admin view
  • Display event listings via a shortcode that filters on date, status, tour, artist, limit (number of events)
  • Option to override both the default both the listing and single event templates within your theme
  • Option to turn off default CSS and add or modify it via your theme’s stylesheet
  • Lots of classes to help you customize event display
  • Option to provide your own “More events to come” text and replace event status names (Active, Cancelled, Sold out, To be rescheduled) with your own.
  • Option to display Venue or Artist first on frontend
  • Option to import events (based on deprecated GigPress plugin CSV, but can be imported from any CSV with matching headers)
  • Option to export all events as a CSV file. Download a sample csv file here.
  • Option to remove all plugin data on uninstalling
  • A built-in help page with lots of tips

Requirements

  • This plugin requires the Advanced Custom Fields plugin (free or Pro version)
  • Requires at least WordPress 6.0
  • Tested up to WordPress 6.7.2
  • Requires PHP 8.0 or later
  • License GPLv2 or later, https://www.gnu.org/licenses/gpl-2.0.html
  • Custom fields are auto-created on plugin activation but are not visible in WordPress/ACF plugin admin to prevent accidents from happening to events field data.

Screenshots

Click on an image to enlarge it.

Settings

General settings

No events text – Customize the text that appears if there are no upcoming events.

Status labels

Active, Cancelled, Sold out, To be rescheduled – Customize the default statuses with your own names. They will be synced to the Events editor, too.

Display options

Display format – Choose whether the default layout displays the Venue or Artist first. This is ignored if you add your own template to your theme.

CSS – Override the default stylesheet if you’d rather add your styles to your theme style.css.

Danger zone

Clean uninstall – Check the box to get rid of all Events data when deleting the plugin. You might want to export a backup CSV before doing this, in case you change your mind.

 

Use the shortcode

[vizou-events] is the shortcode. By default, it gets all active, upcoming events in ascending order.

Use it with the following parameters to get a variety of data:

  • show – “upcoming” (default), “past”, or “all”
  • year – YYYY to filter by year
  • order – “asc” (default, nearest date from today first) or “desc” (latest date first)
  • artist – by ID (see Events/Artists)
  • tour – by ID (see Events/Tours)
  • limit – number of events to show (-1 for all)

Some example shortcode variations :

[vizou-events show="past" year="2020" order="desc"]

[vizou-events show="all" tour="123"]

[vizou-events show="upcoming" artist="25" order="asc"]

Shortcode recipes

Upcoming shows

Ascending (next up) order. This is the default. If the artist or venue have an associated url, it will automatically be linked. If there is a ticket url, a ticket link will be displayed. Adding a featured image is optional; if there is one, it will be displayed by default in the right-hand column.

[vizou-events]

Default events list template

Sat, Feb 20, 2027 8:00 pm 8:00 pm

Festival Plaisirs et Traditions / D'Accoutumée

Église de l’Épiphanie, 130 Notre-Dame, L’Épiphanie , QC (CA)

Default events list template

Sat, May 1, 2027 - Sun, May 2, 2027

Funky-Dunky Fest / Denise Levac & Dana Whittle

123 Some Street, Acton , MA (US) This is a test event.

Default events list template

Fri, Dec 17, 2027

T-shirt, jeans + baskets, CFNJ 99,1 / D'Accoutumée

Joliette , QC (CA) Sur les ondes! Jean Cantin, Michel Leblanc, Claude Méthé, Dana Whittle. Acheter l'album.

Past shows for a year

For the year 2024, in descending order (the latest date at the top).

[vizou-events show="past" year="2024" order="desc"]

Default events list template

Fri, Mar 15, 2024 - Sun, Mar 17, 2024

Danse-Neige / Dana Whittle

Auberge du Lac Priscault, 100 Rang Petit Beloeil, Sainte-Côme , QC (CA)

Default events list template

Sun, Feb 18, 2024

Bal Maski – Jam Trad / D'Accoutumée

401 Rue Maskinongé, Saint-Gabriel , QC (CA) Claude Méthé, Jean Cantin, Michel Leblanc.

Default events list template

Sat, Dec 14, 2024 1:30 pm 1:30 pm

Bibliothèque Robert-Lussier / Denise Levac & Dana Whittle

1 Place d'Évry, Repentigny , QC (CA) Entrée gratuite.

Default events list template

Wed, Nov 20, 2024 7:30 pm 7:30 pm

L’Albion / Jam Trad / D'Accoutumée

408 Boulevard Manseau, Joliette , QC (CA) Claude Méthé avec D'Accoutumée.

Default events list template

Sun, Nov 17, 2024 1:00 pm 1:00 pm

Dansez jusqu’au printemps / Bal Maski Café Coop / Claude Méthé & Dana Whittle

401 rue Maskinongé, Saint-Gabriel-de-Brandon , QC (CA) Danse familiale dans le cadre du projet de Sophie & Fiachra! Entrée gratuite, contribution volontaire.

Recent shows

In descending order (the latest date at the top), limited to 5 shows.

[vizou-events show="past" limit="5" order="desc"]

Default events list template

Fri, Mar 15, 2024 - Sun, Mar 17, 2024

Danse-Neige / Dana Whittle

Auberge du Lac Priscault, 100 Rang Petit Beloeil, Sainte-Côme , QC (CA)

Default events list template

Sun, Feb 18, 2024

Bal Maski – Jam Trad / D'Accoutumée

401 Rue Maskinongé, Saint-Gabriel , QC (CA) Claude Méthé, Jean Cantin, Michel Leblanc.

Default events list template

Sat, Dec 14, 2024 1:30 pm 1:30 pm

Bibliothèque Robert-Lussier / Denise Levac & Dana Whittle

1 Place d'Évry, Repentigny , QC (CA) Entrée gratuite.

Tours

Show all upcoming dates for a specific tour by id (Events/Tours, grab the ID), showing the next up on top.

[vizou-events show="all" tour="267" order="asc"]

Default events list template

Thu, May 16, 2019

L’Albion / Jam Trad / Claude Méthé

408 Boulevard Manseau, Joliette , QC (CA) 19h, avec Marc Benoît à la guitare.

Default events list template

Thu, Jun 6, 2019

L’Albion / Jam Trad / Claude Méthé

408 Boulevard Manseau, Joliette , QC (CA) Avec Marc Benoît à la guitare.

Default events list template

Thu, Jun 13, 2019

L’Albion / Jam Trad / Claude Méthé

408 Boulevard Manseau, Joliette , QC (CA) Avec André Marchand à la guitare.

Default styling

The plugin comes with default CSS and a basic layout. Both can be overridden via a folder and files added to your theme. Images added to the main editor area will appear in the “notes” for the event, allowing for flexible display of photos, logos, etc. This allows for more flexibility with or without using style or layout overrides.

Override the default CSS

  1. In your WordPress admin, visit the Events/Settings page and tick the box to override the default stylesheet.
  2. Copy the plugin’s default stylesheet vizou-events.css (from assets/css/vizou-events.css)
  3. Open it in a text editor and copy the contents into your own theme’s style.css
  4. Customize the events CSS to taste

Below are a list of available classes that you can modify. Depending upon your own stylesheet and where you add the events to it, you may need to use !important to override a particular class or selector.

.event h3 { font-size: 1.5em !important; }

  • .vizou-events-container
  • .event
  • .event-date
  • .event-time
  • .event-tickets
  • .event-thumb
  • .event-address
  • .event-street
  • .event-city
  • .event-province
  • .event-country
  • .event-artist
  • .event-venue
  • .event-past
  • .event-cancelled

Use .single .event to target styles on the single Event template.

The current default CSS hides certain elements when events are past – you can hide other elements – or make them visible – by copying the following to your theme’s style.css and modifying it.

.event.event-past .event-cancelled,
.event.event-past .right,
.event-event-past a.post-edit-link,
.event.event-past .event-tickets,
.event.event-past .event-time,
.event.event-past .event-thumb,
.event.event-past .event-street,
.event.event-past .event-notes,
.event.event-past .event-status {
display: none;
}

Override the default event listing template

  1. Copy vizou-events.php from the plugin’s templates folder
  2. Create a folder called vizou-events in your theme (or child theme) directory
  3. Add vizou-events.php to the vizou-events folder and edit the template to suit –keep a backup in case you break it!
  4. Upload the new vizou-events folder and its contents to your theme in wp-content/themes/yourtheme.

Override the default single event template

Follow the same steps as above, and add vizou-single-event.php to your vizou-events folder.

 

Import and export events

The import tool is only compatible with a CSV file (“comma separated values”, sometimes called comma-delimited). A CSV file would look something like this if opened with a text editor, with each event entry’s content separated by commas, following the format of the first line, which is the “header” row if you open the CSV in a spreadsheet application (Numbers, Excel, etc.) :

Whether you are importing events from a GigPress or other CSV file, just make sure the columns and column headers exactly match the list below (the order doesn’t matter). You can edit your CSV in any spreadsheet application (Numbers, Excel, etc.).

Be sure you don’t include table headers in your CSV file or your import will fail (this is an option on export in some spreadsheet apps).

Remove extra columns or add any missing columns – they can be empty if you don’t need that data, but they need to be there for the import to function properly.

Note that if you had thumbnails (featured image) with your events, you will have to add them manually as this import/export tool doesn’t import or export images (a complex process).

Required columns

Order doesn’t matter.

  • Date – any valid date format
  • Time – any valid time format
  • End date – any valid date format
  • Artist – the name
  • Artist URL – valid URL
  • Tour – text
  • Venue – text (by default, this will be the event “title” as well)
  • Address – street
  • City – text
  • State – text (abbreviation or full name is your choice)
  • Country (any format – CA or Canada is fine)
  • Venue URL – valid URL
  • Status – active, cancelled, sold_out, reschedule are the defaults for this plugin
  • Ticket URL – valid URL
  • Notes – any text

Sample CSV format

Download a sample of the required csv format.

Download

Download Version 0.1.6

Changelog

Version o.1.6

  • Changed Event editor field “Event name” to “Venue name” to maintain consistency (post title and venue name share the same data)
  • Added descriptions and instructions to Venue name, Artist and Tours fields in the event editor
  • Added a template tag system to help with custom overrides (in the theme) of both list and single event output
  • Added a Settings option to choose whether Venue or Artist should be displayed first in the default events list template and improved Settings layout
  • Added syncing of custom status text with the Event editor view
  • Changed “Import/Export” to “Tools” to future-proof in the event of new options being added there
  • Split override templates into “start”, “end” and “list” for ease of use and updated shortcode and permalink handling for the new template structure
  • Updated permalink structure to add artist to the URL (venue-name-artist-yyyy-mm-dd)
  • Added Quick Edit option to All Events admin view

Version 0.1.5

  • Updated taxonomies and venue handler include files to use the proper “event_” field key (like other plugin field data) for termmeta table in WordPress database, with backward compatibility for any sites where it didn’t already do this
  • Updated default list and single event templates to check for either type of field key (for backward compatibility)

Version 0.1.4

  • Added container class to output
  • Updated CSS to include new class
  • Updated Help page

Version 0.1.3

  • Updated default CSS
  • Automatically add publish date to duplicate venue permalinks

Version 0.1.1

  • Added address fields to Venue management taxonomy
  • Improved syncing between Venue and Artist management and Event editor
  • Improved loading of pre-populated fields in Event Editor
  • Added auto-generated, SEO-friendly URLs
  • Added single event template and option to override it
  • Changed default All Events order to descending (future dates at top)
  • Updates to Import/Export functions
  • Improved default CSS

Wishlist

  • Make plugin available on GitHub
  • Add shortcode option to query multiple years
  • Making the plugin fully translatable
  • Create a separate, WPML compatible version