diff --git a/aep-schedule-website/Cargo.lock b/aep-schedule-website/Cargo.lock
index 3cc68927f0442ef21f6e4db46ba68515f9e470c8..1441b964bce3c40d2470c08a90dfd8da4a544973 100644
--- a/aep-schedule-website/Cargo.lock
+++ b/aep-schedule-website/Cargo.lock
@@ -1394,8 +1394,9 @@ dependencies = [
 
 [[package]]
 name = "icalendar"
-version = "0.16.3"
-source = "git+https://github.com/marcantoinem/icalendar-rs?branch=fix/wrapping-behaviour#e640f6ca5f519eb536dbedd787b5843be463622a"
+version = "0.16.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78aa665b8aa17f012f7e6f89e7124e48a83716b9c5600fe318fa22e2a3d7063d"
 dependencies = [
  "chrono",
  "iso8601",
diff --git a/aep-schedule-website/src/frontend/components/schedule.rs b/aep-schedule-website/src/frontend/components/schedule.rs
index 3a5d56946c912492767711e64dbb0a15442f74dd..6d505e69c34e2ab84f024b00d5c61a77dece9d4a 100644
--- a/aep-schedule-website/src/frontend/components/schedule.rs
+++ b/aep-schedule-website/src/frontend/components/schedule.rs
@@ -137,12 +137,12 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Arc<Calendar>) -> impl In
     let courses = schedule.taken_courses.clone();
     let courses2 = schedule.taken_courses.clone();
     let schedule2 = schedule.clone();
-    let (download, set_download) = signal("".to_string());
-    let link = NodeRef::new();
+    let ics = calendar.generate_ics(&schedule2);
+    let url = url_escape::encode_fragment(&ics);
+    let url = "data:text/plain;charset=utf-8,".to_string() + &url;
 
     view! {
         <div class="flex flex-col w-full items-center card p-2">
-            <a class="hidden" download="cours.ics" href=move || download.get() node_ref=link></a>
             <table class="cours">
                 {courses
                     .into_iter()
@@ -158,18 +158,10 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Arc<Calendar>) -> impl In
                     .map(|(i, c)| view! { <CoursePeriods i course=c /> })
                     .collect_view()}
             </Schedule>
-            <button
-                class="button-download flex"
-                on:pointerdown=move |_| {
-                    let ics = calendar.generate_ics(&schedule2);
-                    let url = url_escape::encode_fragment(&ics);
-                    set_download("data:text/plain;charset=utf-8,".to_string() + &url);
-                    link.get().unwrap().click();
-                }
-            >
+            <a class="button-download flex" download="cours.ics" href={url}>
                 <Download weight=IconWeight::Regular size="3vh" />
                 <span>"Télécharger le calendrier de cet horaire"</span>
-            </button>
+            </a>
         </div>
     }
 }