diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e82264fd2be577525197db9bb31c7b4a715d350c..b73a4ece3ea1238a17b15903bff916a81241f459 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -114,6 +114,11 @@ losoto_clip:
   allow_failure: true
   script:
     - cwl-runner --no-container steps/LoSoTo.Clip.cwl test_jobs/losoto_clip.json
+losoto_flagextend:
+  stage: test_steps
+  allow_failure: true
+  script:
+    - cwl-runner --no-container steps/LoSoTo.Flagextend.cwl test_jobs/losoto_flagextend.json
 
 losoto_faraday:
   stage: test_steps
diff --git a/steps/LoSoTo.Flagextend.cwl b/steps/LoSoTo.Flagextend.cwl
new file mode 100644
index 0000000000000000000000000000000000000000..330b2fb9b127c8f8e745d259e50bfbbed312e580
--- /dev/null
+++ b/steps/LoSoTo.Flagextend.cwl
@@ -0,0 +1,71 @@
+#!/usr/bin/env cwl-runner
+
+class: CommandLineTool
+cwlVersion: v1.0
+id: losoto_flagextend
+
+$namespaces:
+  lofar: https://git.astron.nl/eosc/ontologies/raw/master/schema/lofar.owl
+doc: |
+    This operation for LoSoTo implement a extend flag procedure.
+    It can work in multi dimensional space and for each datum check if the
+     surrounding data are flagged to a certain %, then flag also that datum.
+    The size of the surrounding footprint can be tuned
+
+requirements:
+  InlineJavascriptRequirement:
+    expressionLib:
+      - { $include: utils.js}
+  InitialWorkDirRequirement:
+    listing:
+      - entryname: 'parset.config'
+        entry: $(get_losoto_config('FLAGEXTEND').join('\n'))
+
+      - entryname: $(inputs.input_h5parm.basename)
+        entry: $(inputs.input_h5parm)
+        writable: true
+
+baseCommand: "losoto"
+
+arguments:
+  - $(inputs.input_h5parm.basename)
+  - parset.config
+
+hints:
+  DockerRequirement:
+    dockerPull: lofareosc/lofar-pipeline-ci:latest
+
+inputs:
+  - id: input_h5parm
+    type: File
+    format: lofar:#H5Parm
+  - id: soltab
+    type: string
+    doc: "Solution table"
+  - id: axesToExt
+    type: string[]
+    doc: Axes used to find close flags.
+  - id: size
+    type: int[]
+    doc: |
+      Size of the window (diameter), per axis. If 0 is given then the entire
+       length of the axis is assumed.
+      Must be a vector of same length of Axes.
+  - id: percent
+    type: float?
+    doc: Percent of flagged data around the point to flag it, by default 50.
+  - id: maxCycles
+    type: int?
+    doc: Number of independent cycles of flag expansion, by default 3.
+  - id: ncpu
+    type: int?
+    doc: Number of CPU used, by default all available.
+
+outputs:
+  - id: output_h5parm
+    type: File
+    format: lofar:#H5Parm
+    outputBinding:
+      glob: $(inputs.input_h5parm.basename)
+$schema:
+  - https://git.astron.nl/eosc/ontologies/raw/master/schema/lofar.owl
diff --git a/test_jobs/losoto_flagextend.json b/test_jobs/losoto_flagextend.json
new file mode 100644
index 0000000000000000000000000000000000000000..a90d48b5528714458cda894ecca0cc9bebfe9f04
--- /dev/null
+++ b/test_jobs/losoto_flagextend.json
@@ -0,0 +1,6 @@
+{
+  "input_h5parm": {"class": "File", "path": "/data/example.h5", "format": "lofar:#H5Parm"},
+  "soltab":  "sol000/phase000",
+  "axesToExt": ["time"],
+  "size": [0]
+}