Discourse Calendar


Official calendar plugin for Discourse.

:link: GitHub: https://github.com/discourse/discourse-calendar

:arrow_right: Install: Follow the plugin installation guide.

The Discourse calendar plugin allows you to create a dynamic calendar in the first post of a topic. You can add new events by posting a reply with a date using “Insert Date” modal.


To embed the calendar, add the following BBCode (note the separate lines) in the first post of a topic:


Optionally you can hide weekends and other days with special attributes. Hidden days are 0 to 6 for Sunday to Saturday respectively.
You can also set the default view to any of these options: month,basicWeek,listNextYear

[calendar weekends="false" hiddenDays="1,2" defaultView="listNextYear"]

To add events to the calendar, in subsequent replies use the Insert Date function from the composer options menu to insert a single date or date range. For example,

[date=2018-12-20 timezone="America/Boise"] → [date=2018-12-21 timezone="America/Boise"]

Once the reply is submitted, the date range should be added to the calendar in the OP. Once the event is over the post containing the dates will be automatically deleted.

Holiday Calendar

By holiday_calendar_topic_id setting you can use a calendar to manage staff holidays. It will add an emoji :desert_island: next to the staff names in their holiday period. It will also include a calendar icon in their mentions.


Currently an events feature is live in the plugin, but consider it in alpha state. For more information on Events see 🗓 Discourse Event


Dynamic Events Calendar

Holiday Calendar

Holiday Flair


Holiday Mention Icon







Hi there - Looking for a way to display a calendar for a specific month. ie. we have topics for Oct. 2021 and Nov. 21 - but calendar defaults to current day.

1 Like

After logging in with a mobile device, it redirects to ~/discourse-post-event/events.json

Any ideas why this might be occurring? Desktop properly redirects to Discourse homepage.

1 Like

would that be on ios after installing the pwa ?
I have seen this with the discourse layouts plugin and the event list widget.


Yes iOS 14.6, and yes, also using Layouts + Events List widget…

I will try to narrow down.


I think it comes from an ajax call in the widget but as it only occurs in iOS it has to involve the way the manifest is made either by the OS or the app. Unfortunately @keegan couldn’t repro the problem on Pavilion so it might be a config error on my forum. Could I be missing a logo or something specific to iOS ?


Confirming that iOS device no longer redirects to events.json after Disabling the Layouts Event Widget…


Thanks @Zup @Benjamin_D,

I’ve created a bug report for this, and I hope to resolve this issue soon. Sorry for the inconvenience!


i like this new feature :slight_smile:


Is there a way to disable the deletion of elapsed date posts?

1 Like

Yes, set the admin setting delete expired event posts after to -1.

Screen Shot 2021-10-18 at 8.04.58 AM

1 Like