diff --git a/calendar/amd/build/summary_modal.min.js b/calendar/amd/build/summary_modal.min.js
new file mode 100644
index 00000000000..bb8b25a861b
--- /dev/null
+++ b/calendar/amd/build/summary_modal.min.js
@@ -0,0 +1 @@
+define(["jquery","core/notification","core/custom_interaction_events","core/modal","core/modal_registry"],function(a,b,c,d,e){var f=!1,g={EDIT_BUTTON:'[data-action="edit"]',DELETE_BUTTON:'[data-action="delete"]',EVENT_LINK:'[data-action="event-link"]'},h=function(a){d.call(this,a),this.getFooter().find(g.EDIT_BUTTON).length||b.exception({message:"No edit button found"}),this.getFooter().find(g.DELETE_BUTTON).length||b.exception({message:"No delete button found"})};return h.TYPE="core_calendar-event_summary",h.prototype=Object.create(d.prototype),h.prototype.constructor=h,f||(e.register(h.TYPE,h,"core_calendar/event_summary_modal"),f=!0),h});
\ No newline at end of file
diff --git a/calendar/amd/src/summary_modal.js b/calendar/amd/src/summary_modal.js
new file mode 100644
index 00000000000..a1801f5bcde
--- /dev/null
+++ b/calendar/amd/src/summary_modal.js
@@ -0,0 +1,64 @@
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see .
+
+/**
+ * A javascript module to handle summary modal.
+ *
+ * @module core_calendar/summary_modal
+ * @package core_calendar
+ * @copyright 2017 Simey Lameze
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+define(['jquery', 'core/notification', 'core/custom_interaction_events', 'core/modal', 'core/modal_registry'],
+ function($, Notification, CustomEvents, Modal, ModalRegistry) {
+
+ var registered = false;
+ var SELECTORS = {
+ EDIT_BUTTON: '[data-action="edit"]',
+ DELETE_BUTTON: '[data-action="delete"]',
+ EVENT_LINK: '[data-action="event-link"]'
+ };
+
+ /**
+ * Constructor for the Modal.
+ *
+ * @param {object} root The root jQuery element for the modal
+ */
+ var ModalEventSummary = function(root) {
+ Modal.call(this, root);
+
+ if (!this.getFooter().find(SELECTORS.EDIT_BUTTON).length) {
+ Notification.exception({message: 'No edit button found'});
+ }
+
+ if (!this.getFooter().find(SELECTORS.DELETE_BUTTON).length) {
+ Notification.exception({message: 'No delete button found'});
+ }
+ };
+
+ ModalEventSummary.TYPE = 'core_calendar-event_summary';
+ ModalEventSummary.prototype = Object.create(Modal.prototype);
+ ModalEventSummary.prototype.constructor = ModalEventSummary;
+
+ // Automatically register with the modal registry the first time this module is imported so that you can create modals
+ // of this type using the modal factory.
+ if (!registered) {
+ ModalRegistry.register(ModalEventSummary.TYPE, ModalEventSummary, 'core_calendar/event_summary_modal');
+ registered = true;
+ }
+
+ return ModalEventSummary;
+
+});
\ No newline at end of file