Eventos do Discourse

:discourse2: Resumo Discourse Events adiciona recursos dinâmicos e interativos de calendário e eventos ao seu site Discourse.
:open_book: Guia de Instalação Este plugin é incluído no núcleo do Discourse. Não é necessário instalar o plugin separadamente.

Habilitando Eventos

O plugin de Eventos pode ser habilitado pela alternância (toggle) ou a partir de suas configurações, ambas acessíveis na sua página admin/plugins:

:discourse2: Hospedado por nós? Este plugin está disponível em nossas camadas Business e Enterprise https://www.discourse.org/plugins/calendar.html

Recursos

Não surpreendentemente, o Discourse Events adiciona tanto os recursos de calendário quanto de eventos ao seu site Discourse. Com eles, você pode criar calendários de tópicos individuais para acompanhar ocasiões importantes ou cronogramas, exibir calendários em categorias, adicionar um calendário de feriados para marcar férias, ausências ou dias de doença, criar tópicos de eventos interativos, bem como exibir um resumo de calendário de fácil acesso de todos os seus próximos eventos.

Calendários

Calendários personalizados podem ser criados em vários tópicos, e aqueles que você deseja dar maior visibilidade podem ser exibidos acima da lista de tópicos de uma categoria.

Você pode encontrar informações mais detalhadas sobre como criar e usar calendários em:

Eventos

O recurso de Eventos permite que elementos interativos sejam inseridos em tópicos, que seus membros podem usar para se inscrever para participar ou participar das atividades da sua comunidade. Todos eles são resumidos em um calendário dedicado em todo o site, com a opção de adicionar um link de fácil acesso ao seu menu de navegação. Você pode encontrar mais informações sobre como criar e usar este recurso em:

:exclamation: Isso não deve ser confundido com o plugin de Eventos da Pavilion (note o plural)

Configurações do Calendário

Nome Descrição
calendário habilitado Habilita o plugin discourse-calendar. Isso adicionará suporte para a tag [calendar][/calendar] no primeiro post de um tópico.
id do tópico do calendário de feriados ID do tópico do calendário de férias/ausências dos funcionários.
emoji de status de férias Define o emoji usado para o status de férias.
excluir posts de eventos expirados após Posts com eventos expirados serão excluídos automaticamente após (n) horas. Defina como -1 para desabilitar a exclusão.
hora de início de eventos de dia inteiro Eventos que não tenham uma hora de início especificada começarão neste horário. O formato é HH:mm. Para 6:00 da manhã, insira 06:00
hora de término de eventos de dia inteiro Eventos que não tenham uma hora de término especificada terminarão neste horário. O formato é HH:mm. Para 6:00 da tarde, insira 18:00
categorias do calendário Exibe um calendário no topo de uma categoria. As configurações obrigatórias são categoryId e postId. ex: categoryId=6;postId=453[1] Outras configurações válidas: tzPicker[2], weekends[3] e defaultView[4].
outlet das categorias do calendário Permite alterar qual outlet deve exibir o calendário da categoria.
dias úteis Defina os dias úteis. Você pode exibir a disponibilidade de um grupo usando a tag timezones em um post, ex: [timezones group=admins][timezones]
hora de início do dia útil Hora de início das horas do dia útil.
hora de término do dia útil Hora de término das horas do dia útil.
extensão próxima às horas do dia útil Defina o tempo de extensão nas horas do dia útil para destacar os fusos horários.
feriados automáticos do calendário habilitados Define automaticamente o status de férias com base na região de um usuário (obs: você pode desabilitar feriados automáticos específicos nas configurações do plugin)
mapear título de eventos Mapeia o título do calendário da barra lateral com base na categoria. Padrão é “Próximos eventos”

Configurações de Eventos

Nome Descrição
evento de post do discourse habilitado Habilita os recursos de Evento. Obs: também é necessário que calendário habilitado esteja habilitado.
grupos permitidos para eventos do post do discourse Grupos que são permitidos para criar eventos.
limite de convidados exibidos Limita o número de convidados exibidos em um evento.
exibir data do evento de post no título do tópico Exibe a data do evento após o título do tópico.
usar data local do evento Use a data local após o título do tópico em vez do tempo relativo.
extensão de tempo para notificações de edição de evento de post do discourse Estende (em minutos) o período após o término de um evento quando convidados going (indo) ainda estão sendo notificados sobre edições no post original.
campos personalizados permitidos para eventos de post do discourse Permite que cada evento defina o valor de campos personalizados.
categorias do calendário de eventos Exibe um calendário de eventos no topo de uma categoria.
habilitar ordenação de categorias por data de início do evento Habilita a ordenação dos tópicos da categoria pela data de início do evento.
desabilitar reordenação em categorias habilitado Permite que categorias desabilitem a capacidade dos usuários de ordenar na categoria de eventos.
mostrar próximos eventos na barra lateral Mostra o link de próximos eventos na barra lateral sob ‘Mais’. Requer post event enabled
mapear eventos para cor Atribui uma cor de evento a uma tag ou categoria especificada

:information_source: :curling_stone: O endpoint discourse-post-event/events.json agora tem um parâmetro adicionado para alternar entre resposta simples e detalhada. Para obter a resposta detalhada, você pode adicionar ?include_details=true:

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

Criando Eventos via API

Você pode criar eventos via POST /posts.json com o BBCode [event][/event] no campo raw. Aqui estão os detalhes sobre como configurar sua solicitação de API:

  • Use POST /posts.json com o parâmetro raw
  • Sintaxe do evento: [event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event]
  • Uma quebra de linha literal \n é obrigatória entre as tags de abertura e fechamento
  • As aspas duplas devem ser escapadas ao usar JSON (\")
  • A conta de usuário da API deve ter permissão para criar eventos (admin ou um grupo com direitos de criação de eventos)
  • Defina a categoria via o parâmetro category, passando o id da categoria como valor.

Eventos de transmissão ao vivo

Para eventos ao vivo, use a funcionalidade de transmissão ao vivo para permitir que os membros assistam a um evento e participem do chat ao mesmo tempo.

Um evento de transmissão ao vivo inclui:

  • Um stream de vídeo (usando YouTube, por exemplo)
  • Um evento de calendário usando Discourse Events
  • Um canal de chat de acompanhamento criado automaticamente para o evento

Pré-requisitos para eventos de transmissão ao vivo

Para usar eventos de transmissão ao vivo, você deve ter chat habilitado, pois a transmissão ao vivo cria um canal de chat para acompanhar seu evento, além de discourse post event habilitado e calendário habilitado.

Se você quiser usar transmissão ao vivo, mas não quiser chat em outros lugares...
  • Defina chat allowed groups para a configuração padrão ou inclua trust_level_0 para permitir que usuários totalmente novos participem do chat de transmissão ao vivo
  • Remova grupos da configuração direct message enabled groups para impedir mensagens diretas de usuário para usuário
  • Não crie outros canais de chat

Criando um evento de transmissão ao vivo

Para criar um evento de transmissão ao vivo:

  1. Abra um novo tópico.
  2. Selecione o ícone + na barra de ferramentas do compositor e clique em Criar Evento (se o evento ainda não foi adicionado ao seu tópico).
  3. Cole o link para o vídeo do evento (por exemplo, uma URL do YouTube) no campo local/URL.
  4. Ative a alternância “transmissão ao vivo”

Você verá então que o evento e a transmissão ao vivo foram criados, juntamente com um canal de chat de acompanhamento no lado direito.

Assim que qualquer usuário clicar em Going (Vou) no evento, eles serão automaticamente adicionados ao canal de chat, permitindo que participem da conversa!

Transmissão ao vivo de webinars do Zoom

Você pode usar a transmissão ao vivo para hospedar webinars do Zoom diretamente no Discourse, para que os membros possam assistir ao evento e participar do canal de chat de acompanhamento sem sair da sua comunidade.

Pré-requisitos para webinars do Zoom

Além dos pré-requisitos de transmissão ao vivo, você também precisará configurar as seguintes configurações:

  • Ative livestream zoom enabled
  • Insira sua chave do Zoom Meeting SDK na configuração livestream zoom sdk key
  • Insira seu segredo do Zoom Meeting SDK na configuração livestream zoom sdk secret

Para obter a chave e o segredo do Zoom Meeting SDK:

  1. Vá para marketplace.zoom.us, clique em Develop (Desenvolver) e clique em Build app (Criar aplicativo).

  2. Quando perguntado que tipo de aplicativo você está criando, escolha General App (Aplicativo Geral) e clique em Create (Criar).

  3. Na página App Credentials (Credenciais do Aplicativo) do aplicativo, copie o Client ID (Chave do SDK) e o Client Secret (Segredo do SDK).

  4. Em Embed (Incorporar), habilite a permissão Meeting SDK (SDK de Reunião).

  5. No seu Discourse, vá para Admin → All site settings (Admin → Todas as configurações do site) e insira os valores da etapa 3 em livestream zoom sdk key e livestream zoom sdk secret.

Para que o webinar do Zoom funcione corretamente no Discourse:

  • O webinar não deve exigir registro ou senha para participar.

  • Desative o chat embutido do webinar do Zoom para garantir que toda a discussão aconteça no único canal de chat do Discourse, mantendo todo o chat em um só lugar e garantindo que a conversa possa continuar após o término do webinar.

Criando um evento de transmissão ao vivo para webinar do Zoom

Para criar um evento de transmissão ao vivo para seu webinar do Zoom:

  1. Abra um novo tópico, selecione o ícone + e clique em Criar Evento.
  2. Cole o link do seu webinar do Zoom (por exemplo, https://zoom.us/``...) no campo URL/Local.
  3. Ative Transmissão ao Vivo.
  4. Defina o nome do evento, hora de início, hora de término e outros detalhes do evento conforme desejado.
  5. Publique o tópico.

Como outros eventos de transmissão ao vivo, este evento será criado com um canal de chat do Discourse de acompanhamento, ao qual os membros são adicionados automaticamente após confirmarem presença como “Going” (Vou).

Experiência do membro

Aqui está como seus membros experimentarão o webinar:

Antes do evento

Um botão Join Zoom (Entrar no Zoom) é exibido a partir de 30 minutos antes do início do evento. Fora dessa janela, o botão fica desabilitado com uma mensagem indicando quando ficará disponível.

Durante o evento

Assim que os membros clicarem em Join Zoom (Entrar no Zoom), o webinar será carregado na página do tópico (ou, se o anfitrião ainda não tiver iniciado o evento, o membro precisará esperar até que ele o faça para ver o vídeo).

O áudio não se conecta automaticamente ao entrar no webinar; os participantes precisam clicar ou tocar no ícone de áudio na barra de ferramentas do Zoom para se conectar. Esta é uma limitação do SDK do Zoom e não pode ser alterada.

No celular, o webinar abre em uma visualização do Zoom em tela cheia (que também é acessível no desktop adicionando /zoom ao final da URL do tópico do evento) com um botão flutuante de Chat que eles podem tocar para abrir um painel de sobreposição de chat durante o evento.

Após o evento

O botão Join Zoom (Entrar no Zoom) fica oculto 10 minutos após a hora de término do evento. O canal de chat permanece acessível aos participantes até que você o feche.

Integrações com Outros Plugins

Você pode usar um componente deste plugin com Right Sidebar Blocks. Você quererá garantir que a rota desejada esteja habilitada no componente Right Sidebar Blocks. O nome do bloco será upcoming-events-list. Historicamente, havia configurações adicionais necessárias no próprio plugin Calendar, mas isso foi simplificado.

É assim que o calendário da barra lateral aparecerá por padrão.

Se você não quiser a hora, pode adicionar um valor vazio de timeFormat na configuração de bloco do componente.


  1. categoryId é a categoria na qual o calendário será exibido no topo.
    postId é o post no qual você colocou o calendário com [calendar][/calendar] ↩︎

  2. pode exibir um seletor de fuso horário no canto superior direito do calendário. Falso por padrão, você pode habilitá-lo com tzPicker=true ↩︎

  3. pode ocultar sábados e domingos do calendário. Verdadeiro por padrão. Você pode definir como falso com weekends=false. ↩︎

  4. defaultView definirá a visualização do calendário (dia, semana, etc;). Pode ser definido como:

    defaultView=agendaDay
    defaultView=agendaWeek
    defaultView=month (padrão)
    defaultView=listNextYear ↩︎

101 Curtiram
How to use the calendar plugin?
Discourse Calendar - How to?
Calendar plugin, nothing is displayed
Discourse 2.2.0.beta3 Release Notes
How to use the calendar plugin?
Discourse Calendar dislpay link text rather than link url
Ability to mark any post as unread
Is there a room booking plugin?
📅 Event List Widget (Layouts Plugin)
I am looking for a webhook or event api
Inserting date/time into new topic's title field (ie, right here > !)
Db:migrate fails on discourse-calendar
Moderator/Admin Off Duty Button
Go from a Wordpress + Discourse structure to a Discourse site only?
Creating sub-communities in a discourse server
Vacation autoresponder for users who are away?
Please better document the Discourse Calendar plugin
Plugin to gather approvals / signatures on an initiative?
Plugin to show upcoming events on hosted discourse
Discourse Livestream
New to Discourse, have some questions :)
Expired events with end times are being removed from upcoming-events even with setting set to -1
Setup Continuous Integration using GitHub Actions
Add color to events based on event category or tag?
Is there any way to change the starting date of the Calendar?
SEO applied to Discourse Official Plugins
Add color to events based on event category or tag?
Add recurrent items within a date-range
Use Case Question - Room/Equipment Booking
Best practices for communicating to user base
Integrate with Discourse-calendar
My Wiki of useful Meta (and other) links
Quotes in event name clears attendees
Calendar in Discourse
Show Cakeday dates on the Calendar plugin
Agenda de colegio
What are your favorite plugins for your community?
Display a category as a calendar by scheduled Topic-timer dates
Why you should use Discourse internally for your company/team instead of Slack (4 years use case)
Newbie question: Is there a comprehensive guide to configuring and administering Discourse instance?
Angus' Events Plugin :calendar:
When "closing" event it moves it to today's date & time
How to display different calendar views?
Discourse calendar and event iCal integration?
Can the auto-responder fire on @mentions?
Event/Calendar Plugin - Cannot select a user for bulk-invite
Bulk Invite via modal only allowing one user (and not displaying correctly)
Event Creation
500 Error when posting, moment.tz runtime error
Best practice for a topic for a recurring event
How to get "back" btn
Event Chat Channels Now Available
📅 New Calendar Feature: End Date for Recurring Events
🌍 New Calendar Feature: Show Local Time
What livestream/webinar platforms do you use?
Custom Wizard Plugin :mage:
ICS → Discourse Importer
How have you built a local community around Discourse?
Angus' Events Plugin :calendar:
What happens next?
Bundling more popular plugins with Discourse core
Calendar subscription URLs for external calendar apps
Listing event invitees with email addresses
Discourse Daily Challenges
Upcoming Events Extra Buttons and Enhancements
Horizon: High Context Topic Cards
Besoin de renseignement pour informer une annulation d'événement
Current Projects - May 2026
It's easier than ever to create events in Discourse!
Easily create Events categories using the Calendar and Events plugin
Discourse Calendar & Events: Webhook triggers & Automations Plugin
Discourse Calendar - How to?
Angus' Events Plugin :calendar:
Topic List Previews (TLP)
New Topic button text does not change to New Event in sidebar in events category in Horizon Theme
Current Projects - June 2026
Event Duplicator: duplicate calendar events/topics into a new time period
It is very difficult to make events all day in the events modal (and 00:00 is confusing)
Questions about the Zoom Livestream integration
Help us test Horizon, our newest theme
Discourse Calendar is now Discourse Events!
Category Calendar with defaultView="listNextYear" not showing events
Zoom webinar livestream in the Events plugin
Calendar Core - Needs any special theme?
Current Projects - August 2026
Creating and managing calendars
Sorting Categories by Title
Creating and managing events
Category Calendar with defaultView="listNextYear" not showing events
The "Save Changes" button is very low on my user preferences interface page
Group Timezones
Easily create Events categories using the Calendar and Events plugin
Available hours / work hours flair
Could use help, setting up new community
Feature request: wrap calendar items when there's just one per day
Right Sidebar Blocks
Custom Discourse instance for a writers club
Unread messages blue numbers appearing in Latest lately (when they shouldn't)?
Database migration chokes on huge value of a "calendar-details" item in table "post_custom_fields"
"Out of office" user indicator
Database migration chokes on huge value of a "calendar-details" item in table "post_custom_fields"
Angus' Events Plugin :calendar:
Angus' Events Plugin :calendar:
Calendar plugin features to make it really useful for us
"Out of office" user indicator
Can discourse display topic replies in reverse order?

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 Curtiram

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 Curtiu

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

1 Curtiu

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 Curtiram

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

3 Curtiram

E quanto à sincronização CalDAV?

6 Curtiram

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 Curtiram

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

3 Curtiram

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 Curtiu

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?

3 Curtiram

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 Curtiram

Por favor, consulte aqui

1 Curtiu

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 Curtiu