diff --git a/packages/blueprint/lib/action.js b/packages/blueprint/lib/action.js
index <HASH>..<HASH> 100644
--- a/packages/blueprint/lib/action.js
+++ b/packages/blueprint/lib/action.js
@@ -20,6 +20,15 @@ const BlueprintObject = require ('./object');
  * @class Action
  *
  * The base class for all actions.
+ *
+ * _About the events_:
+ *
+ * The event API for the actions is different from the traditional Events API where
+ * the events correspond to objects on this class. Because you cannot gain access to
+ * an Action instance (i.e., it is kept internally), the Events correspond to the
+ * application. This is equivalent to saying the Action supports the ApplicationMessaging
+ * events. We do not use the ApplicationMessaging mixin, however, because we can gain
+ * access to the application object via the `controller` property.
  */
 module.exports = BlueprintObject.extend ({
   /**
@@ -48,4 +57,28 @@ module.exports = BlueprintObject.extend ({
 
   /// The hosting controller for the action.
   controller: null,
+
+  /// @{ Events
+
+  emit () {
+    return this.controller.app.emit (...arguments);
+  },
+
+  on () {
+    return this.controller.app.on (...arguments);
+  },
+
+  once () {
+    return this.controller.app.once (...arguments);
+  },
+
+  hasListeners (ev) {
+    return this.controller.app.hasListeners (ev);
+  },
+
+  getListeners (ev) {
+    return this.controller.app.getListeners (ev);
+  }
+
+  /// @}
 });
Added the Events api to the Action