Discourse Calendar (and Event)

:discourse2: Summary Discourse Calendar and Event adds dynamic and interactive calendar and event features to your Discourse site.
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-calendar
:open_book: Install Guide How to install plugins in Discourse

Enabling Calendar (and Event)

The Calendar plugin can be enabled either by the toggle or from its settings, both accessible from your admin/plugins page:

Features

Somewhat unsurprisingly, Discourse Calendar (and Event) adds both the calendar and event features to your Discourse site. With these, you can create individual topic calendars to track important occasions or timelines, display calendars in categories, add a holiday calendar to mark vacations, absences, or sick days, create interactive event topics, as well as show an easy-access calendar summary of all of your upcoming events.

Calendars

Bespoke calendars can be created in multiple topics, and ones you wish to give higher visibility to can be displayed above a category’s topic list.

You can find more detailed information on how to create and use calendars in:

Events

The Event feature allows interactive elements to be inserted into topics which your members can use to sign up to attend or participate in your community’s activities. These are all summarised in a dedicated site-wide calendar, with the option to add an easy-access link to your navigation menu. You can find more information on how to create and use this feature in:

:exclamation: This should not be confused with Pavilion’s Events plugin (note the plural)

Calendar Settings

Name Description
calendar enabled Enable the discourse-calendar plugin. This will add support for a [calendar][/calendar] tag in the first post of a topic.
holiday calendar topic id Topic ID of staffs holiday / absence calendar.
holiday status emoji Defines the emoji used for the holiday status.
delete expired event posts after Posts with expired events will be automatically deleted after (n) hours. Set to -1 to disable deletion.
all day event start time Events that do not have a start time specified will start at this time. Format is HH:mm. For 6:00 am, enter 06:00
all day event end time Events that do not have a end time specified will end at this time. Format is HH:mm. For 6:00 pm, enter 18:00
calendar categories Display a calendar at the top of a category. Mandatory settings are categoryId and postId. eg: categoryId=6;postId=453[1] Other valid settings: tzPicker[2], weekends[3] and defaultView[4].
calendar categories outlet Allows to change which outlet should show the category calendar.
working days Set working days. You can display the availability of a group using the timezones tag in a post, eg: [timezones group=admins][timezones]
working day start hour Start time of the working day hours.
working day end hour End time of the working day hours.
close to working day hours extension Set extension time in working day hours to highlight the timezones.
calendar automatic holidays enabled Automatically set holiday status based on a users region (note: you can disable specific automatic holidays in plugin settings)

Event Settings

Name Description
discourse post event enabled [experimental] Enables to attach an event to a post. Note: also needs calendar enabled to be enabled.
discourse post event allowed on groups Groups that are allowed to create events.
displayed invitees limit Limits the numbers of invitees displayed on an event.
display post event date on topic title Displays the date of the event after the topic title.
use local event date Use local date after topic title instead of relative time.
discourse post event edit notifications time extension Extends (in minutes) the period after the end of an event when going invitees are still being notified from edit in the original post.
discourse post event allowed custom fields Allows to let each event to set the value of custom fields.
events calendar categories Display an events calendar at the top of a category.
sort categories by event start date enabled Enable the sorting of category topics by event start date.
disable resorting on categories enabled Allow categories to disable the ability for users to sort on the event category.
sidebar show upcoming events Show upcoming events link in the sidebar under ‘More’. Requires post event enabled

:information_source: :curling_stone: The discourse-post-event/events.json endpoint now has an added parameter to switch between simple and detailed response. To get the detailed response you can add ?include_details=true:

/discourse-post-event/events.json?include_details=true

:discourse2: Hosted by us? This plugin is available on our Business and Enterprise tiers Calendar | Discourse - Civilized Discussion


  1. categoryId is the category the calendar will be displayed on top of.
    postId is the post in which you put the calendar in with [calendar][/calendar] ↩︎

  2. it can display a time zone picker on the upper right of the calendar. False by default, you can enable it with tzPicker=true ↩︎

  3. it can hide Saturdays and Sundays from the calendar. True by default. You can set it to false with weekends=false. ↩︎

  4. defaultView will set the calendar’s view (day, week, etc;). It can be set as:

    defaultView=agendaDay
    defaultView=agendaWeek
    defaultView=month (default)
    defaultView=listNextYear ↩︎

90 Likes

This plugin is promising - but there’s some features that are missing that prevents us from jumping from Pavilion’s plugin

  • Display non-all-day events with the start time on the calendar, currently every event looks like an all day event.

  • ‘Add Event’ button in the composer next to the tag selector (not hidden in the cog)

  • Limit which categories can have events, and if a events are compulsory in a category

Nice to haves:

  • Event meta data in the topic only appears/is entered at the top of the topic (instead of where ever the curser is
  • ability to limit which groups can make events in a category (for example - only ‘EventPlanners’ group can create events in the ‘Discussion’ category, but all users can create non-event topics (or edit topics if the topic is set to Wiki)
  • change URL of /upcoming-events to /calendar
8 Likes

Hi,

is it possible to set who can see the participants (“Going”, “Interested” and “Not Going”) of an event?

We use this great addon but now have second thoughts that it might be good to hide these details for unregistered users / guests / search engines and only show to registered users or even TL1 and up.

1 Like

A post was split to a new topic: Option to display the event date in the topic title even when there’s no end date

4 posts were split to a new topic: Are the Calendar settings still relevant?

I noticed that recently the output of the JSON api at /discourse-post-event/events.json changed. For anybody looking to get the former response back (which includes the recurrence parameter), you can use this url: /discourse-post-event/events.json?include_details=true

2 Likes

Thanks for the nudge. I’ve added it to the guide. :+1: :slight_smile:

2 Likes

Hi! We use Events quite a lot and one feature request that keeps popping up is the possibility to limit the amount of people being able to say the are “Going” to a certain number. Any thought on this, or maybe even a plan for implementing it?

Is the kanban-board preventing the Calendar from appearing on the category page?

I have this on the category page:

Maybe it’s just the amount of top links that is to blame?

If I disable the kanban, then I can see the calendar (after some full reload). But if I enable the kanban board again, the calendar disappears.

This is such a great plugin!

One thing that’s difficult for us is that the background of the calendar is transparent, which is causing issues with clashing theme colors. Is it possible to change the background?

Is there a way to generate an iCal from this? Or perhaps subscribe to this kind of calendar? I would like to parse the calendar and then put those events on a map as well.

Given those requirements you may like to take a look at Events Plugin 📆.

This feature specifically is also supported if you use Discourse Calendar (this plugin) with the Locations Plugin :

2 Likes

That looks interesting! But I was thinking to integrate it with my custom map and then add a layer for “events”. But I don’t think there is a json output of the calendar somewhere? I guess I have to check how that other plugin does it and then maybe adopt the used method.

1 Like

Hi, we had a calendar enabled in a category and it was displayed without problems. Now we have created a subcategory and the calendar is gone. I have checked the settings, and the category is still selected to display the calendar. Is this a bug or am I missing something? (It’s a private forum and I can’t share a link.)