Editing event end date → post event date on topic title not updated (since 3.6.0.beta2 update)

Tested on 3.6.0.beta2, as far as I recall, issue didn’t appear on beta1

Steps:

  1. Create new topic with event start date in the past and end date in the future (e.g. in 3 hours)
  2. Publish topic, post event date on topic title is displayed correctly
  3. Update event end date to a later or earlier time
  4. Issue occurs: post event date on topic title remains the same

I tried to refresh HTML as well, but issue persists

Edit: I encountered same issue when editing just the event start date, but could not reproduce it yet…

1 Like

How are you editing the event, via the UI of via markdown.

Do both behave differently?

As far as I recall, the issue appeared in both cases.

Sometimes the start date wasn’t updated, and sometimes the end date was affected. I didn’t have a chance to properly reproduce it as it’s really time-consuming and intricate.

I submitted a tiny PR which fixed it to some extent. We are using that as a helper plugin for now.

The current workaround is also:

  1. Edit post and remove the event BB code, save the post
  2. Edit the post, re-add the event BB code with the desired date, and save post

This re-writes the event dates from scratch into the topic.

Hello,

I opened FIX: Refresh event dates in topic lists - Pull Request #43285 - discourse/discourse - GitHub for this.

I then made a screen recording of manual testing against the PR head commit:

The PR is based on main.

The red timer in the recording counts down to the relevant event boundaries, while the green clock shows the current wall-clock time, so the recording should be self-contained.

I’ve included my exact test timings and BBCode below as supplementary notes.

First test — edit end only

Intended timings:

start edited start end edited end
16:22 no edit 16:25 16:28

The BBCode initially was:

[event start="2026-09-04 16:22" status=public timezone=Europe/London end="2026-09-04 16:25"]
this is an event description
[/event]

I explicitly changed it to:

[event start="2026-09-04 16:22" status=public timezone=Europe/London end="2026-09-04 16:28"]
this is an event description
[/event]
Second test — edit start only

Intended timings:

start edited start end edited end
16:31 16:32 16:35 no edit

I made a setup mistake in this run: the initial BBCode was actually:

[event start="2026-09-04 17:00" end="2026-09-04 18:00" status="public" timezone="Europe/London" reminders="notification.15.minutes"]
[/event]

I then explicitly changed it to:

[event start="2026-09-04 16:32" status=public timezone=Europe/London end="2026-09-04 16:35" reminders=notification.15.minutes]
[/event]

So this particular run should not be treated as a clean 16:3116:32 start-only comparison.

Third test — edit start and end

Intended timings:

start edited start end edited end
16:38 16:39 16:42 16:45

The BBCode initially was:

[event start="2026-09-04 16:38" status=public timezone=Europe/London end="2026-09-04 16:42" reminders=notification.15.minutes]
[/event]

I explicitly changed it to:

[event start="2026-09-04 16:39" status=public timezone=Europe/London end="2026-09-04 16:45" reminders=notification.15.minutes]
[/event]
Fourth test — edit end only

Intended timings:

start edited start end edited end
16:47 no edit 16:50 16:53

The BBCode initially was:

[event start="2026-09-04 16:47" status=public timezone=Europe/London end="2026-09-04 16:50"]
[/event]

I explicitly changed it to:

[event start="2026-09-04 16:47" status=public timezone=Europe/London end="2026-09-04 16:53"]
[/event]
Fifth test — edit start only

Intended timings:

start edited start end edited end
16:56 16:57 17:00 no edit

The final BBCode was:

[event start="2026-09-04 16:57" status=public timezone=Europe/London end="2026-09-04 17:00" reminders=notification.15.minutes]
[/event]

A database check afterwards confirms that this post was edited once by its author within Discourse’s 300-second editing grace period (self_edits = 1). Because the edit was within that grace period, the post remained at version 1 and no visible revision/pencil was created.

The original raw value is therefore no longer available from post_revisions, but the test was not an unedited post.

Sixth test — edit start and end

Intended timings:

start edited start end edited end
17:03 17:04 17:07 17:10

The final BBCode was:

[event start="2026-09-04 17:04" end="2026-09-04 17:10" status="public" timezone="Europe/London" reminders="notification.15.minutes"]
[/event]

A database check afterwards confirms that this post was edited once by its author within Discourse’s 300-second editing grace period (self_edits = 1). Because the edit was within that grace period, the post remained at version 1 and no visible revision/pencil was created.

The original raw value is therefore no longer available from post_revisions, but the test was not an unedited post.