diff --git a/gatk.wdl b/gatk.wdl
index 31d895fd4e4cd9809b17b1935ed35ff0c8330a62..7964b519a413cb6535f2e0976f7fa4ab9d2280a2 100644
--- a/gatk.wdl
+++ b/gatk.wdl
@@ -664,7 +664,7 @@ task FilterMutectCalls {
 
         String memory = "16G"
         String javaXmx = "12G"
-        Int timeMinutes = 180
+        Int timeMinutes = 60
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.2.0--1"
     }
 
@@ -1071,7 +1071,7 @@ task MergeStats {
 
         String memory = "16G"
         String javaXmx = "14G"
-        Int timeMinutes = 120
+        Int timeMinutes = 30
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
diff --git a/manta.wdl b/manta.wdl
index 5006a01efb5d92a97d527fa26b5866db959c3329..5382d2a5b6ad067efe9ba395ff7ab48077630f83 100644
--- a/manta.wdl
+++ b/manta.wdl
@@ -33,6 +33,7 @@ task Germline {
 
         Int cores = 1
         Int memoryGb = 4
+        Int timeMinutes = 60
         String dockerImage = "quay.io/biocontainers/manta:1.4.0--py27_1"
     }
 
@@ -60,6 +61,7 @@ task Germline {
         cpu: cores
         memory: "~{memoryGb}G"
         docker: dockerImage
+        time_minutes: timeMinutes
     }
 
     parameter_meta {
@@ -74,6 +76,7 @@ task Germline {
         exome: {description: "Whether or not the data is from exome sequencing.", category: "common"}
         cores: {description: "The the number of cores required to run a program", category: "required"}
         memoryGb: {description: "The memory required to run the manta", category: "required"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"}
     }
 }
@@ -93,6 +96,7 @@ task Somatic {
 
         Int cores = 1
         Int memoryGb = 4
+        Int timeMinutes = 60
         String dockerImage = "quay.io/biocontainers/manta:1.4.0--py27_1"
     }
 
@@ -130,6 +134,7 @@ task Somatic {
         cpu: cores
         memory: "~{memoryGb}G"
         docker: dockerImage
+        time_minutes: timeMinutes
     }
 
     parameter_meta {
@@ -145,6 +150,7 @@ task Somatic {
         exome: {description: "Whether or not the data is from exome sequencing.", category: "common"}
         cores: {description: "The number of cores to use.", category: "advanced"}
         memoryGb: {description: "The amount of memory this job will use in Gigabytes.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"}
     }
 }
diff --git a/picard.wdl b/picard.wdl
index d19e3ac41e17370eec001a8df0f1c2a44e8c7c7e..494ccf98fc6903a8db5a4e1dd1617184bd5cab93 100644
--- a/picard.wdl
+++ b/picard.wdl
@@ -619,8 +619,9 @@ task SortVcf {
         String outputVcfPath
         File? dict
 
-        String memory = "24G"
+        String memory = "10G"
         String javaXmx = "8G"
+        Int timeMinutes = 1 + ceil(size(vcfFiles, "G") * 5)
         String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
     }
 
@@ -642,6 +643,7 @@ task SortVcf {
 
     runtime {
         docker: dockerImage
+        time_minutes: timeMinutes
         memory: memory
     }
 
@@ -654,6 +656,7 @@ task SortVcf {
         memory: {description: "The amount of memory this job will use.", category: "advanced"}
         javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.",
                   category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
diff --git a/samtools.wdl b/samtools.wdl
index 5ffebc9ced931a1edba9022e2bb9df2fafb8d1c2..bdf811a04478824d98fd377a0cab7ddb0be6cf07 100644
--- a/samtools.wdl
+++ b/samtools.wdl
@@ -26,6 +26,7 @@ task BgzipAndIndex {
         String outputDir
         String type = "vcf"
 
+        Int timeMinutes = 1 + ceil(size(inputFile, "G"))
         String dockerImage = "quay.io/biocontainers/tabix:0.2.6--ha92aebf_0"
     }
 
@@ -44,7 +45,8 @@ task BgzipAndIndex {
     }
 
     runtime {
-       docker: dockerImage
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
@@ -52,6 +54,7 @@ task BgzipAndIndex {
         inputFile: {description: "The file to be compressed and indexed.", category: "required"}
         outputDir: {description: "The directory in which the output will be placed.", category: "required"}
         type: {description: "The type of file (eg. vcf or bed) to be compressed and indexed.", category: "common"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
@@ -395,6 +398,7 @@ task View {
 
         Int threads = 1
         String memory = "1G"
+        Int timeMinutes = 1 + ceil(size(inFile, "G") * 5)
         String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
     String outputIndexPath = basename(outputFileName) + ".bai"
@@ -424,6 +428,7 @@ task View {
     runtime {
         cpu: threads
         memory: memory
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -440,6 +445,7 @@ task View {
 
         threads: {description: "The number of threads to use.", category: "advanced"}
         memory: {description: "The amount of memory this job will use.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
diff --git a/somaticseq.wdl b/somaticseq.wdl
index 49e5c36d4a5b388e596bcd2c943812f8011c3a57..7b9a4403c6e31c1ad6374b4561bfaee96dc4c435 100644
--- a/somaticseq.wdl
+++ b/somaticseq.wdl
@@ -47,6 +47,7 @@ task ParallelPaired {
         File? strelkaIndel
 
         Int threads = 1
+        Int timeMinutes = 60
         String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
@@ -89,6 +90,7 @@ task ParallelPaired {
 
     runtime {
         cpu: threads
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -118,6 +120,7 @@ task ParallelPaired {
         strelkaIndel: {description: "An indel VCF as produced by somaticsniper.", category: "advanced"}
 
         threads: {description: "The number of threads to use.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
@@ -150,6 +153,7 @@ task ParallelPairedTrain {
         File? strelkaIndel
 
         Int threads = 1
+        Int timeMinutes = 240
         String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
@@ -191,6 +195,7 @@ task ParallelPairedTrain {
 
     runtime {
         cpu: threads
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -220,6 +225,7 @@ task ParallelPairedTrain {
         strelkaIndel: {description: "An indel VCF as produced by somaticsniper.", category: "advanced"}
 
         threads: {description: "The number of threads to use.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
@@ -244,6 +250,7 @@ task ParallelSingle {
         File? strelkaVCF
 
         Int threads = 1
+        Int timeMinutes = 60
         String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
@@ -279,6 +286,7 @@ task ParallelSingle {
 
     runtime {
         cpu: threads
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -300,6 +308,7 @@ task ParallelSingle {
         strelkaVCF: {description: "A VCF as produced by strelka.", category: "advanced"}
 
         threads: {description: "The number of threads to use.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
@@ -324,6 +333,7 @@ task ParallelSingleTrain {
         File? strelkaVCF
 
         Int threads = 1
+        Int timeMinutes = 240
         String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
@@ -358,6 +368,7 @@ task ParallelSingleTrain {
 
     runtime {
         cpu: threads
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -379,6 +390,7 @@ task ParallelSingleTrain {
         strelkaVCF: {description: "A VCF as produced by strelka.", category: "advanced"}
 
         threads: {description: "The number of threads to use.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
@@ -389,6 +401,7 @@ task ModifyStrelka {
         File strelkaVCF
         String outputVCFName = basename(strelkaVCF, ".gz")
         String dockerImage = "lethalfang/somaticseq:3.1.0"
+        Int timeMinutes = 20
     }
 
     command {
@@ -407,12 +420,14 @@ task ModifyStrelka {
     }
 
     runtime {
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
     parameter_meta {
         strelkaVCF: {description: "A vcf file as produced by strelka.", category: "required"}
         outputVCFName: {description: "The location the output VCF file should be written to.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
diff --git a/strelka.wdl b/strelka.wdl
index 826cbd8e260014c1816d6640c313f3ebbb39bdef..50c38b55ae4374efc7ea32e7be8f6e08a0076cdb 100644
--- a/strelka.wdl
+++ b/strelka.wdl
@@ -36,6 +36,7 @@ task Germline {
 
         Int cores = 1
         Int memoryGb = 4
+        Int timeMinutes = 90
         String dockerImage = "quay.io/biocontainers/strelka:2.9.7--0"
     }
 
@@ -62,6 +63,7 @@ task Germline {
     runtime {
         docker: dockerImage
         cpu: cores
+        time_minutes: timeMinutes
         memory: "~{memoryGb}G"
     }
 
@@ -78,6 +80,7 @@ task Germline {
 
         cores: {description: "The number of cores to use.", category: "advanced"}
         memoryGb: {description: "The amount of memory this job will use in Gigabytes.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
@@ -100,6 +103,7 @@ task Somatic {
 
         Int cores = 1
         Int memoryGb = 4
+        Int timeMinutes = 90
         String dockerImage = "quay.io/biocontainers/strelka:2.9.7--0"
 
         File? doNotDefineThis #FIXME
@@ -131,6 +135,7 @@ task Somatic {
     runtime {
         docker: dockerImage
         cpu: cores
+        time_minutes: timeMinutes
         memory: "~{memoryGb}G"
     }
 
@@ -150,6 +155,7 @@ task Somatic {
 
         cores: {description: "The number of cores to use.", category: "advanced"}
         memoryGb: {description: "The amount of memory this job will use in Gigabytes.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }
diff --git a/vardict.wdl b/vardict.wdl
index 7bfd118ee99f67da1af482b240d1f9c6d34fe9f1..ffd05547e2e4acc2d7c81a16a04e1218ad6935c9 100644
--- a/vardict.wdl
+++ b/vardict.wdl
@@ -48,8 +48,9 @@ task VarDict {
         Float minimumAlleleFrequency = 0.02
 
         Int threads = 1
-        String memory = "40G"
+        String memory = "20G"
         String javaXmx = "16G"
+        Int timeMinutes = 300
         String dockerImage = "quay.io/biocontainers/vardict-java:1.5.8--1"
     }
 
@@ -87,6 +88,7 @@ task VarDict {
     runtime {
         cpu: threads + 2
         memory: memory
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -116,6 +118,7 @@ task VarDict {
         memory: {description: "The amount of memory this job will use.", category: "advanced"}
         javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.",
                   category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
     }