diff --git a/home/templates/_planning.html b/home/templates/_planning.html
index 1424d5ae4eb2db5b5d116593350420806af95e0d..994de6de8d02c60686e1986cf618dc01d3bc6685 100644
--- a/home/templates/_planning.html
+++ b/home/templates/_planning.html
@@ -195,7 +195,7 @@ I.E we set all dates to the first day (Friday) and set groups allowing vertical
 	}
 
 </style>
-{% if settings.planning_caption %}
+
 <div class="caption">
 	<p><strong>Légende :</strong></p>
 	<ul style="list-style-type: none; margin-left:-20px">
@@ -206,4 +206,6 @@ I.E we set all dates to the first day (Friday) and set groups allowing vertical
 		<li><span style="background-color: var(--color_6);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> Autre</li>
 	</ul>
 </div>
+{% if settings.planning_file %}
+	<div></div><a class="button" href="{{ settings.planning_file.url }}"><i class="fa fa-download"></i> Télécharger le planning</a></div>
 {% endif %}
diff --git a/home/templates/admin.html b/home/templates/admin.html
index d18adda1a0e171a35b631c6fe0b4a6c0ca108b11..e6230d5cd97222ca697a91ea8fcfb665c81290a9 100644
--- a/home/templates/admin.html
+++ b/home/templates/admin.html
@@ -167,6 +167,8 @@
 
 	<h2>Prévisualisation du planning</h2>
 
+	<p>Vous pouver uploader une version PDF dans le réglages (depuis django-admin)</p>
+
 	{% include "_planning.html" %}
 
 	<h2>Répartition des activités</h2>
diff --git a/home/urls.py b/home/urls.py
index 28bf00d6964d468214d83f2cb6249c7c6a3ea7c4..b40e6909b7f24e02e70903e7dbba4f42c31ec695 100644
--- a/home/urls.py
+++ b/home/urls.py
@@ -1,3 +1,5 @@
+from django.conf import settings
+from django.conf.urls.static import static
 from django.contrib.sitemaps.views import sitemap
 from django.views.generic import RedirectView
 from django.urls import path, include
@@ -26,3 +28,6 @@ urlpatterns = [
 	),
 	path('accounts/', include("accounts.urls")),
 ]
+
+if settings.DEBUG:
+	urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
diff --git a/interludes/settings.py b/interludes/settings.py
index 47d866dff37859001e71ac5527f0a4e4641bc13f..58eca27b7dabcefa49ff9dfd13e3b46dd0b56c36 100644
--- a/interludes/settings.py
+++ b/interludes/settings.py
@@ -173,6 +173,9 @@ USE_TZ = True
 STATIC_URL = '/static/'
 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 
+MEDIA_URL = '/media/'
+MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
+
 LOGIN_URL = "accounts:login"
 LOGIN_REDIRECT_URL = "accounts:profile"
 
diff --git a/site_settings/admin.py b/site_settings/admin.py
index b8e4ae845bfa310d920760adb74f469fc6f57465..8f04fda3e59c9d45799aa47648bed653a03898c4 100644
--- a/site_settings/admin.py
+++ b/site_settings/admin.py
@@ -14,4 +14,9 @@ class SingletonModelAdmin(admin.ModelAdmin):
 
 @admin.register(SiteSettings)
 class SiteSettingsAdmin(SingletonModelAdmin):
-	pass
\ No newline at end of file
+
+	def planning_file_link(self, obj):
+		if obj.file:
+			return "<a href='%s'>download</a>" % (obj.file.url,)
+		else:
+			return "No attachment"
diff --git a/site_settings/migrations/0005_auto_20210425_1732.py b/site_settings/migrations/0005_auto_20210425_1732.py
new file mode 100644
index 0000000000000000000000000000000000000000..45dec1c188c42fa406fa3c6d611317edc63a8b73
--- /dev/null
+++ b/site_settings/migrations/0005_auto_20210425_1732.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.0.8 on 2021-04-25 15:32
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('site_settings', '0004_sitesettings_planning_caption'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='sitesettings',
+            name='planning_caption',
+        ),
+        migrations.AddField(
+            model_name='sitesettings',
+            name='planning_file',
+            field=models.FileField(blank=True, null=True, upload_to='', verbose_name='Version PDF du planning'),
+        ),
+    ]
diff --git a/site_settings/migrations/0005_remove_sitesettings_planning_caption.py b/site_settings/migrations/0005_remove_sitesettings_planning_caption.py
deleted file mode 100644
index f077d5922616dc22eafbea88ef522296166aa8bb..0000000000000000000000000000000000000000
--- a/site_settings/migrations/0005_remove_sitesettings_planning_caption.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by Django 3.0.8 on 2021-04-25 14:43
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('site_settings', '0004_sitesettings_planning_caption'),
-    ]
-
-    operations = [
-        migrations.RemoveField(
-            model_name='sitesettings',
-            name='planning_caption',
-        ),
-    ]
diff --git a/site_settings/models.py b/site_settings/models.py
index e95f7108258cae35175f2caba51b8cb4f28ed5c2..7ca8da89035f91cf7452252ad8e0f754f33e10e9 100644
--- a/site_settings/models.py
+++ b/site_settings/models.py
@@ -52,6 +52,9 @@ class SiteSettings(SingletonModel):
 	)
 
 	display_planning = models.BooleanField("Afficher le planning", default=False)
+	planning_file = models.FileField(
+		verbose_name="Version PDF du planning", null=True, blank=True,
+	)
 
 	activities_allocated = models.BooleanField(
 		"Afficher les activités obtenues", default=False,