diff --git a/scheduler.py b/scheduler.py
index 92275055bcde6677fc90520baafcee9b6f17ef5f..af7a6b501bfe144b6a786d776b9905616f347243 100644
--- a/scheduler.py
+++ b/scheduler.py
@@ -22,6 +22,8 @@ def sched_func(delay, priority=0, firstdelay=None, args=[], kargs={}):
 					func(*args, **kargs)
 				except Exception:
 					traceback.print_exc()
+					notify_admins('scheduler_exception', name=func.__name__,
+							traceback=traceback.format_exc())
 			scheduler.enter(delay, priority, sched_wrapper)
 		scheduler.enter(firstdelay, priority, sched_wrapper)
 		print("Scheduler: registered {} (frequency 1/{}s, start delay: {}s)".format(func.__name__, delay, firstdelay))
diff --git a/server.py b/server.py
index 60740ee12054f93bf7457b2ae2fc649c4087ac2d..7898f588e6efec2a0eb7d43b266ac07ccf20e72a 100644
--- a/server.py
+++ b/server.py
@@ -43,10 +43,10 @@ if not config.get('SECRET_KEY', None):
 	config['SECRET_KEY'] = os.urandom(24)
 
 from db import query, modify, show, searchquery
+from mail import notify_mods, notify_admins
 from ldap import ldapauth
 from legacy import legacy_index
 from scheduler import sched_func
-from mail import notify_mods, notify_admins
 
 mod_endpoints = []
 
@@ -124,7 +124,7 @@ def handle_not_found(e=None):
 @app.errorhandler(Exception)
 def handle_internal_error(e):
 	traceback.print_exc()
-	notify_admins('exception', traceback=traceback.format_exc())
+	notify_admins('endpoint_exception', traceback=traceback.format_exc())
 	return render_template('500.html'), 500
 
 @sched_func(5*60, firstdelay=0)
diff --git a/templates/mails/exception.body b/templates/mails/endpoint_exception.body
similarity index 100%
rename from templates/mails/exception.body
rename to templates/mails/endpoint_exception.body
diff --git a/templates/mails/exception.subject b/templates/mails/endpoint_exception.subject
similarity index 100%
rename from templates/mails/exception.subject
rename to templates/mails/endpoint_exception.subject
diff --git a/templates/mails/scheduler_exception.body b/templates/mails/scheduler_exception.body
new file mode 100644
index 0000000000000000000000000000000000000000..7bf228cf3ae3b731b0ccd97cf9a611f453e810bd
--- /dev/null
+++ b/templates/mails/scheduler_exception.body
@@ -0,0 +1,4 @@
+Function: {{ name }}
+Hostname: {{ gethostname() }}
+
+{{ traceback }}
diff --git a/templates/mails/scheduler_exception.subject b/templates/mails/scheduler_exception.subject
new file mode 100644
index 0000000000000000000000000000000000000000..ff9fc4ff9c0d5109128d204c2723c04ba19337a8
--- /dev/null
+++ b/templates/mails/scheduler_exception.subject
@@ -0,0 +1 @@
+Exception in scheduler function "{{ name }}"