diff --git a/biowdl.wdl b/biowdl.wdl
index 463dab755cb6a26fcd4719d333c0bb819bc4b298..f891618e7bc342a1f8bfde31387241811aa4fc31 100644
--- a/biowdl.wdl
+++ b/biowdl.wdl
@@ -72,4 +72,4 @@ task InputConverter {
         # outputs
         json: {description: "JSON file version of the input sample sheet."}
     }
-}
\ No newline at end of file
+}
diff --git a/bwa.wdl b/bwa.wdl
index 8f694b45db29a74ec9de40dfaed6f434855189cb..e1e61bbebdab2004905030753f131ecb50f5d1a7 100644
--- a/bwa.wdl
+++ b/bwa.wdl
@@ -118,6 +118,8 @@ struct BwaIndex {
 task Index {
     input {
         File fasta
+        String dockerImage = "quay.io/biocontainers/bwa:0.7.17--hed695b0_7"
+        Int? timeMinutes = 5 + ceil(size(fasta, "G") * 5)
     }
     String indexedFile = basename(fasta)
 
@@ -141,8 +143,18 @@ task Index {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/bwa:0.7.17--hed695b0_7"
+        docker: dockerImage
         cpu: 1
         memory: "~{size(fasta, 'G') + 1}GiB"
+        time_minutes: timeMinutes
+    }
+    parameter_meta {
+        # inputs
+        fasta: {description: "Reference fasta file.", 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"}
+
+        # outputs
+        index: {description: "The produced BWA index."}
     }
-}
\ No newline at end of file
+}
diff --git a/samtools.wdl b/samtools.wdl
index d5e3ce0e2c93b3be1198b453a39032f915a7c55f..76a07ef51dbc21dbf9a4db80e638a4709151cf67 100644
--- a/samtools.wdl
+++ b/samtools.wdl
@@ -71,6 +71,7 @@ task DictAndFaidx {
         File inputFile
         String javaXmx = "2G"
         String memory = "3GiB"
+        Int timeMinutes = 5 + ceil(size(inputFile, "GiB") * 5)
         String dockerImage = "quay.io/biocontainers/samtools:1.11--h6270b1f_0"
     }
 
@@ -101,11 +102,12 @@ task DictAndFaidx {
         inputFile: {description: "The input fasta file.", category: "required"}
         javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", category: "advanced"}
         memory: {description: "The amount of memory available to the job.", 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"}
         # outputs
         outputFasta: {description: "Fasta file that is co-located with the indexes"}
         outputFastaFai: {description: "Fasta index file for the outputFasta file."}
         outputFastaDict: {description: "Sequence dictionary for the outputFasta file."}
-        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"}
     }
 }