diff --git a/src/containers/building_blocks.jl b/src/containers/building_blocks.jl
index 2638c17d0f5a2a2f7c853ff0bf98b7cd68229023..38520323665ff07369306a828b38ba4b907ded81 100644
--- a/src/containers/building_blocks.jl
+++ b/src/containers/building_blocks.jl
@@ -250,7 +250,7 @@ Scanner constraints are automatically applied.
 
 ## Arguments
 - `waveform`: Sequence of 2-element tuples with (time, (Gx, Gy, Gz)). If `orientation` is set then the tuple is expected to look like (time, G). This cannot contain any free variables.
-- `events`: Sequence of 2-element tuples with (index, pulse/readout). The start time of the pulse/readout at the start of the gradient waveform element with index `index`. A tuple with a delay and the pulse/readout event can be used to change that.
+- `events`: Sequence of 2-element tuples with (time, pulse/readout). The `time` is the start time of the pulse/readout.
 - `duration`: duration of this `BuildingBlock`. If not set then it will be assumed to be the time of the last element in `waveform`.
 - `orientation`: orientation of the gradients in the waveform. If not set, then the full gradient vector should be given explicitly.
 - `group`: group of the gradient waveform
@@ -279,9 +279,10 @@ function BuildingBlock(waveform::AbstractVector, events::AbstractVector; orienta
         else
             push!(components, ChangingGradient(prev_grad, (grad .- prev_grad) ./ duration, orientation, duration, group))
         end
-        while length(events) > 0 && index_grad == events[1][1]
-            (_, event) = popfirst!(events)
-            push!(components, event)
+        for (t_event, event) in events
+            if prev_time <= t_event < time
+                push!(components, (t_event - prev_time, event))
+            end
         end
     end
     #for comp in components
diff --git a/src/sequence_io/pulseq.jl b/src/sequence_io/pulseq.jl
index 23535ff80fb4291931f200e5ca894869560716c1..04683ec0912bd1d1f9be12b27b0ee143c333b39b 100644
--- a/src/sequence_io/pulseq.jl
+++ b/src/sequence_io/pulseq.jl
@@ -299,7 +299,6 @@ function build_sequence(; scanner=nothing, B0=3., TR=nothing, definitions, versi
                 push!(amplitudes, 0.)
             end
         end
-        @show events
         extend_grad!.(grad_shapes)
         arrs = align_in_time(grad_shapes...)
         waveform = [(t, SVector{3, Float64}(gx, gy, gz)) for (t, gx, gy, gz) in zip(arrs...)]