diff --git a/defaults/main.yml b/defaults/main.yml
index 2fdc183af3494d184e82de703f6c9e512941a980..93b4e8a006fb8f1cb3b7a6f6fc92b120b5d13172 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,4 +1,14 @@
 backups:
+  jobs:
+    retention:
+      enabled: true
+      OnCalendar: "1:{{ 60|random(seed=(inventory_hostname + 'backups_jobs')) }}"
+    run:
+      enabled: true
+      OnCalendar: "3,11,19:{{ 60|random(seed=(inventory_hostname + 'backups_jobs')) }}"
+    check:
+      enabled: true
+      OnCalendar: "monday 5:{{ 60|random(seed=(inventory_hostname + 'backups_jobs')) }}"
   backends:
     restic:
       url: /var/backup-client/restic
diff --git a/handlers/main.yml b/handlers/main.yml
index c8e102186a3daffd3caf1734f50976efa4e273a0..0e125d1a6f9769145a712d053a02d32b58c22c4d 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -1,3 +1,13 @@
 - name: reload systemd
   systemd:
     daemon_reload: True
+
+- name: enable timers
+  loop:
+    - check
+    - retention
+    - run
+  systemd:
+    name: "backup-{{ item }}.timer"
+    enabled: "{{ backups.jobs[item].enabled }}"
+    state: "{% if backups.jobs[item].enabled %}started{% else %}stopped{% endif %}"
diff --git a/tasks/main.yml b/tasks/main.yml
index 367465269e91b44b0441564e8ddbcef74aea3d77..713d0c8e9091d02a13c2e26bf3e9f40f9d69002c 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -48,6 +48,7 @@
       - backup-full
       - backup-cronjob
       - backup-check
+      - status-email-root
     template:
       src: "{{ item }}.j2"
       dest: "/usr/local/bin/{{ item }}"
@@ -62,12 +63,28 @@
       - backup-check
       - backup-retention
       - backup-run
+      - status-email-root@
     template:
       src: "{{ item }}.service.j2"
       dest: "/etc/systemd/system/{{ item }}.service"
       owner: root
       group: root
       mode: 0644
+#      validate: /usr/bin/systemd-analyze verify %s
+  - name: copy timers
+    notify:
+      - reload systemd
+      - enable timers
+    loop:
+      - check
+      - retention
+      - run
+    template:
+      src: "timer.j2"
+      dest: "/etc/systemd/system/backup-{{ item }}.timer"
+      owner: root
+      group: root
+      mode: 0644
 #      validate: /usr/bin/systemd-analyze verify %s
   - name: create data folder
     file:
diff --git a/templates/status-email-root.j2 b/templates/status-email-root.j2
new file mode 100755
index 0000000000000000000000000000000000000000..fe82c1a36ec912e8c9793df2f499b48df94a29cf
--- /dev/null
+++ b/templates/status-email-root.j2
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+systemctl status "$1" | mail -s "service $1 failed on $( hostname )" root || true
diff --git a/templates/status-email-root@.service.j2 b/templates/status-email-root@.service.j2
new file mode 100644
index 0000000000000000000000000000000000000000..81e82e80a5a1798c7a6baf6202a17a4bb2404015
--- /dev/null
+++ b/templates/status-email-root@.service.j2
@@ -0,0 +1,7 @@
+[Unit]
+Description=Send a mail to root in case of a service failure
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/status-email-root %i
+
diff --git a/templates/timer.j2 b/templates/timer.j2
new file mode 100644
index 0000000000000000000000000000000000000000..d1885e51c8a0ed22327d3aa6a81091e4ed68a753
--- /dev/null
+++ b/templates/timer.j2
@@ -0,0 +1,11 @@
+[Unit]
+Description=Execute backup job
+
+[Timer]
+Persistent=true
+{% if "OnCalendar" in backups.jobs[item] %}
+OnCalendar={{ backups.jobs[item].OnCalendar }}
+{% endif %}
+
+[Install]
+WantedBy=timers.target