diff --git a/_includes/jump-dev-2025-schedule.html b/_includes/jump-dev-2025-schedule.html
new file mode 100644
index 0000000..b4d43d0
--- /dev/null
+++ b/_includes/jump-dev-2025-schedule.html
@@ -0,0 +1,152 @@
+
+
+ |
+ Monday 17 |
+ Tuesday 18 |
+
+
+ 09:30 |
+ Introduction and welcome |
+ What's new in HiGHS, and thanks to JuMP for its support! Julian Hall |
+
+
+ 09:45 |
+ The state of JuMP Miles Lubin |
+ |
+
+
+ 10:00 |
+ |
+ Unlocking the Power of Google OR-Tools with MathOptInterface.jl Thibaut Cuvelier |
+
+
+ 10:15 |
+ JuMP on demand: Creating your own compute cluster for solving optimisation problems James Foster |
+ |
+
+
+ 10:30 |
+ Morning tea |
+ Morning tea |
+
+
+ 10:45 |
+ |
+ |
+
+
+ 11:00 |
+ Optimizing over trained neural networks with MathOptAI.jl |
+ GPU Implementation of Algorithm NCL Michael Saunders |
+
+
+ 11:15 |
+ |
+ |
+
+
+ 11:30 |
+ Bridging the Gap Between Models and Solvers through Constraint Programming Jean-François Baffier |
+ Revisiting sparse matrix coloring and bicoloring Alexis Montoison |
+
+
+ 11:45 |
+ |
+ |
+
+
+ 12:00 |
+ Lunch |
+ Lunch |
+
+
+ 12:15 |
+ |
+ |
+
+
+ 12:30 |
+ |
+ |
+
+
+ 12:45 |
+ |
+ |
+
+
+ 13:00 |
+ |
+ |
+
+
+ 13:15 |
+ |
+ |
+
+
+ 13:30 |
+ |
+ |
+
+
+ 13:45 |
+ |
+ |
+
+
+ 14:00 |
+ The State of InfiniteOpt.jl Joshua Pulsipher |
+ CuClarabel: GPU Acceleration for a Conic Optimization Solver Yuwen Chen |
+
+
+ 14:15 |
+ |
+ |
+
+
+ 14:30 |
+ Large Scale JuMP Models with Constraint Generators Benoît Legat |
+ Open energy models: benchmarking, profiling and debugging tool for JuMP Joaquim Dias Garcia |
+
+
+ 14:45 |
+ |
+ |
+
+
+ 15:00 |
+ Break |
+ Break |
+
+
+ 15:15 |
+ |
+ |
+
+
+ 15:30 |
+ Automatic Generation of JuMP.jl Constraints from ModelingToolkit.jl Models Dimitri Alston |
+ The life and times of SDDP.jl Oscar Dowson |
+
+
+ 15:45 |
+ |
+ |
+
+
+ 16:00 |
+ AdaptiveProjection.jl: Automating the Speed-Accuracy Trade-off in Random Projection Methods Jean-François Baffier |
+ Wrap up and thanks |
+
+
+ 16:15 |
+ ApplicationDrivenLearning.jl a framework to train forecast models with application-driven cost functions Joaquim Dias Garcia |
+ |
+
+
+ 16:30 |
+ Wrap up |
+ |
+
+
diff --git a/_posts/2024-09-26-jump_dev_2025.md b/_posts/2024-09-26-jump_dev_2025.md
index 648854a..e1a1ee7 100644
--- a/_posts/2024-09-26-jump_dev_2025.md
+++ b/_posts/2024-09-26-jump_dev_2025.md
@@ -34,12 +34,10 @@ excursion. The schedule is subject to change at any time.
* Wednesday 19 November: self-guided excursion
* Thursday 20 November: hackathon (venue to be confirmed)
-## Key dates
+A preliminary schedule is as follows. Some accepted talks are not yet scheduled
+because of uncertainty around the speaker's travel.
- * October 2024: [talk submissions open](https://forms.gle/SzbqwzfsRNW97PZt5)
- * March 31 2025: talk submissions close
- * April 30 2025: talk acceptance notifications
- * November 17--20 2025: JuMP-dev 2025
+{%include jump-dev-2025-schedule.html %}
## How do I attend?
diff --git a/assets/jump-dev-workshops/2025/schedule.toml b/assets/jump-dev-workshops/2025/schedule.toml
new file mode 100644
index 0000000..38ec050
--- /dev/null
+++ b/assets/jump-dev-workshops/2025/schedule.toml
@@ -0,0 +1,190 @@
+
+days = ["Monday 17", "Tuesday 18"]
+
+[talks]
+
+[talks.1_09_30]
+title = "Introduction and welcome"
+type = "organization"
+
+[talks.1_09_45]
+speaker = "Miles Lubin"
+title = "The state of JuMP"
+
+[talks.1_10_00]
+
+[talks.1_10_15]
+speaker = "James Foster"
+title = "JuMP on demand: Creating your own compute cluster for solving optimisation problems"
+
+[talks.1_10_30]
+title = "Morning tea"
+type = "break"
+
+[talks.1_10_45]
+type = "break"
+
+[talks.1_11_00]
+# speaker = "Oscar Dowson"
+title = "Optimizing over trained neural networks with MathOptAI.jl"
+
+[talks.1_11_15]
+
+[talks.1_11_30]
+speaker = "Jean-François Baffier"
+title = "Bridging the Gap Between Models and Solvers through Constraint Programming"
+
+[talks.1_11_45]
+
+[talks.1_12_00]
+title = "Lunch"
+type = "break"
+
+[talks.1_12_15]
+type = "break"
+
+[talks.1_12_30]
+type = "break"
+
+[talks.1_12_45]
+type = "break"
+
+[talks.1_13_00]
+type = "break"
+
+[talks.1_13_15]
+type = "break"
+
+[talks.1_13_30]
+type = "break"
+
+[talks.1_13_45]
+type = "break"
+
+[talks.1_14_00]
+speaker = "Joshua Pulsipher"
+title = "The State of InfiniteOpt.jl"
+
+[talks.1_14_15]
+
+[talks.1_14_30]
+speaker = "Benoît Legat"
+title = "Large Scale JuMP Models with Constraint Generators"
+
+[talks.1_14_45]
+
+[talks.1_15_00]
+title = "Break"
+type = "break"
+
+[talks.1_15_15]
+type = "break"
+
+[talks.1_15_30]
+speaker = "Dimitri Alston"
+title = "Automatic Generation of JuMP.jl Constraints from ModelingToolkit.jl Models"
+
+[talks.1_15_45]
+
+[talks.1_16_00]
+speaker = "Jean-François Baffier"
+title = "AdaptiveProjection.jl: Automating the Speed-Accuracy Trade-off in Random Projection Methods"
+
+[talks.1_16_15]
+speaker = "Joaquim Dias Garcia"
+title = "ApplicationDrivenLearning.jl a framework to train forecast models with application-driven cost functions"
+
+[talks.1_16_30]
+title = "Wrap up"
+type = "organization"
+
+[talks.2_09_30]
+speaker = "Julian Hall"
+title = "What's new in HiGHS, and thanks to JuMP for its support!"
+
+[talks.2_09_45]
+
+[talks.2_10_00]
+speaker = "Thibaut Cuvelier"
+title = "Unlocking the Power of Google OR-Tools with MathOptInterface.jl"
+
+[talks.2_10_15]
+
+[talks.2_10_30]
+title = "Morning tea"
+type = "break"
+
+[talks.2_10_45]
+type = "break"
+
+[talks.2_11_00]
+speaker = "Michael Saunders"
+title = "GPU Implementation of Algorithm NCL"
+
+[talks.2_11_15]
+
+[talks.2_11_30]
+speaker = "Alexis Montoison"
+title = "Revisiting sparse matrix coloring and bicoloring"
+
+[talks.2_11_45]
+
+[talks.2_12_00]
+title = "Lunch"
+type = "break"
+
+[talks.2_12_15]
+type = "break"
+
+[talks.2_12_30]
+type = "break"
+
+[talks.2_12_45]
+type = "break"
+
+[talks.2_13_00]
+type = "break"
+
+[talks.2_13_15]
+type = "break"
+
+[talks.2_13_30]
+type = "break"
+
+[talks.2_13_45]
+type = "break"
+
+[talks.2_14_00]
+speaker = "Yuwen Chen"
+title = "CuClarabel: GPU Acceleration for a Conic Optimization Solver"
+
+[talks.2_14_15]
+
+[talks.2_14_30]
+speaker = "Joaquim Dias Garcia"
+title = "Open energy models: benchmarking, profiling and debugging tool for JuMP"
+
+[talks.2_14_45]
+
+[talks.2_15_00]
+title = "Break"
+type = "break"
+
+[talks.2_15_15]
+type = "break"
+
+[talks.2_15_30]
+speaker = "Oscar Dowson"
+title = "The life and times of SDDP.jl"
+
+[talks.2_15_45]
+
+[talks.2_16_00]
+title = "Wrap up and thanks"
+type = "organization"
+
+[talks.2_16_15]
+type = "organization"
+
+[talks.2_16_30]
+type = "organization"