Skip to main content
Fires when PATCH /v1/posts/:id successfully moves a queued scheduled post to a new firing time. The BullMQ job is replaced (old removed, new enqueued at the updated delay) and the row’s scheduledAt is persisted before this event dispatches.

Payload

post.rescheduled.json
Both timestamps are present so consumers can update calendar UI, notification triggers, or analytics buckets without a separate lookup.

Use it for

  • Mirroring the schedule change in any external calendar or planning tool.
  • Resetting notification timers tied to the post’s original firing window.
  • Audit trail: pair with post.queued and the eventual post.published (or post.canceled) to reconstruct the post’s full lifecycle.

Ordering

post.rescheduled fires after the row is updated. A consumer that subscribed to both post.queued and post.rescheduled will see them in this order:
  1. post.queued (original scheduledAt)
  2. post.rescheduled (any number of times — each PATCH emits one)
  3. post.published / post.canceled / post.failed / post.rejected (terminal)
Idempotency on the consumer side is the same as for any other webhook — dedupe on event id, not on logical state.