Events Calender iCal link no longer working

Does someone else have problems accessing the Events calendar from Thunderbird using the iCal-Link?
I am using webcal://community.theforeman.org/c/events/l/calendar.ics?time_zone=Europe/Berlin as it is published by the Subscribe-button on the Events page.

Thunderbird then requests the following URL, which results in a HTTP-Error 500:
https://community.theforeman.org/c/events/l/calendar.ics?time_zone=Europe/Berlin

Oh no!
I don’t have this setup, and everything is still working for me.
Anyone else with this setup that might test?

I’m using evolution and just tested it with http/https and always get a “Internal Server Error” but no more details when I refresh. So I can confirm!

When using curl I get:

<!DOCTYPE html>
<html>
<head>
  <title>Oops - Error 500</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
    <h1>Oops</h1>
    <p>The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience.</p>
    <p>Detailed information about the error was logged, and an automatic notification generated. We'll take a look at it.</p>
    <p>No further action is necessary. However, if the error condition persists, you can provide additional detail, including steps to reproduce the error, by posting a discussion topic in the site's feedback category.</p>
</body>
</html>

So there should be some logging in Discourse about what is failing!

Looks like this is also causing the Google calendar to fail now. I tried updating discourse but it seems to still be failing. Looking at the logs, it seems there is probably some bug in the events plugin:

NameError (undefined local variable or method `local_start' for #<TZInfo::TimezoneTransition:0x00007f8ff5114bd0>
Did you mean?  local_start_at)
icalendar (2.4.1) lib/icalendar/tzinfo.rb:79:in `dtstart'
icalendar (2.4.1) lib/icalendar/tzinfo.rb:173:in `block in build_timezone'
icalendar (2.4.1) lib/icalendar/tzinfo.rb:169:in `tap'
icalendar (2.4.1) lib/icalendar/tzinfo.rb:169:in `build_timezone'
icalendar (2.4.1) lib/icalendar/tzinfo.rb:137:in `daylight'
icalendar (2.4.1) lib/icalendar/tzinfo.rb:103:in `ical_timezone'
plugins/discourse-events/controllers/list_controller_edits.rb:96:in `event_ics'
plugins/discourse-events/controllers/list_controller_edits.rb:36:in `calendar_ics'
actionpack (6.1.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.1.3.2) lib/abstract_controller/base.rb:228:in `process_action'
actionpack (6.1.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.1.3.2) lib/active_support/callbacks.rb:117:in `block in run_callbacks'
app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
i18n (1.8.10) lib/i18n.rb:314:in `with_locale'
app/controllers/application_controller.rb:397:in `with_resolved_locale'
activesupport (6.1.3.2) lib/active_support/callbacks.rb:126:in `block in run_callbacks'
activesupport (6.1.3.2) lib/active_support/callbacks.rb:137:in `run_callbacks'
actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.3.2) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.3.2) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.3.2) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.3.2) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.3.2) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.2) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'


actionpack (6.1.3.2) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.3.2) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.1.3.2) lib/action_dispatch/http/permissions_policy.rb:22:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:353:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.3.2) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.9.6) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.1.3.2) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.3.2) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.3.2) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'
rack-mini-profiler (2.3.2) lib/mini_profiler/profiler.rb:249:in `call'


message_bus (3.3.6) lib/message_bus/rack/middleware.rb:61:in `call'
lib/middleware/request_tracker.rb:177:in `call'
railties (6.1.3.2) lib/rails/engine.rb:539:in `call'
railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'
unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

Any news on this topic?

I looked around the Discourse forums at the time but didn’t see any other reports.
I will go ask now.

The Discourse events plugin that provides this is closed for comments at the moment as the dev is overwhelmed with the backlog.
I posted to Discourse general about this but didn’t get any response.
I suppose we have no choice but to hope this is updated soon.

Hi @mcorr . Is there a chance to re-visit this topic here? Since you connected with the dev somehow, may we are able to address this issue now? In case I can support by created this case, please let me know.

Thanks a lot, Robert

Hey @rogo
Sure thing.
I will look again.
I didn’t get even to the stage of reporting this as they have closed the thread.
I will try again. If we can’t get anywhere, I’ll have to look into an alternative and would be happy to maintain something that would be easy to copy into common calendaring tools.

Has anyone filed an issue @ https://github.com/paviliondev/discourse-events about this?

It looks like this is in the vendored icalendar gem:

In upstream icalendar this was fixed in 2.5.3 with:

So the fix is to either patch the vendored icalendar or update it.

I’ve now opened:

2 Likes

Issues were closed for the entire summer, opened back up only Oct 11.
I see you have opened an issue.

@m-bucher is it working for you now?

Any updates here? I was also trying to get the RSS feed link, but did not work, either.

Hey @nadjaheitmann - we thought that the bug that caused this was fixed. We were trying to get confirmation from @m-bucher. I am sad to hear you’re still experiencing problems…

For me it is working and I tested the link https://community.theforeman.org/c/events/l/calendar.ics?time_zone=Europe/Paris&category_slug_path_with_id=events now again and got a valid ics.

And as Nadja talked about rss I also tested TheForeman Events and also got a valid rss feed, but I am not using an rss reader (or did so for a very long time) so I am not sure if something actually gets published.

2 Likes

@Dirk Thanks for the links! I was having a hard time accessing them on the page.

The calendar link seems to work fine, I can see all the events, not sure about the RSS feed. As of now, it appears empty for me although the link itself is valid.

1 Like

Sorry for not responding, yes the Link directly to the .ics works again, I still had the webcal:// in my Thunderbird and that one does not work.

I see a problem for people that do not know the Link to the .ics, though, because on the CalendarView in Discourse the Subscribe-button does not advertise it (also the one it does advertise is not shown completely and cannot be copied).

Isn’t webcal:// just a fancy way of saying “This is an HTTP link, but open it in your Calendar app”?

Seems that the RSS feed is working as well. I just got a notification for the Infrastructure SIG meeting.

1 Like

yippee