diff --git a/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6 b/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6 index 502d05b21a6..123c6150f31 100644 --- a/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6 +++ b/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6 @@ -47,7 +47,7 @@ export default class LocalDateBuilder { localTimezone: this.localTimezone, }); - if (this.recurring) { + if (this.recurring && moment().isAfter(localDate.datetime)) { const [count, type] = this.recurring.split("."); const repetitionsForType = localDate.repetitionsBetweenDates( diff --git a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6 b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6 index 92baa75838c..06b29e0e269 100644 --- a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6 +++ b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6 @@ -5,6 +5,7 @@ import sinon from "sinon"; const UTC = "Etc/UTC"; const SYDNEY = "Australia/Sydney"; const LOS_ANGELES = "America/Los_Angeles"; +const NEW_YORK = "America/New_York"; const PARIS = "Europe/Paris"; const LAGOS = "Africa/Lagos"; const LONDON = "Europe/London"; @@ -217,6 +218,21 @@ test("option[recurring]", function (assert) { "it works to the minute" ); }); + + freezeTime({ date: "2020-12-28 09:16" }, () => { + assert.buildsCorrectDate( + { + date: "2021-01-24", + time: "08:30", + recurring: "1.weeks", + timezone: NEW_YORK, + }, + { + formated: "January 24, 2021 2:30 PM", + }, + "it works for a future date" + ); + }); }); test("option[countown]", function (assert) {