Timer Event
An event triggered by a schedule — a fixed date, a delay, or a recurring cycle — rather than by another element completing.
A timer event (drawn with a clock icon inside its circle) fires based on time rather than an incoming message or a completed task. A timer start event begins a new process instance on a schedule; a timer intermediate catch event pauses a running instance for a duration, until a specific date, or on a recurring cycle.
Timer values are ISO 8601: a duration like `PT1H` (one hour), a date-time like `2026-08-01T09:00:00Z`, or a recurring cycle like `R/PT24H` (every 24 hours). A timer boundary event (see Boundary Event) uses the same duration/date/cycle options to model timeouts.
Example
Bpmn.createProcess("reminder-flow")
.startEvent("start")
.userTask("submit-request", { name: "Submit Request" })
.intermediateCatchEvent("wait-24h", { timerDuration: "PT24H" })
.serviceTask("send-reminder", { taskType: "send-reminder-email" })
.endEvent("end")
.withAutoLayout()
.build();