diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp
index d370e06a812b5d6bed139e98e617107e21938411..c82f58590ccc1b54e1367d8b23c3b2e64f7e845e 100644
--- a/src/scheduler/Scheduler.cpp
+++ b/src/scheduler/Scheduler.cpp
@@ -479,8 +479,12 @@ void Aidge::SequentialScheduler::saveSchedulingDiagram(const std::string& fileNa
         const auto globalStart = mScheduling[0].start;
 
         for (const auto& element : mScheduling) {
+            auto name = namePtrTable.at(element.node);
+            // Mermaid does not allow : character in task title
+            std::replace(name.begin(), name.end(), ':', '_');
+
             fmt::print(fp.get(), "{} :{}, {}\n",
-                         namePtrTable.at(element.node),
+                         name,
                          std::chrono::duration_cast<std::chrono::microseconds>(element.start - globalStart).count(),
                          std::chrono::duration_cast<std::chrono::microseconds>(element.end - globalStart).count());
         }