diff --git a/Common/timetools.py b/Common/timetools.py
new file mode 100644
index 0000000000000000000000000000000000000000..0a91d59c912b19863191f619e734d6477f1cc273
--- /dev/null
+++ b/Common/timetools.py
@@ -0,0 +1,13 @@
+from datetime import datetime, timedelta
+
+def periodic_date_generator(filename, start_date, end_date, step):
+    start_date = start_date.split('-')
+    start_date = datetime(int(start_date[0]),int(start_date[1]),int(start_date[2]))
+    end_date = end_date.split('-')
+    end_date = datetime(int(end_date[0]),int(end_date[1]),int(end_date[2]))
+    d = start_date
+    step = timedelta(days=step)
+    with open(filename, 'w') as f:
+        while d < end_date :
+            f.write(d.strftime('%Y%m%d')+'\n')
+            d += step
diff --git a/moringa.py b/moringa.py
index 6d56116b19712317d0425a24f9b9ade36dda98ff..a29819e830257d14157d0919e7be9964f4cc12e7 100755
--- a/moringa.py
+++ b/moringa.py
@@ -1,5 +1,6 @@
 import sys
 import argparse
+from Common.timetools import periodic_date_generator
 from Workflows.basic import basic
 from Workflows.operations import *
 
@@ -80,6 +81,13 @@ def main(args):
     chain.add_argument("--runlevel", type=int, default=1, help="Starting step of the chain to process.")
     chain.add_argument("--single_step", action="store_true", help="Stop after a single step is processed.")
 
+    dategen = subpar.add_parser("gen_date_file", help="Generate an output date file for classic gapfilling.",
+                                formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+    dategen.add_argument("output_file", type=str, help="Path to the output date file.")
+    dategen.add_argument("start_date", type=str, help="Start date in YYYY-MM-DD format.")
+    dategen.add_argument("end_date", type=str, help="End date in YYYY-MM-DD format.")
+    dategen.add_argument("step", type=int, help="Number of days between two dates.")
+
     if len(args) == 1:
         parser.print_help()
         sys.exit(0)
@@ -115,6 +123,9 @@ def main(args):
         else:
             raise ValueError('Workflow not implemented.')
 
+    if arg.cmd == "gen_date_file":
+        periodic_date_generator(arg.output_file, arg.start_date, arg.end_date, arg.step)
+
     return 0
 
 if __name__ == "__main__":