diff --git a/mod/quiz/processattempt.php b/mod/quiz/processattempt.php
index 8cf41ee..2751ab7 100644
--- a/mod/quiz/processattempt.php
+++ b/mod/quiz/processattempt.php
@@ -195,5 +195,15 @@ if (!$attempt->preview) {
 $accessmanager = $attemptobj->get_access_manager($timenow);
 $accessmanager->clear_password_access();
 
+// Trigger event
+$eventdata = new object();
+$eventdata->component  = 'mod/quiz';
+$eventdata->course     = $attemptobj->get_courseid();
+$eventdata->quiz       = $attemptobj->get_quizid();
+$eventdata->cm         = $attemptobj->get_cmid();
+$eventdata->user       = $USER;
+$eventdata->attempt    = $attemptobj->get_attemptid();
+events_trigger('quiz_attempt_processed', $eventdata);
+
 /// Send the user to the review page.
 redirect($attemptobj->review_url());
diff --git a/mod/quiz/startattempt.php b/mod/quiz/startattempt.php
index d1d1157..e5cd3f9 100644
--- a/mod/quiz/startattempt.php
+++ b/mod/quiz/startattempt.php
@@ -120,5 +120,15 @@ foreach ($quizobj->get_questions() as $i => $question) {
     save_question_session($question, $states[$i]);
 }
 
+// Trigger event
+$eventdata = new object();
+$eventdata->component  = 'mod/quiz';
+$eventdata->course     = $quizobj->get_courseid();
+$eventdata->quiz       = $quizobj->get_quizid();
+$eventdata->cm         = $quizobj->get_cmid();
+$eventdata->user       = $USER;
+$eventdata->attempt    = $attempt->id;
+events_trigger('quiz_attempt_started', $eventdata);
+
 /// Redirect to the attempt page.
 redirect($quizobj->attempt_url($attempt->id));
