How to add events in ghost cms

I want to display events on one page and manage those events from the ghost admin panel.
How to do?

Ghost has no concept of events and does not have a way to customize the data model either.

The best you can do is to make one post for each event and then make a custom theme template to display them all one page.

You could use the “publish date” as the “event date”, but Ghost doesn’t have something like an event duration or an event end time, so you would have to manage those manually within each post.

1 Like

This is the best idea I could come up with as well…ideally you could use an “event” tag then display these on a page using a custom template to filter by “event” tag.

BUT if you are posting an event happening in the future (most likely scenario) then “publish date” is much less useful as posts that are scheduled in the future will not be published.

Any creative workaround for this?

Hi @anuvalsalam ,

For a customer, we manage events with Ticket tailor. Like @Jaren said, you create a tag for your events and then each post is an event. Then you add the content you wish in the post. See the example here → Événements - Français à Londres - Magazine

2 Likes

For a small number of events, create each one as a post, with a special #event tag, and route and display them differently.

Here’s a site I set up like that fairly recently – unfortunately, they’ve only got one event ‘live’ right now. They’re using LinkedIn to take registrations, etc, but all the data lives in Ghost.

For a large number of events, some sort of third party integration. (You’ll need one for ticketing anyway, so…)

@Cathy_Sarisky this looks great!

We’re you able to display a future event date? If so, what did you use to pull in the future date? This is what I am stuck on now…I was considering using a meta data field.

Yep, works for future dates. It’s a bit of a hack, but it’s accessible enough that my clients can handle it.
It’s sitting in the code injection footer specific for that post, like so:
<div class='date'>June 3, 2024</div>
And then I hide it when Ghost sticks it on the foot of the page, but read it and put it where I want it in the page layout.

So… theme edits required, but not super big ones.

Meta data is another option (but I worry about messing up SEO), as is the excerpt if your theme doesn’t use it.

Writing about this site is on my to-do blogging list. Probably for next Monday. :)

3 Likes

Very creative - thanks for the help and just subscribed to your blog. :raised_hands:

1 Like

i got stock the same spot - it looked so perfect just using the date field … untill the event was in one week ;) … wonder if theres a way to disable the “not in the future” date settings, guess the sensible thing to do is adding it as flat html into the footer injection

We are using Elfsight on an events page to display events because we have several each month and I don’t want dated content littering the blog.

If you wanted to post individual events on post pages you could do that. I’d encourage you to use code injection to include the event schema to boost performance.

Ghost needs custom fields. This is a pretty common need and without custom fields, options are quite limited.

2 Likes