🗓 Discourse Event

That would be rounding to the nearest whole number of days remaining.

3 Likes

That is actually a bit weird. No human ever does that.

If today is Monday and I have something on at 1800 Wednesday, it is usually considered to be in two days time all day on Monday until midnight when it changes to ‘tomorrow’. And stays that way until midnight Tues.

You should consider changing that dynamic.

1 Like

Thanks for this beautiful plugiun. Very useful to animate a community with events. I have installed the plugin and another one to generate a beautiful list of events : all events are created in a dedicated category. Example : Événements - Koweb Kafé

It would be nice to set an ordering option “by event date” as default order for the category. First : from the closest event to the last planned and after the others topics. Or maybe I should review the structuration of the forum to fit this need ?

5 Likes

Is this (caldav / export feature) still something interessing?

Feature Request: include link (and maybe the text of the post) in the .ics file

It would be super helpful for arranging video meetings if the meeting link was passed through from the Event via the .ics, perhaps in the URL field.

It would also be nice if the post text (minus the ‘’’[Event]’’’ gumpff) was included in the description as well.

2 Likes

Seems using “&” in an event name imposes a “Ampersand” which is frustrating with a 30 character name limit

3 Likes

We try to use only one tool for the community. A caldav link is an interesting idea but how to create a nice view in the discourse ? I would prefer feature requests to improve the upcoming events view like this suggestion :

2 Likes

I guess, the only “requirement” would be to have a button to get the link (including a token for security) to the caldav / ics of a discourse calendar. This link can then be used in tools like ms outlook, etc.

3 Likes

This question might need to be moved to a linked topic, but…

Has anyone figured out any methods for automating recurring events to simplify pinning or bumping their respective topics as the recurring event is happening.

Example: our topic “Weekly Meeting” recurs every Tuesday evening for two hours and the topic contains links to the online video call and notes.

I would love have the topic globally pin or bump the day of the meeting each week. Unsure of how to automate or simplify this process. Any suggestions appreciated!

2 Likes

I like that the event is displayed in topic lists. Can you also display it on categories with latest? See how it looks below.

Correct on Latest:

Screen Shot 2020-11-19 at 11.35.12 AM

Missing on Categories with latest:

Another oddity I noticed is that when I edit an event topic I created to change the date, I get two notifications. Also the RSVP list gets greyed out. I guess all those people need to RSVP again? Then shouldn’t the “tobiaseigen has invited you to…” notification be something more direct, e.g. something like “EVENTNAME has changed. Confirm your attendance”

Screen Shot 2020-11-19 at 10.51.06 AM

2 Likes

It would be great, to specify on a category level which user group is allowed to create events. Currently, there are e.g. something like this

  • common categories on which user group football and user group tennis have access
  • category tennis with only user group tennis
  • category football with only user group football

the target would be, that user group tennis can only create events in category tennis. in the common category there should not be any event posted.

2 Likes

Topic List Previews (both flavours) should now work with any plugin decorating the Title including discourse-calendar (this plugin) … please confirm.

3 Likes

Seeing this error in the log. Running latest Tests-Pass 2.7.0beta1 with Calendar plugin / Event

Summary

rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:69:in `exec_params’

rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:69:in `exec_params’

(eval):105:in `exec_params’

activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:675:in `block (2 levels) in exec_no_cache’

activesupport (6.0.3.3) lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads’

activesupport (6.0.3.3) lib/active_support/concurrency/share_lock.rb:187:in `yield_shares’

activesupport (6.0.3.3) lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads’

activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:674:in `block in exec_no_cache’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log’

activesupport (6.0.3.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log’

activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:673:in `exec_no_cache’

activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:654:in `execute_and_clear’

activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql/database_statements.rb:98:in `exec_query’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:135:in `exec_insert’

activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql/database_statements.rb:132:in `exec_insert’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:166:in `insert’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert’

activerecord (6.0.3.3) lib/active_record/persistence.rb:375:in `_insert_record’

activerecord (6.0.3.3) lib/active_record/persistence.rb:932:in `_create_record’

activerecord (6.0.3.3) lib/active_record/counter_cache.rb:166:in `_create_record’

activerecord (6.0.3.3) lib/active_record/locking/optimistic.rb:70:in `_create_record’

activerecord (6.0.3.3) lib/active_record/attribute_methods/dirty.rb:211:in `_create_record’

activerecord (6.0.3.3) lib/active_record/callbacks.rb:331:in `block in _create_record’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:101:in `run_callbacks’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:825:in `_run_create_callbacks’

activerecord (6.0.3.3) lib/active_record/callbacks.rb:331:in `_create_record’

activerecord (6.0.3.3) lib/active_record/timestamp.rb:110:in `_create_record’

activerecord (6.0.3.3) lib/active_record/persistence.rb:905:in `create_or_update’

activerecord (6.0.3.3) lib/active_record/callbacks.rb:327:in `block in create_or_update’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:135:in `run_callbacks’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:825:in `_run_save_callbacks’

activerecord (6.0.3.3) lib/active_record/callbacks.rb:327:in `create_or_update’

activerecord (6.0.3.3) lib/active_record/timestamp.rb:128:in `create_or_update’

activerecord (6.0.3.3) lib/active_record/persistence.rb:503:in `save!’

activerecord (6.0.3.3) lib/active_record/validations.rb:53:in `save!’

activerecord (6.0.3.3) lib/active_record/transactions.rb:318:in `block in save!’

activerecord (6.0.3.3) lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt’

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction’

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction’

activerecord (6.0.3.3) lib/active_record/transactions.rb:212:in `transaction’

activerecord (6.0.3.3) lib/active_record/transactions.rb:366:in `with_transaction_returning_status’

activerecord (6.0.3.3) lib/active_record/transactions.rb:318:in `save!’

activerecord (6.0.3.3) lib/active_record/suppressor.rb:48:in `save!’

activerecord (6.0.3.3) lib/active_record/persistence.rb:55:in `create!’

plugins/discourse-calendar/app/models/discourse_post_event/invitee.rb:27:in `create_attendance!’

plugins/discourse-calendar/app/controllers/discourse_post_event/invitees_controller.rb:33:in `create’

actionpack (6.0.3.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action’

actionpack (6.0.3.3) lib/abstract_controller/base.rb:195:in `process_action’

actionpack (6.0.3.3) lib/action_controller/metal/rendering.rb:30:in `process_action’

actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:42:in `block in process_action’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:112:in `block in run_callbacks’

app/controllers/application_controller.rb:358:in `block in with_resolved_locale’

i18n (1.8.5) lib/i18n.rb:313:in `with_locale’

app/controllers/application_controller.rb:358:in `with_resolved_locale’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:121:in `block in run_callbacks’

activesupport (6.0.3.3) lib/active_support/callbacks.rb:139:in `run_callbacks’

actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:41:in `process_action’

actionpack (6.0.3.3) lib/action_controller/metal/rescue.rb:22:in `process_action’

actionpack (6.0.3.3) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action’

activesupport (6.0.3.3) lib/active_support/notifications.rb:180:in `block in instrument’

activesupport (6.0.3.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument’

activesupport (6.0.3.3) lib/active_support/notifications.rb:180:in `instrument’

actionpack (6.0.3.3) lib/action_controller/metal/instrumentation.rb:32:in `process_action’

actionpack (6.0.3.3) lib/action_controller/metal/params_wrapper.rb:245:in `process_action’

activerecord (6.0.3.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action’

actionpack (6.0.3.3) lib/abstract_controller/base.rb:136:in `process’

actionview (6.0.3.3) lib/action_view/rendering.rb:39:in `process’

rack-mini-profiler (2.2.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method’

actionpack (6.0.3.3) lib/action_controller/metal.rb:190:in `dispatch’

actionpack (6.0.3.3) lib/action_controller/metal.rb:254:in `dispatch’

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:50:in `dispatch’

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:33:in `serve’

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:49:in `block in serve’

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `each’

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `serve’

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:834:in `call’

railties (6.0.3.3) lib/rails/engine.rb:527:in `call’

railties (6.0.3.3) lib/rails/railtie.rb:190:in `public_send’

railties (6.0.3.3) lib/rails/railtie.rb:190:in `method_missing’

actionpack (6.0.3.3) lib/action_dispatch/routing/mapper.rb:19:in `block in class:Constraints

actionpack (6.0.3.3) lib/action_dispatch/routing/mapper.rb:48:in `serve’

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:49:in `block in serve’

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `each’

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `serve’

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:834:in `call’

lib/middleware/omniauth_bypass_middleware.rb:68:in `call’

rack (2.2.3) lib/rack/

I’d really appreciate having a button icon for “Create Event” directly visible in the post menu and not hidden within the Gear icon menu. Very useful.

1 Like

Do you have the exact exception message? This is only the trace.

2 Likes

This is really exciting.

Is there any API, or any sort of way to import from/to Facebook Events or Google Calendar? I suppose, in a pinch, one could gather .ics files or such for import/export?

I’m thinking through what it takes to share events in a world where a Discourse forum may not be the first or best place to share information about public events (private events have different constraints), but where it might be cool to be able to share them without re-entering the information manually.

1 Like

This is awaiting review but that should fix it once merged:

Note that there are not hurries, this is not creating anything wrong besides these logs.

3 Likes

Hi, all. Is this still the best method to achieve this? We would like ours to display as “Events” rather than “Upcoming events”

1 Like

Yep, you can re-write the text to whatever you want.

1 Like

Thank you so much! I appreciate your help.

1 Like

Hello, I’m having trouble understanding this setting

calendar categories

Display a calendar at the top of a category. Mandatory settings are categoryId and postId. eg: categoryId=6;postId=453 Other valid settings: tzPicker, weekends and defaultView.

  1. How do I find category id?
  2. What’s the purpose of the postId?

The overall context is that I’m looking for is a way for each category to have a calendar navigation link (next to latest / top / etc.) that allows them to see discourse events specific to their category. For example, let’s say we use Discourse Events to list all our deadlines to post different social media content. In the Social Media category, I’d like to be able to see events related only to Social Media in order to keep track of these deadlines while not seeing events related to the Business team’s category.

2 Likes