Syntax

Events

Start, end and wait with plain, message, timer and other event types.

A start, end, catch or throw event can take a type after a colon, such as start:message or end:terminate. The types are message, timer, error, signal, conditional, escalation, terminate and compensation. Without a type you get a plain event.

This process starts every week, waits for a message and sends a signal:

Flowmark
process Weekly stock count

start:timer(R/P1W) Week started
manual Count stock
send Send count to purchasing
catch:message Purchasing confirmed
throw:signal Stock levels updated
end Count closed

Set a timer

Only timers use an argument, written in parentheses right after the type. It's an ISO 8601 value, and the app tells the three kinds apart by the first letter:

You wantStarts withExample line
A wait (duration)Pcatch:timer(P2D) Two days passed or catch:timer(P1DT12H) Wait over
A fixed datea digitstart:timer(2026-12-31T09:00:00Z) Year end reached
A repeating cycleRstart:timer(R/P1W) Week started or start:timer(R3/PT10M) Retry due

In the BPMN XML these become a time duration, time date and time cycle. A timer with no argument parses, but the checks warn that it has no duration, date or cycle.

Which types fit where

Flowmark accepts any type on any event, but BPMN doesn't: a start event can be plain, message, timer, signal or conditional, and an end event can't be a timer or conditional.

Name events as a state, such as "Order received" or "Invoice paid".

For an event on the edge of a task, such as a deadline, see Boundary events.

On this page