diff --git a/cal_tools/cal_tools/tools.py b/cal_tools/cal_tools/tools.py
index a9de200724c9413707b34ff6e0fcccdf6f4866ae..7d549bc32f3573d6d629185c39a0020ccc8db521 100644
--- a/cal_tools/cal_tools/tools.py
+++ b/cal_tools/cal_tools/tools.py
@@ -107,52 +107,38 @@ def make_timing_summary(run_path, joblist):
     :param run_path: Run path of the slurm job
     :param joblist: List of slurm jobs
     """
+    print('Prepare timing summary')
     run_path = os.path.abspath(run_path)
     pars_vals = []
     pars = 'JobID,Elapsed,Suspended'
     pars_name = pars.split(',')
 
     for job in joblist:
-        print('Summary for job {}'.format(job))
         out = check_output(['sacct', '-j', job,
                             '--format={}'.format(pars)],
                            shell=False)
         l = str(out).split('\\n')
-        print (l)
         for line in l[2:]:
             s = line.split()
-            if len(s)==len(pars_name):
+            if len(s) == len(pars_name):
                 pars_vals.append(s)
-                print(s)
                 break
 
+    tmpl = Template('''
+                    Timing summary
+                    ==============
+                    
+                    .. math::
+                        {% for line in table %}
+                        {{ line }}
+                        {%- endfor %}
+                    ''')
+    import tabulate
     with open("{}/timing_summary.rst".format(run_path), "w+") as gfile:
-        gfile.write('Timing summary\n')
-        gfile.write('==============\n\n')
-
-        gfile.write('.. math::\n')
-        gfile.write('    \\begin{tabular}{ccc}\n')
-        gfile.write('    \\hline\n')
-        gfile.write('    ')
-        for i in range(len(pars_name)):
-            gfile.write(pars_name[i])
-            if i<len(pars_name)-1:
-                gfile.write(' & ')
-            else:
-                gfile.write(' \\\\ \n')
-        gfile.write('    \\hline\n')
-
-        for pars_val in pars_vals:
-            gfile.write('    ')
-            for i in range(len(pars_name)):
-                gfile.write(pars_val[i])
-                if i < len(pars_name) - 1:
-                    gfile.write(' & ')
-                else:
-                    gfile.write(' \\\\ \n')
 
-        gfile.write('    \\hline\n')
-        gfile.write('    \\end{tabular}\n')
+        table = tabulate.tabulate(pars_vals, tablefmt='latex',
+                                  headers=pars_name)
+        gfile.write(textwrap.dedent(tmpl.render(table=table.split('\n'))))
 
 
 def make_report(run_path, tmp_path, out_path, project, author, version, report_to):