diff --git a/picard.wdl b/picard.wdl
index ac372b1f078f61d2d3fdcee727fefb63dc789295..4132754149ebcab5e777f2e9d90c4266cc38db4e 100644
--- a/picard.wdl
+++ b/picard.wdl
@@ -378,3 +378,38 @@ task ScatterIntervalList {
         memory: ceil(memory * memoryMultiplier)
     }
 }
+
+task SortVcf {
+    input {
+        String? preCommand
+        String? picardJar
+
+        Array[File]+ vcfFiles
+        String outputVcf
+
+        Int memory = 4
+        Float memoryMultiplier = 3.0
+        }
+
+        String toolCommand = if defined(picardJar)
+            then "java -Xmx" + memory + "G -jar " + picardJar
+            else "picard -Xmx" + memory + "G"
+
+    command {
+        set -e -o pipefail
+        ~{preCommand}
+        ~{toolCommand} \
+        SortVcf \
+        I=~{sep=" I=" vcfFiles} \
+        O=outputVcf
+    }
+
+    output {
+        File vcfFile = outputVcf
+        File vcfIndex = outputVcf + ".tbi"
+    }
+
+    runtime {
+        memory: ceil(memory * memoryMultiplier)
+    }
+}
\ No newline at end of file