diff --git a/ProcessLib/CreateTimeLoop.cpp b/ProcessLib/CreateTimeLoop.cpp
index a35b5dcf6da2d2d285cba54dab477f51547a6d4a..9a44b5c49a5e3dd7847ffa6663297148cd66237e 100644
--- a/ProcessLib/CreateTimeLoop.cpp
+++ b/ProcessLib/CreateTimeLoop.cpp
@@ -57,10 +57,18 @@ std::unique_ptr<TimeLoop> createTimeLoop(
         }
     }
 
+    //! \ogs_file_param{prj__time_loop__output}
+    auto output_config_tree = config.getConfigSubtreeOptional("output");
+    if (!output_config_tree)
+    {
+        INFO("No output section found.");
+    }
     auto outputs =
-        //! \ogs_file_param{prj__time_loop__output}
-        createOutput(config.getConfigSubtree("output"), output_directory,
-                     meshes);
+        output_config_tree
+            ? createOutput(*output_config_tree, output_directory, meshes)
+            //! \ogs_file_param{prj__time_loop__outputs}
+            : createOutputs(config.getConfigSubtree("outputs"),
+                            output_directory, meshes);
 
     auto per_process_data = createPerProcessData(
         //! \ogs_file_param{prj__time_loop__processes}