Best ways to announce and organize calendar event and due date discussions?

(Christopher Baker) #1

Hello all, thanks for Discourse. It’s amazing.

I’m finding that there are a lot on event and opportunity announcements (and associated conversations) on our forum. This is an important part of our conversation, so I’m trying to find a better way to organize these items by date, help them fade into the background when the event has passed and keep upcoming events front and center.

An example of an event might be a visiting artist lecture (which could be described with an attached iCalendar entry). Similarly we might want to announce an opportunity with a deadline – for example a deadline for a grant or a deadline for a Artist residency application.

I am working on creating a shared Google Calendar for items like this, but the conversation around these opportunities and events is an important part of the forum itself, so it would be ideal for them to have a presence on the forum.

So what existing moderation / admin mechanisms / strategies might be employed for better organizing these types of topics? Would it be a good idea to attach a specific category to a (yet-to-be-written) plugin that could help help with this event moderation process? Our current strategy is just to carefully include a date / time in the topic title.

Thanks for your ideas!


Calendar in Discourse
Discourse topics as Google Calendar events
(Jeff Atwood) #2

One idea is you could set a timer to auto-close such topics after the event has passed (leaving a day or so for comments, I am not sure)?

@Neil is working on a function that will let you specify a specific arbitrary close time for a topic rather than a maximum granularity of “in 24 hours” which is how it works how.

(Presumably this time will be local Neil, I would assume the person entering the close time would enter it in their local time as that is most natural. I don’t know if we need support for GMT entry, or what have you…)

(Neil Lalonde) #3

I added this change today.

You can specify when a topic should close in three ways: the number of hours from now, a time of day, and a full timestamp. It uses your local timezone, so don’t try to do timezone and daylight savings calculations in your head. Just don’t.

The time of day means the topic will close when that time happens. If you use “12:00”, and it’s already past noon, it will close at noon the next day.

I’ll update category options next so they can specify default close times in hours instead of days.

(Christopher Baker) #4

@Neil this is really great. We’ll start testing immediately. Just to clarify – is “local” time the timezone of the user / browser or of the server itself? Thanks!

(Neil Lalonde) #5

It’s the timezone of the browser of the person entering the time.

(Sander Datema) #6

And could a fourth option be: close the topic x days after inactivity?

(Neil Lalonde) #7

Well now you’re getting fancy! Actually, that sounds useful.

(Jeff Atwood) #8

Maybe – I am not convinced there is a meaningful difference between “5 days since the first post was posted” and “5 days since the last reply”.

That is, most topics follow that age of first post power law very closely, the older the first post, the more likely they are to fizzle out naturally.

(Sander Datema) #9

The use case is quite simple: when you don’t want old topics to be replied to again. I don’t mind people posting in a topic for weeks. But if it’s been silent for a while, I’d like some topics closed.

I don’t want to rush people into talking about something because the allowed time is only based on the date a topic started.

(Jeff Atwood) #10

I’m just not convinced this is an actual problem, at least not one that is already more or less solved by putting a non-moving close date on a topic.


I’m also interested in calendar functionality. It’s pretty much core functionality for a community that has events of any sort, and if not available it is a show stopper on using discourse for the project I’m currently thinking of, and likely to be for others.

I’m aware some work has been done on integrating Google calendars. I’m really looking for something self-hosted though. If I was looking to integrate a third party service, I’d probably look to

Auto-closing of topics is good as far as it goes, but it’s not what I’m after. I want to be able to:

  • have events with date and location info.
  • view upcoming events as a monthly calendar layout, or as a list of the next n events.
  • allow community members to RSVP, and to see who else is coming.
  • allow people to integrate the calendar with their other calendar apps, via CalDAV. Ideally there should be separate calendar URLs for “all events” and “events I’m going to”.
  • do all the usual topic stuff like commenting and posting photos.


Consider the case where someone puts up an event long in advance, because it’s a big one. E.g. if you posted now that there would be a Discourse users conference in December next year. It might follow a power law initially, but it’d probably then see periodic bursts of activity following things like announcement of speakers, and then have a big build-up and subsidence around the time of the event. Or perhaps those other discussions about the event might go off on their own topics, leaving the event announcement topic quiet.

Besides the activity pattern, unless you track the event date as distinct from the announcement date, It’s challenging to get an event that has been announced long in advance to display sensibly alongside assorted minor events that probably aren’t announced much more than a few weeks in advance.


Hey @mc0e did you have any luck with this? I’m also looking into what folks have done with Discourse and event calendars and would love to hear what you landed on.


This looks quite promising: