Search by

adamjenkins / moodle-mod_findatime

wisecat

A Moodle activity where the members of a course group mark their availability, see where it overlaps and confirm a meeting that goes into the group calendar

Package info

github.com/adamjenkins/moodle-mod_findatime

Type:moodle-mod

pkg:composer/adamjenkins/moodle-mod_findatime

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.2.0 2026-10-24 05:52 UTC

This package is auto-updated.

Last update: 2026-10-24 15:01:31 UTC


README

A Moodle activity that helps people agree on a meeting time. Everyone taking part marks when they are available on a time grid, they all see where their availability overlaps, and a teacher (or, if allowed, any participant) confirms a time. The confirmed meeting goes into the calendar and everyone is notified.

It is built to be especially useful for group work, but it is not only for groups:

  • Group work: with the group mode set to separate groups, every project team, study group or tutorial group finds its own time and sees only its own members, and teachers follow all groups on one overview page.
  • A whole course: with no groups, the class finds one time together (a review session, a visit, an online meeting with a guest speaker).
  • Teachers planning together: in a staff course where colleagues are enrolled as participants, or by allowing the teacher roles the "Mark own availability" (mod/findatime:respond) capability in the activity's permissions, teachers find a time for a department meeting, a moderation session or co-teaching.

It is not a replacement for the Scheduler activity, where teachers offer appointment slots: here the group's shared availability decides the time.

Features

  • Availability grid: members mark times as available, if need be or unavailable. Click and drag on a desktop, tap on a touch screen (or switch on "Drag to select"), or use the keyboard: arrow keys, Home/End, Space or Enter to mark, Shift+arrow to mark while moving. Changes are saved automatically.
  • Group overlap heatmap: shows how many members are available at each time, with the names on hover or keyboard focus, and lists the best meeting times. A member counts for a meeting only if they are free for every slot the meeting spans.
  • Confirming a meeting: a teacher, or any group member when "Any group member may confirm" is enabled, confirms a time and an optional location or link. This creates a group calendar event and sends a notification to the group's members. The meeting can be moved or cancelled; the calendar event follows.
  • Colour-coded overlap map: from red (nobody can come) through orange and yellow to green, and blue only when everybody is available, with a colour key. Each block shows its start and end time as a tooltip; clicking a block keeps its details shown (click it again to release, or another block to move).
  • Necessary participants: the meeting time must suit them. Once they have answered, the times they cannot make are left out of the best times and are never chosen automatically; optionally they are also greyed out on the map and in the other members' grids.
  • RSVP date and reminders: optionally, members must answer by a "Respond by" date. After it the grid is read-only and only the answers given by then count when the time is set, by hand or automatically. Reminders can be sent 1 hour, 1, 2 or 3 days or a week before it to the members who have not answered (one reminder if several of these times have already passed).
  • Meeting details: confirming can notify the group (optionally with a message), and "Send meeting details" sends the time, length, location and a note to the group again, at most once every 10 minutes.
  • Automatic confirmation: optionally, at a chosen time, every group that has no meeting yet gets its most popular time confirmed. A meeting that someone confirmed or cancelled by hand is never changed.
  • Teacher overview: all groups with their response rate and meeting status.
  • Groups and groupings (separate and visible groups), activity completion ("submitted availability"), course reset, backup and restore, the privacy API, events and the Moodle 5 course overview page.

Timezones

All times are stored as UTC timestamps and shown in each user's own timezone.

The date range and the daily time window are set in the activity timezone, which defaults to the timezone of the teacher creating the activity. "09:00-17:00" means 09:00-17:00 in that timezone on every day, including across a daylight saving time change. Each person sees the grid laid out in their own timezone, so a participant elsewhere in the world may see the times on other dates or at other hours, and around a DST change in either timezone the rows shift accordingly.

Requirements

  • Moodle 4.5 LTS to 5.3 ($plugin->supported = [405, 503]).
  • JavaScript for marking availability.

Installation

Copy the plugin to mod/findatime (on Moodle 5.1 and later: public/mod/findatime) and visit Site administration > Notifications, or run admin/cli/upgrade.php.

Settings

Setting Meaning
Activity timezone Timezone of the dates and daily times
First day, Last day Date range (at most 62 days)
Daily start time, Daily end time Daily window, in 15 minute steps
Slot size 15, 30 or 60 minutes
Meeting length A whole number of slots
Allow "if need be" answers Offer the third status
Any group member may confirm Let members confirm or cancel for their own group
Respond by Answers are final at this time; shown in large type above the description, and as the due date in the timeline
Necessary participants Members whose availability the meeting time must respect
Grey out times that necessary participants cannot make Show those times greyed out, and stop members marking them
Reminders When to remind members who have not answered, before the RSVP date
Confirm automatically at When to confirm the most popular time for groups without a meeting

A grid may hold at most 2000 slots. Changing the timing after people have answered is allowed; answers for times that are no longer on the grid are ignored.

Capabilities

Capability Default roles
mod/findatime:addinstance Editing teacher, manager
mod/findatime:view Student, teacher, editing teacher, manager
mod/findatime:respond Student
mod/findatime:confirm Teacher, editing teacher, manager
mod/findatime:viewreports Teacher, editing teacher, manager

Someone with mod/findatime:confirm can confirm for groups they belong to, or for any group if they can access all groups. To designate a student as a group's coordinator, override mod/findatime:confirm for them in the activity, or enable "Any group member may confirm".

Good to know

  • Deleting the activity keeps the calendar entries of meetings that have already taken place: they become ordinary group (or course) events. Entries of upcoming meetings are deleted with it.
  • A confirmed meeting is a group calendar event, so it appears in the calendars of that group's members. Moodle does not show another group's module events to a teacher who is not in any group of the course, so teachers follow the meetings on the activity's overview page.
  • Restoring a course with a new start date moves the activity's dates, the availability and the meetings by whole days, keeping their local times.

Web services

mod_findatime_get_grid, mod_findatime_save_availability, mod_findatime_get_overlap and mod_findatime_cancel_meeting are available to AJAX and to the Moodle app service; the Moodle app itself is not supported yet.

Licence

GNU GPL v3 or later. Copyright 2026 Adam Jenkins.