I’m not an OutSystems expert, but the scheduler_drag_between plugin registers event handlers on the window.onload event. Normally this event is fired after all resources have been loaded, but OutSystems is using its own ScriptsManager to fetch extra javascript files. It could be the case that the load event is fired before the dhtmlxscheduler_drag_between.js
extension was loaded. So try to load the dhtmlx javascript files as early as possible. Or execute the dhtmlx logic to register the needed event listeners yourself. The drawback is off course that you have to copy some code 
function fixWindowOnLoadNotAlwaysFiringForSchedulerDnDInOutSystems() {
scheduler.event(document.body, "mousemove", function (e) {
var t = Scheduler._external_drag, a = t.target_scheduler;
if (a) if (t.from_scheduler) if (a._drag_id) ; else {
var i = t.to_scheduler;
i && !t.drag_from_scheduler(i, e) || t.land_into_scheduler(a, e)
} else "move" == a.getState().drag_mode && a.config.drag_out && t.start_dnd(a); else t.from_scheduler && (t.to_scheduler ? t.drag_from_scheduler(t.to_scheduler, e) : t.move_dnd_holder(e));
t.target_scheduler = null
});
scheduler.event(document.body, "mouseup", function (e) {
var t = Scheduler._external_drag, a = t.from_scheduler, i = t.to_scheduler;
if (a) if (i && a == i) a.updateEvent(t.drag_data.target_id); else if (i && a !== i) {
var n = t.drag_data.ev, r = i.getEvent(t.drag_data.target_id);
a.callEvent("onEventDropOut", [n.id, n, i, e]) ? t.move_permanently(n, r, a, i) : t.reset_event(n, a)
} else {
var n = t.drag_data.ev;
a.callEvent("onEventDropOut", [n.id, n, null, e]) && t.reset_event(n, a)
}
t.stop_drag(), t.current_scheduler = t.from_scheduler = t.to_scheduler = null
});
}