Activities: Scheduler

mod_scheduler
Maintained by Henning Bostelmann
An appointment scheduler for planning face-to-face meetings between teachers and students. Teachers can set up time slots, and students can choose one of these on Moodle.
2475 sites
46 fans

The Scheduler module helps you in scheduling appointments with your students. Teachers specify time slots for meetings, students then choose one of them on Moodle. Teachers in turn can record the outcome of the meeting - and optionally a grade - within the scheduler.

Group scheduling is supported; that is, each time slot can accomodate several students, and optionally it is possible to schedule appointments for entire groups at the same time.

Please note that minor updates to this module will normally be released on github only.

For help and discussion about the module, please use the Scheduler forum on moodle.org.

For an earlier version supporting Moodle up to release 1.9, see the Scheduler 1.9 module.

Contributors

• Thu, 18 May 2017, 10:13 PM
Hi Henning and Developers,

Sorry to bother you again. For function "get_slots_available_to_student" inside "scheduler_instance.php", what is the name of the table (or names of the tables) in the database ($DB) you are accessing? Sorry it doesn't say which table it is accessing in the code. Thank you! • Fri, 19 May 2017, 10:55 PM Hi Henning again , Thank you very much for fixing the bug with the deleting of the selected slots. We were testing scheduler under Moodle 3.2, and we came across another bug. The bug will appear when the teacher is trying to give one time slot for a group of students. When the students book this slots, the teacher will get a conflict message telling him to check the ignore conflict button, but eventually he will get 2 slots with the same time and with the same number of students, which means if the teacher is trying to give a slot for 3 students, he will have 2 slots with the same time and 6 students can book those slots. I hope, that i explained the bug well. Thank you very much! • Wed, 24 May 2017, 4:18 AM @Kevin Lu: The code that is responsible for these database queries can be found in mod/scheduler/model/scheduler_instance.php . This is quite a long file, but it is crucial to understanding how Scheduler works; you may want to read it in more detail. Have a look in particular at the methods fetch_slots() and get_slots_for_teacher(). • Wed, 24 May 2017, 4:22 AM @Amr Al Kudeh Thanks for mentioning this. I have created an entry for this on the bug tracker, see CONTRIB-6908 . I think I don't understand the bug fully yet and would need some more information. Please comment on the bug tracker if you can. • Tue, 6 Jun 2017, 12:05 AM Hi Henning and developers, Thank you for answering my questions. I have a question about "Add Single Slot" under Add Slots tab button. Which php file is it that displays the html code? I need to add a Javascript function to it so I need to know the name of the php file that displays the html code. Also, for the Save button, which file generates that Save button? Thank you! • Tue, 6 Jun 2017, 3:32 AM Hi Henning and developers, On teacherview.php, under "View : Update single slot form" in line 138, what is the variable that I can use in order to access this slot's location and enrolled users (teacher and students)? Thank you again! • Tue, 13 Jun 2017, 2:35 AM Hi Kevin, the form is generated using Moodle's formslib, which you can read more about here: https://docs.moodle.org/dev/lib/formslib.php Within Scheduler, see "slotforms.php". Regarding your second question, this would be the variable$slot. It's an object type, so you would get the location with $slot->appointmentlocation , for example. You can get a list of all appointments with$slot->get_appointments() (see documentation in model/scheduler_slot.php).
• Wed, 14 Jun 2017, 11:37 PM
Hi Henning,

Thank you for your response. I have a quick question. Is it possible to get the scheduler's name located in the tab in the right side? For example, in the tab, I have Summer Courses, Winter Courses and Spring Courses as scheduler name, is there a place in the code that I can retrieve the name? I am doing it because I need to identify which scheduler I am in so I can make changes to slots.

Thanks!
• Thu, 15 Jun 2017, 7:11 AM
Hello Kevin, I think you're looking for \$scheduler->name .
• Tue, 18 Jul 2017, 3:02 AM
Hi Henning,

Thank you for your response last time. I have a quick question, it looks like the student view page calls "get_slots_available_to_student" function on scheduler_instance.php file. However, the teacher view page (teacherview.php and teacherview.controller.php) don't use any query functions in scheduler_instance.php. Could you help me identify the query that teacher view page is using? Like what is the name of the function and inside what file. Thank you!
• Tue, 29 Aug 2017, 6:55 PM
How is it possible to make the scheluler visible for guests? I want everyone to see opened time slots and after they press "book" they will be redirected to the registration
• Thu, 31 Aug 2017, 11:01 PM
Hello Olga,
Scheduler is not intended to be used by guests. In order to use Scheduler, users will need to log in with a full user account.
• Fri, 1 Sep 2017, 8:52 AM
Hi Olga
You may let guests see available slots by making the course available to guests. They will see all available slots, but they won't have a "book" button. You may add a comment in the "introduction" section with a link to the login page.
• Sat, 2 Sep 2017, 3:29 AM
Hi Henning and Sebastien,

Thank you for your scheduler package. I have a question. After testing the scheduler package for 4 months, it appears if the slots are more than 10,000 then on the student page (studentview.php), the table of slots would not be displayed and it is actually a big white page under the scheduler name. I know the page dies out because I can see the scheduler name but under it, it is a big white page.

In the file scheduler_instance.php, I know fetch_slot function returns the list of slots that are displayed on student page. I have modified query in function so it only queries slots for next 7 days, this does remedy "a bit" of the query time. My question is, is there another way of query the slots faster?

Thank you!

Kevin
• Tue, 5 Sep 2017, 3:12 AM
Hi Kevin
I have actually never tested Scheduler with so many open slots at the same time (our own use case hardly ever needs more than 100). The limit you see is (likely) either related to the available PHP memory or to a restriction on the database side. I suspect the latter. In that case, only an investigation on your specific database can show what the restriction is and whether a speedup is possible (e.g. by adding a suitable database index).