Discourse topics as Google Calendar events

I want to have a category where Discourse topics are going to be events. I want to display them on a Google Calendar. What’s the best way about going with this?

How to associate dates with topics? Discourse already allows topics to have a close date associated with them. This is pretty nice, as I can store the dates of the events this way. However, not surprisingly, the topics will close when the events start. This is not perfect because I want to be able to discuss past/ongoing events.

How to keep my calendar updated? I guess I could create a plugin and listen to the before_create_post event to create Google Calendar events accordingly. Should ignore all posts except topics created in the category I want. However, if the date of the event is edited after that it’s not going to be reflected in the Google Calendar event.

I would definitely make sure the date of the event is in the topic title, as previously noted in another topic. That is, by far, one of the most relevant things about an event topic – when is it?

(followed closely by “where is it”, which could be relevant, depending on if the audience is global or local.)

The topic close date should probably be sometime after the event to give people time to discuss it afterwards.

As for Google calendar syncing, that’d be plugin territory.

Yes, storing the event date in the topic title is a simple and elegant solution.

I’ll try Google Calendar syncing with a plugin and update here with the results.

1 Like

@xrvk how did the Google calendar sync work out for you?

There is the beginnings of an event plugin here that has Google calendar sync



Yes, that is my plugin. I ended up combining the finished events portion into a single plugin for my site which in addition to events has a blog, projects and a one-page splash front page, all powered by content pulled from discourse.

One plugin felt like the easiest way to manage the whole site, but if there is interest in the separate events part I could update the plugin. I could also use some code review, because this is my first time working with rails.

You can see the events part live in here:



@xrvk, what would it take to make this an event-only plugin? I would use it immediately if that were the case.


Has anyone else implemented this plugin? I think it’s quite interesting and your site looks good. @Vocino has a point that breaking this into several plugins would help alot of people who want to set up a quick site around their discourse.


It occurs to me that @xrvk’s use case could potentially be handled by the blog embed feature. You can create your google calendar and publish the rss feed for it, then set up a discourse category to import the rss feed for discussions about the events.

The way this feature is set up now, though, you can only have one category importing an rss feed so this wouldn’t work on my site. I often find myself wishing the blog embed features were in the category admin settings so that we could import more rss feeds into discourse, and use discourse to power comments for more blogs.



Continuing the discussion from What is the most awesome plugin for Discourse, that does not yet exist?:

Hi All,
I am guessing there is still nothing out there that exists like this? It would be a fantastic default feature or plugin and probably utilised by quite a lot of the communities out there.

I see you can embed a google calendar (yet to try it) however would be better as a feature as a whole rather than just be within a post.


Even the very basic functionality would be fantastic.
(Although I can easily imagine a very long feature list so be careful!)


@mikechristopher did you ever find out more about the status of this? Curious if you’ve implemented a workaround…

sadly not @katherine - would still love to see this as a plugin just dont have the capability to build it.

All we have been doing as a workaround is embedding a google calendar into a post and getting the guys to raise a new topic for each one and we will add it on to the calendar. A long way of doing it but couldnt see any other way.