diff --git a/website/content/english/schedule.md b/website/content/english/schedule.md
index fc29c6f25336edeec9bf047bce35e641f08dffa9..6b39e21cdcfd210d4720072502b4a37a3028f6f9 100644
--- a/website/content/english/schedule.md
+++ b/website/content/english/schedule.md
@@ -11,12 +11,7 @@ aliases:
 <tr>
 <th scope="row">Start date</th><th scope="row">Camp Phase</th>
 </tr>
-<tr><td>Sep 18 to 05 Nov 2021 (extended from October 15) </td><td>Registrations</td></tr>
-<tr><td>12 to 19th November 2021 </td><td>Ice Breaking Sessions</td></tr>
-<tr><td>20 to 29th November 2021</td><td>Introduction to Free Software phase</td></tr>
-<tr><td>30 November to 9th December 2021</td><td>GNU/Linux installation phase</td></tr>
-<tr><td>10 to 19th December 2021</td><td>Various ways of contributions</td></tr>
-<tr><td>20 December 2021 to 31 March 2022</td><td>Mentoring phase</td></tr>
+{{< schedule >}}
 </tbody>
 </table>
 
@@ -30,7 +25,7 @@ aliases:
 <tr>
 <th scope="row">Date</th><th scope="row">Session</th><th>Location</th>
 </tr>
-<tr><td>23 November 2021, 3:30 PM - 4:30 PM (IST)</td><td><a href="https://nitter.1d4.us/michael_from_uk">Mike Saunders</a> from <a href="https://www.libreoffice.org">LibreOffice</td><td>https://meet.gnome.org/sof-gpf-pqi-qw7</td></tr>
+{{< talks >}}
 </tbody>
 </table>
 
diff --git a/website/data/schedule.json b/website/data/schedule.json
new file mode 100644
index 0000000000000000000000000000000000000000..4b6a7e988bafcf27e27d2e81924574220057fa29
--- /dev/null
+++ b/website/data/schedule.json
@@ -0,0 +1,17 @@
+{
+  "schedule": [
+    ["Sep 18 to 05 Nov 2021 (extended from October 15) ", "Registrations"],
+    ["12 to 19th November 2021 ", "Ice Breaking Sessions"],
+    ["20 to 29th November 2021", "Introduction to Free Software phase"],
+    ["30 November to 9th December 2021", "GNU/Linux installation phase"],
+    ["10 to 19th December 2021", "Various ways of contributions"],
+    ["20 December 2021 to 31 March 2022", "Mentoring phase"]
+  ],
+  "talks": [
+    [
+      "23 November 2021, 3:30 PM - 4:30 PM (IST)",
+      "<a href=\"https://nitter.1d4.us/michael_from_uk\">Mike Saunders</a> from <a href=\"https://www.libreoffice.org\">LibreOffice",
+      "https://meet.gnome.org/sof-gpf-pqi-qw7"
+    ]
+  ]
+}
diff --git a/website/layouts/shortcodes/schedule.html b/website/layouts/shortcodes/schedule.html
new file mode 100644
index 0000000000000000000000000000000000000000..d79d939361f5736329d62fa4dede433ce0e652ce
--- /dev/null
+++ b/website/layouts/shortcodes/schedule.html
@@ -0,0 +1,8 @@
+
+{{ range .Site.Data.schedule.schedule }}
+<tr>
+  {{ range . }}
+    <td>{{ . }}</td>
+  {{ end }}
+</tr>
+{{ end }}
\ No newline at end of file
diff --git a/website/layouts/shortcodes/talks.html b/website/layouts/shortcodes/talks.html
new file mode 100644
index 0000000000000000000000000000000000000000..eec78936f9534f1f85687f8ae645c3e2ca6128bd
--- /dev/null
+++ b/website/layouts/shortcodes/talks.html
@@ -0,0 +1,8 @@
+
+{{ range .Site.Data.schedule.talks }}
+<tr>
+  <td>{{ index . 0 }}</td>
+  <td>{{ safeHTML (index . 1) }}</td>
+  <td><a href="{{ index . 2 }}">{{ index . 2 }}</a></td>
+</tr>
+{{ end }}
\ No newline at end of file