If a customer needs specific functionality on their website we invariably begin with one of our core plug-ins (we've developed a few!). So when a customer needs to display content based on regular dates, like a calendar, we usually reach for our runABC events calendar.
Clarifying a potentially confusing case of chicken-and-egg here, our first ever 'Events Calendar' was actually designed from scratch for runABC. It was a basic but functional solution that allowed their admin team to store events in a database and display them on their website.
Extending an existing solution
Over the years, as the runABC business model evolved, so too did the plug-in. That basic model eventually turned into the de facto model for all implementations we made thereafter. And when a client requested a new feature, we would often feed that new feature back into the core for other customers. The result being an events calendar functionally richer and more robust with each iteration.
How the runABC events calendar first took shape
In 2008 the events calendar was arranged by month, with each event defined by a set of structured data, including:
- Event name
- Description of the event
- Start date
- Start time
- Location
- Address
- Organiser name
- Organiser telephone
- Event website
This structure was always designed to be flexible and extensible, so, over the years, many new data points were introduced to reflect runABC requirements, with things like:
- Map of the location (with a little pin)
- Link to book a place at the event
- An image of the event
- Declare if the event was part of a larger event (like a festival)
- Entry cost
- Event status (scheduled, cancelled or postponed)
- A 'featured' event
- Attachments (e.g. race results)
- Age range
- Sponsor
Reduce workload
With more than 60 elements currently being captured about a single event, managing thousands of them takes time. So, to reduce workload, we introduced an 'event organiser section', to allow members of the public to 'claim' an existing event (or add a brand new one), assuming they were the official organiser; essentially managing the content on behalf of runABC. With a simple side-by-side comparison check, runABC admins were then able to check and publish changes efficiently.
Different views of the same data
Coming from a print magazine, runABC events were historically displayed in a monthly format, and this continued for the initial years of the web version. We soon realised though that by using different sorting and querying methods we were able to present the same data in alternative formats throughout the site. For example, have a look at the 'Highlands' section to see a list of all running events in the Highlands, sorted by location and date.
Searching the events calendar
For many years runABC used a simple site search to query the events calendar database to list events by name. This was fine if you knew the name of the race, or perhaps the location. But what about events with specific criteria, like race length or date ranges? What we needed was a way to search the events calendar on multiple criteria, for example, find all 10K races between 1st June and 31st August in the North of England. We built this new search feature and called it My Next Race.
...and then filter the results further
On each calendar month, where events are already sorted by date and location, we built-in further filtering options by category. No excuse to miss that amazing event!
How the runABC tweaks benefit all customers who need an events calendar
Every new feature we add to the events calendar specifically for a client, we ask ourselves if it would be useful as a core feature for other clients. And if so, we merge the features back into the core code.
From core code to bespoke solution
With years of developing successful solutions for our clients (and we're talking about tried-and-tested solutions used in real websites, some with tens of thousands of daily users) we can confidently build new solutions based on our existing core code.
Some of the core solutions we've developed include:
- Content Management System (CMS)
- Blog (aka news functionality)
- Poll
- Newsletter
- Ecommerce
- Quiz
- Events Calendar
- Member's Area
- Secure contact form
- Business listing