diff --git a/bvletools.user.js b/bvletools.user.js
index f335ac2b7eecded07d9ff70baf7a53ead46944d3..f0ccb67d0f33f0ff76ac9b9b7cf5bf48dea4a3fd 100644
--- a/bvletools.user.js
+++ b/bvletools.user.js
@@ -1,7 +1,7 @@
 // ==UserScript==
 // @name         Bromcom VLE Tools
 // @namespace    http://radialbog9.uk/
-// @version      2024-02-04
+// @version      2024-04-23
 // @description  Bromcom VLE dashboard widget
 // @author       Radialbog9
 // @match        https://vle.bromcomcloud.com/Home/Dashboard
@@ -29,8 +29,8 @@
                 </table>
             </div>
             <div id="content_RB9Buttons" style="display:block; width: 100%;padding:0px;" class="ifNoDataInWidget">
-<span class="txtalignCenter"><a id="rb9ButtonGetTTWeek">Get Timetable (This Week)</a></span>
-</div>
+                <span class="txtalignCenter"><a id="rb9ButtonGetTTWeek">Get Timetable (This Week)</a></span>
+            </div>
         </div><div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90; display: none;"></div>
     </div>
 */
@@ -48,17 +48,53 @@
 
         return [year, month, day].join('-');
     }
-    //addEventListener("load", (e) => {
-    $("#widgetsDahsboard .grid-stack").append("\r\n<div class=\"grid-stack-item ui-draggable ui-resizable ui-resizable-autohide ui-resizable-disabled\" id=\"gs_RB9Buttons\" data-color=\"danger\" data-gs-id=\"gs_RB9Buttons\" data-gs-x=\"8\" data-gs-y=\"2\" data-gs-width=\"4\" data-gs-height=\"2\" data-gs-no-resize=\"yes\">\r\n        <div class=\"panel panel-danger shadow grid-stack-item-content ui-draggable-handle\">\r\n            <div class=\"panel-heading\">\r\n                <table>\r\n                    <tbody>\r\n                        <tr class=\"tableheader\">\r\n                            <td><i style=\"font-size:35px; padding-right:5px; padding-left:5px\" class=\"fa fa fa-wrench \"><\/i><\/td>\r\n                            <td>\r\n                                <h3 class=\"panel-title\">Toolkit<\/h3><h5 class=\"panelSubTitle\">Utilities Toolkit<\/h5>\r\n                            <\/td>\r\n                        <\/tr>\r\n                        <tr><\/tr>\r\n                    <\/tbody>\r\n                <\/table>\r\n            <\/div>\r\n            <div id=\"content_RB9Buttons\" style=\"display:block; width: 100%;padding:0px;\" class=\"ifNoDataInWidget\">\r\n<span class=\"txtalignCenter\"><a id=\"rb9ButtonGetTTWeek\">Get Timetable (This Week)<\/a><\/span>\r\n<\/div>\r\n        <\/div><div class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\" style=\"z-index: 90; display: none;\"><\/div>\r\n    <\/div>");
+
+    function generateUtilButtonText(id, text) {
+        var elem = "<span class=\"txtalignCenter\">";
+        elem += `<a id="${id}">${text}</a>`;
+        elem += "</span>";
+        elem += "<br />";
+        return elem;
+    }
+
+    $("#widgetsDahsboard .grid-stack")
+        .append("\n<div class=\"grid-stack-item ui-draggable ui-resizable ui-resizable-autohide ui-resizable-disabled\" id=\"gs_RB9Buttons\" data-color=\"danger\" data-gs-id=\"gs_RB9Buttons\" data-gs-x=\"8\" data-gs-y=\"2\" data-gs-width=\"4\" data-gs-height=\"2\" data-gs-no-resize=\"yes\">\n        <div class=\"panel panel-danger shadow grid-stack-item-content ui-draggable-handle\">\n            <div class=\"panel-heading\">\n                <table>\n                    <tbody>\n                        <tr class=\"tableheader\">\n                            <td><i style=\"font-size:35px; padding-right:5px; padding-left:5px\" class=\"fa fa fa-wrench \"><\/i><\/td>\n                            <td>\n                                <h3 class=\"panel-title\">Toolkit<\/h3><h5 class=\"panelSubTitle\">Utilities Toolkit<\/h5>\n                            <\/td>\n                        <\/tr>\n                        <tr><\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n            <div id=\"content_RB9Buttons\" style=\"display:block; width: 100%;padding:0px;\" class=\"ifNoDataInWidget\">\n<\/div>\n        <\/div><div class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\" style=\"z-index: 90; display: none;\"><\/div>\n    <\/div>");
     
-    $("#content_RB9Buttons").append("<br /><a onclick=\"alert(userGuidingUserId.split('$')[0]);\">Get User ID</a>");
+    //$("#content_RB9Buttons").append("<span class=\"txtalignCenter\"><a id=\"rb9ButtonGetTTWeek\">Get Timetable (This Week)<\/a><\/span>");
+    //$("#content_RB9Buttons").append("<br /><a onclick=\"alert(userGuidingUserId.split('$')[0]);\">Get User ID</a>");
     
+    $("#content_RB9Buttons").append(generateUtilButtonText("rb9ButtonGetTTWeek", "Get Timetable (This Week)"));
+    $("#content_RB9Buttons").append(generateUtilButtonText("rb9ButtonGetTTWeekNext", "Get Timetable (Next Week)"));
+    $("#content_RB9Buttons").append(generateUtilButtonText("rb9ButtonGetUserId", "Get User ID"));
+
+    $("#rb9ButtonGetUserId").on("click", () => {
+        var userIdParts = userGuidingUserId.split("$");
+        var id_user = userIdParts[0];
+        var id_institution = userIdParts[1];
+        alert(`User ID: ${id_user}\nInstitution ID: ${id_institution}`);
+    });
+
     $("#rb9ButtonGetTTWeek").on("click", () => {
         var now = new Date();
         var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
         var lastSunday = new Date(today.setDate(today.getDate()-today.getDay()));
         var nextSaturday = new Date(lastSunday).setDate(lastSunday.getDate() + 6);
         var url = "https://vle.bromcomcloud.com/Timetable/GetTimeTable?WeekStartDate=" + formatDate(lastSunday) + "&weekEndDate=" + formatDate(nextSaturday) + "&type=1&id=0";
+        $.ajax({url: url, method: "POST", dataType: "json"})
+            .done((data) => {
+            var data_str = JSON.stringify(data);
+            console.log(data_str);
+            navigator.clipboard.writeText(data_str);
+            alert("Copied to Clipboard. Len(table) = " + data["table"].length);
+        });
+    });
+
+    $("#rb9ButtonGetTTWeekNext").on("click", () => {
+        var now = new Date();
+        var today = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 7); // Forward 1 week
+        var lastSunday = new Date(today.setDate(today.getDate()-today.getDay()));
+        var nextSaturday = new Date(lastSunday).setDate(lastSunday.getDate() + 6);
+        var url = "https://vle.bromcomcloud.com/Timetable/GetTimeTable?WeekStartDate=" + formatDate(lastSunday) + "&weekEndDate=" + formatDate(nextSaturday) + "&type=1&id=0";
         $.ajax({url: url, method: "POST", dataType: "json"})
             .done((data) => {
             var data_str = JSON.stringify(data);
@@ -67,5 +103,4 @@
             alert("Copied to Clipboard.");
         });
     });
-    //});
 })();