Zoom meeting

Activities ::: mod_zoom
Maintained by Jonathan Champ, Steve Bader
Zoom is a video and web conferencing platform that gives authorized users the ability to host online meetings and webinars.

Zoom meeting v4.2.1

Moodle 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11
Released: Friday, November 19, 2021, 12:55 AM


Zoom is the web and app based video conferencing service (http://zoom.us). This plugin offers tight integration with Moodle, supporting meeting creation, synchronization, grading, and backup/restore.


This plugin is designed for Educational or Business Zoom accounts.

To connect to the Zoom APIs this plugin requires an account level JWT app to be created. To create an account-level JWT app the Developer Role Permission is required.

See https://marketplace.zoom.us/docs/guides/build/jwt-app. You will need to create a JWT app and that will generate the API key and secret.


  1. Install plugin to mod/zoom. More details at https://docs.moodle.org/39/en/Installing_plugins#Installing_a_plugin
  2. Once you install the plugin you need to set the following set the following settings to enable the plugin:
  • Zoom API key (mod_zoom | apikey)
  • Zoom API secret (mod_zoom | apisecret)
  • Zoom home page URL (mod_zoom | zoomurl), Link to your organization's custom Zoom landing page.

Please note that the API key and secret is not the same as the LTI key/secret.

If you get "Access token is expired" errors, make sure the date/time on your server is properly synchronized with the time servers.



  • Fix PHP 8 deprecation warning #332 (thanks @ndunand)
  • Fix duplicate column name on "All Meetings" page #330


  • Add support for Zoom Tracking Fields #308 (thanks @haietza, @porcospino)
  • Send plaintext version of Moodle intro to Zoom #290 (thanks @Ottendahl, @abias, @yanus for reporting)
    • Note: To avoid losing Moodle's rich text, we no longer synchronize Zoom's topic back to Moodle.
  • Reduce zoom_refresh_events overreach; fix 'quick edit' issue #320 (thanks @alina-kiz, @jwalits for testing)
  • Add error handling and improve consistency in Zoom activity restore #328 (thanks @jonof)


  • Always use a fresh copy of start_url #316 (thanks @ShilVita for reporting)
  • Synchronize calendar events consistently #319 (thanks @martinoesterreicher for reporting)
  • Update JWT library to v5.4.0 #312


  • Make loadmeeting consistent via web and mobile (event, completion, grade, etc) #307 (thanks @nstefanski)


  • Fix invitation class not found exception #296 (thanks @byvamo for reporting)


  • Allow configuration of Zoom identifier #280 (thanks @jwalits, @abias, @jonlan)
    • New setting zoom/apiidentifier
  • Allow configuration of Zoom API endpoint #293 (thanks @abias, @didier63)
    • New setting zoom/apiendpoint
  • Use case-insensitive email comparison for schedule_for #295 (thanks @stopfstedt, @briannwar)


  • Fully support recurring meetings #258 (thanks @abias, @jwalits, ETH Zürich)
    • New setting zoom/invitationremoveicallink
    • Backward incompatible change: exported iCal events now match Moodle's uid format
  • Retroactively fix database schema defaults #291 (thanks @foxlapinou for reporting)


  • Only allow real host to use start_url #285 (thanks @abias for reporting)


  • Add support for Ionic 5 #269 (thanks @dpalou)
  • Improve update_meetings scheduled task #263 (thanks @abias)
  • Re-enable mustache continuous integration #276
  • Treat alternative hosts as a possible host #275
  • Update exists_on_zoom consistently #273 (thanks @abias for reporting)
  • Update timemodified only when needed #279 (thanks @abias for reporting)
  • Fix meeting invitation issues #267, #274 (thanks @abias, @nstefanski, @andrewmadden for feedback)


  • Allow administrators to selectively remove Meeting Invitation details #235 (thanks @andrewmadden)
    • New capabilities mod/zoom:viewjoinurl and mod/zoom:viewdialin
  • Track completion for mobile users #238 (thanks @nstefanski, @tzerafnx)
  • Fix backup and restore of several zoom activity-level fields #247 (thanks @abias)
  • Fix meeting reports task for some already-numeric end times #236 (thanks @lcollong)
  • Fix list of alternative hosts to only include active users #252 (thanks @abias)
  • Fix PHP 7.1 compatibility issue #243
  • Fix encryption type validation #232 (thanks @abias)
  • Clean up error messages / efficiency on the view page #245 (thanks @abias)


  • Fixed fatal regression on settings.php for Moodle < 3.7 (Thanks abias)
  • Fixed debugging messages that occur for users without webinar licenses
  • Various string improvements


  • Removed language translations. Please submit language translations to AMOS (https://lang.moodle.org/)
  • Fixed bug causing downloading of meeting participation reports to fail
  • Added new settings for E2EE, Webinars, Alternative hosts, Download iCal, Meeting capacity warning, and Enable meeting links (Thanks abias)
  • Improved UI for admin and module settings (Thanks abias)
  • Support for admins to update Zoom meeting participation reports
  • Quick editing Zoom meeting name will now update calendar event
  • Support for more advanced passcode requirements
  • This will be the last supported release by UCLA. This plugin will now be maintained by jrchamp and NC State DELTA.


  • Used Dashboard API to improve get_meeting_reports task
  • Added meeting invite text to calendar and meeting page to provide phone details
  • Zoom meetings now appear in Timeline block (Thanks nstefanski)
  • Added basic Analytic indicators (Thanks danmarsden)
  • Fixed calendar icon not showing up for non-Boost themes (Thanks danowar2k)
  • Added support for Moodle 3.10
  • Allow privileged users without Zoom to edit meetings (Thanks jrchamp)
  • Fixed bugs related to scheduler support (Thanks jrchamp)
  • Fixed participant count for meeting sessions so it only counts unique users
  • Zoom descriptions keep HTML formatting (Thanks mhughes2k)
  • Fixed failing DB schema checks (Thanks dvdcastro)
  • Requiring passcodes is now a site wide configuration


  • Fixed problems with error handling (Thanks kbowlerarden and jrchamp)
  • Added language translations for uk, pl, and ru (Thanks mkikets99)
  • Thanks to kubilayagi for all his work on the Zoom plugin these past 2.5 years and good luck on future endeavors


  • Password/Passcode changes
    • Renamed passwords to passcodes
    • Added passcodes to Webinars (Thanks jrchamp)
    • Passcodes are now required
  • Implement completion viewed when user joins meeting (Thanks nstefanski)
  • License recycling improvement (Thanks mrvinceo)
  • Added scheduler support (Thanks mhughes2k)
  • Added support for Zoom API changes related to next_page_token and rate limiting
  • Fixed error handling for non-English Zoom deployments
  • Added Travis CI support


  • Added site config to mask participant data form appearing in reports (useful for sites that mask participant data, e.g., for HIPAA) (Thanks stopfstedt)


  • Support Retry-After header in Zoom API
  • Supports longer Zoom meeting ids
  • Added more meeting options: Mute upon entry, Enable waiting room, Only authenticated users. - Changed to be Host/Participant video to off by default
  • Meeting have passwords set by default
  • Improvements to "Get meeting report" task to better handle data errors
  • Removed "Attendee attention" column in participant report, because it has been removed by Zoom
  • Added a new setting 'proxyurl' that can be used to set a proxy as hostname:port. This will be used for communication with the Zoom API (but not anywhere else in Moodle). (Thanks pefeigl)
  • Fixed meeting dates during restore (Thanks nstefanski)
  • Added German translation (Thanks pefeigl)


  • Resized svg icon (Thanks stopfstedt)
  • Fixed error handling for 'User not found on this account' (Thanks nstefanski and tzerafnx)
  • Incorrect return value for zoom_update_instance (Thanks jrchamp)
  • Added global search support
  • Fixed inconsistent "start_time" column (Thanks tuanngocnguyen)


  • Moodle 3.7 support (Thanks danmarsden)
  • Privacy API support
  • Moodle mobile support fixed for 3.5 (Thanks nstefanski)
  • iCal generation
  • Various bug fixes/improvements.


  • Fixing conflicts with Firebase\JWT library. If more conflicts are found, please contact plugin maintainer to add whitelist in classes/webservice.php.


  • Updated to support Zoom API V2
  • Added SVG icon for resolution independence (Thanks rrusso)
  • Additional logging
  • License recycling (Thanks tigusigalpa)
  • Participant reports improved (local storage and added attentiveness score)
  • GDPR compliance
  • Support for alternative hosts


  • Lang string BOM fix (Thanks roperto/tonyjbutler)
  • Support for proxy servers (Thanks jonof)
  • Improved handling of meetings not found on Zoom
  • Exporting of session participants to xls
  • Improved participants report
  • Fixing coding issues


  • Addressed coding issues brought up by a MoodleRooms review done for CSUN.


  • Fixed upgrade issues with PostgreSQL


  • Added missing lang string for cache.
  • Updated activity chooser help text.
  • Added support for webinars.
  • Fixing Unicode issues.


  • Fixed join before host option.
  • Added Zoom user reports.
  • Added connection status checking on settings page.


  • Allowing Zoom users to be found by other login types than just SSO.


  • Issue #1: allow underscores in API key and secret.
  • Issue #2: Fix language strings to not use concatenation.
  • Added support for "group members only".


  • Initial release

Version information

Version build number
Version release name
Stable version
MD5 Sum
Supported software
Moodle 3.3, Moodle 3.4, Moodle 3.5, Moodle 3.6, Moodle 3.7, Moodle 3.8, Moodle 3.9, Moodle 3.10, Moodle 3.11

Version control information

Version control system (VCS)
VCS repository URL
VCS tag

Default installation instructions for plugins of the type Activities

  1. Make sure you have all the required versions.
  2. Download and unpack the module.
  3. Place the folder (eg "assignment") in the "mod" subdirectory.
  4. Visit http://yoursite.com/admin to finish the installation