diff --git a/src/sequence_io/pulseq.jl b/src/sequence_io/pulseq.jl
index dccb853ae7f58b3ad46f07bd7ea7dd9b79a75dd2..9b9dd60d5bf7aebfbdf4a76842d819d0c158e961 100644
--- a/src/sequence_io/pulseq.jl
+++ b/src/sequence_io/pulseq.jl
@@ -53,6 +53,8 @@ function BuildingBlock(pulseq::PulseqBlock; version, BlockDurationRaster, Radiof
         ))
     end
 
+    append!(events, pulseq.ext)
+
     grads = [pulseq.gx, pulseq.gy, pulseq.gz]
     min_duration = max(
         maximum(e[1] + variables.duration(e[2]) for e in events; init=0.),
@@ -68,6 +70,9 @@ function BuildingBlock(pulseq::PulseqBlock; version, BlockDurationRaster, Radiof
     end
 
     times = sort(unique(vcat([0., stated_duration], _control_times.(grads, GradientRasterTime)...)))
+    if length(times) == 1
+        push!(times, 0.)
+    end
     waveform = [(t, _get_amplitude.(grads, t, GradientRasterTime)) for t in times]
 
     return BuildingBlock(waveform, events)