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:
Edit post and remove the event BB code, save the post
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.
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:
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.
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.