diff --git a/djangorota/djangorota/templates/rota/rota_detail.html b/djangorota/djangorota/templates/rota/rota_detail.html
index 3767591..c63f1a7 100644
--- a/djangorota/djangorota/templates/rota/rota_detail.html
+++ b/djangorota/djangorota/templates/rota/rota_detail.html
@@ -17,9 +17,9 @@
-
Historic runs
-
-
diff --git a/djangorota/djangorota/templates/rota/worker_detail.html b/djangorota/djangorota/templates/rota/worker_detail.html
index c81f236..74e192e 100644
--- a/djangorota/djangorota/templates/rota/worker_detail.html
+++ b/djangorota/djangorota/templates/rota/worker_detail.html
@@ -46,16 +46,21 @@
+ {% json_script leaves as worker_leaves_json %}
diff --git a/djangorota/rota/views.py b/djangorota/rota/views.py
index cb22d91..229bc21 100644
--- a/djangorota/rota/views.py
+++ b/djangorota/rota/views.py
@@ -320,7 +320,23 @@ def worker_detail(request, worker_id):
else:
form = LeaveForm()
- return render(request, "rota/worker_detail.html", {"worker": worker, "form": form})
+ # Build a JSON-serializable list of leaves for the calendar widget to consume
+ leaves = []
+ try:
+ for leave in worker.leaves.all():
+ try:
+ s = leave.start_date.isoformat()
+ except Exception:
+ s = str(leave.start_date)
+ try:
+ e = leave.end_date.isoformat()
+ except Exception:
+ e = str(leave.end_date)
+ leaves.append({"start": s, "end": e})
+ except Exception:
+ leaves = []
+
+ return render(request, "rota/worker_detail.html", {"worker": worker, "form": form, "leaves": leaves})
@require_http_methods(["GET", "POST"])