Calendário do Discourse (e Evento)

:discourse2: Summary Discourse Calendar and Event adds dynamic and interactive calendar and event features to your Discourse site.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

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:

/admin/plugins

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)
map events title Maps title of the sidebar calendar based on category. Defaults to “Upcoming events”

Event Settings

Name Description
discourse post event enabled Enables the Event features. 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
map events to color Assigns an event color to a specified tag or category

: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

Integrations with Other Plugins

You can use a component from this plugin with Right Sidebar Blocks. You’ll want to ensure the desired route is enabled in the Right Sidebar Blocks component. The block name will be upcoming-events-list. Historically, there were additional settings required in the Calendar plugin itself, but this has been streamlined.

This is how the sidebar calendar will appear by default.

If you don’t want the time, you can add an empty timeFormat value in the component’s block setting.

: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 ↩︎

Last edited by @tobiaseigen 2025-07-16T21:10:06Z

Check documentPerform check on document:
97 curtidas

Este plugin é promissor - mas faltam alguns recursos que nos impedem de migrar do plugin do Pavilion

  • Exibir eventos não de dia inteiro com a hora de início no calendário, atualmente todos os eventos parecem eventos de dia inteiro.

  • Botão ‘Adicionar Evento’ no composer ao lado do seletor de tags (não escondido na engrenagem)

  • Limitar quais categorias podem ter eventos e se os eventos são obrigatórios em uma categoria

Desejáveis:

  • Metadados de evento no tópico aparecem/são inseridos apenas no topo do tópico (em vez de onde o cursor estiver)
  • Capacidade de limitar quais grupos podem criar eventos em uma categoria (por exemplo, apenas o grupo ‘EventPlanners’ pode criar eventos na categoria ‘Discussion’, mas todos os usuários podem criar tópicos que não sejam eventos (ou editar tópicos se o tópico estiver definido como Wiki)
  • Alterar a URL de /upcoming-events para /calendar
13 curtidas

2 posts foram divididos em um novo tópico: Status de feriado sendo aplicado incorretamente

Olá,\nObrigado por este trabalho.\n\nTenho 2 perguntas de UX:\n\n- É possível exibir o botão "Adicionar evento" ao lado do botão "Adicionar local" no editor de tópicos? Como era o caso com o plugin pavillion?\nimage\n\n- Existe a possibilidade de adicionar a entrada do menu superior Calendário? Não encontro nas configurações\n

Isto parece ótimo! Algumas ideias/perguntas:

Estou correto em assumir que para criar um calendário, você simplesmente cria um novo tópico/thread e cola o seguinte nele:

Nome do Calendário

[calendar]
[/calendar]

Então, para adicionar entradas ao calendário, você simplesmente faz uma nova postagem na mesma thread com algo como o seguinte (clicando no ícone inserir hora/data nas opções de postagem):

Nome do Evento/Entrada

[date-range from=2024-04-18 to=2024-04-19 timezone="Europe/London"]

Isso adiciona a entrada ao calendário, o que é ótimo, no entanto:

  • Existe alguma maneira de adicionar entradas a um calendário, mas permitir que essas entradas tenham um tópico/thread dedicado também? (Vejo que você pode adicionar eventos em novas threads, mas não parece haver nenhuma maneira de adicionar esses eventos a um calendário).
  • Existe alguma maneira de destacar ‘Próximos Eventos’ de um calendário específico nos e-mails de resumo? Ou talvez na coluna da esquerda, e com cada entrada vinculando ao tópico dedicado para essa entrada?

Se isso não for possível atualmente, você tem planos de adicionar?

1 curtida

@vinothkannans Você poderia me ajudar a revisar este pr?

1 curtida

Há planos para adicionar um feed de URL ao qual os usuários possam se inscrever? Tenho certeza de que seria complicado para todos os eventos em comparação com os que eles confirmaram presença.

Em segundo lugar, uma camada adicional seria incrível se pudesse reconhecer eventos privados (ou talvez isso seja apenas um feed de URL diferente por grupo).

6 curtidas

No entanto, não há feed rss para a URL /upcoming-events — isso seria uma adição interessante!

3 curtidas

E quanto à sincronização CalDAV?

6 curtidas

Isso também seria um motivo para eu mudar, de fato.

Isso precisa de mais atualizações, pois menciona a inserção de um evento no composer e a adição de detalhes do evento, não como na imagem. A menos que o Evento fosse um complemento?

Instalei o plug-in e a tag de calendário funciona na primeira postagem de um tópico. Mas não vejo nenhuma opção de evento ou calendário no menu de engrenagem:

Alguém pode, por favor, explicar o que preciso fazer para obter a opção de evento no menu de engrenagem?

Você precisa habilitar a parte de Eventos do plugin discourse post event enabled

2 curtidas

Obrigado. De alguma forma, perdi essa configuração.

3 curtidas

Como fazer com que o evento de criação apareça em um tópico de Categoria com respostas sendo eventos?

Vejo que o evento de criação funciona na criação de novos tópicos. Mas estou procurando ter um Calendário em um tópico com respostas adicionando eventos. Funciona parcialmente com a inserção de data, mas não tão bem quanto o evento de criação, que tem mais opções.

1 curtida

Atualmente, os usuários podem definir a região nas preferências de seu perfil.

Gostaria de permitir que eles definam sua região durante o cadastro, exibindo este campo no formulário de registro. Isso é viável?

2 curtidas

Uma resposta excluída ainda aparecerá no calendário?

Não consigo encontrar nenhuma configuração para alterar o primeiro dia da semana para segunda-feira, é trivial implementar se estiver faltando? :thinking:

Outro problema é que a entrada de hora e data está quebrada, se for um evento de dia inteiro deve haver uma opção para selecioná-lo antes que os campos de entrada de hora baguncem as datas, e as datas parecem mudar aleatoriamente ao editar.

Também notei que é possível inserir 00:00 em hora e data, (o que às vezes funciona, às vezes não) levando o calendário a dar um erro que causará um conflito com os rascunhos, levando a um erro 422 repetido até que a página seja revertida para uma revisão anterior, então reeditada etc.

3 curtidas

Por favor, consulte aqui

1 curtida

Não existe tal configuração e é por isso que não a uso. E aposto que a equipe corrigiria esse erro se fosse um truque trivial.

1 curtida