diff --git a/file_entity.module b/file_entity.module
index cd35d9a..dbf243c 100644
--- a/file_entity.module
+++ b/file_entity.module
@@ -756,3 +756,26 @@ function theme_file_entity_file_link($variables) {
 
   return '<span class="file">' . $icon . ' ' . l($link_text, $url, $options) . '</span>';
 }
+/**
+ * Implementation of rules events.
+ */
+
+function file_entity_view($file_entity) {
+  rules_invoke_event('file_entity_view', $file_entity);
+}
+
+function file_entity_update($file_entity) {
+  rules_invoke_event('file_entity_update', $file_entity);
+}
+
+function file_entity_insert($file_entity) {
+  rules_invoke_event('file_entity_insert', $file_entity);
+}
+
+function file_entity_delete($file_entity) {
+  rules_invoke_event('file_entity_delete', $file_entity);
+}
diff --git a/file_entity.rules.inc b/file_entity.rules.inc
new file mode 100644
index 0000000..5854f5e
--- /dev/null
+++ b/file_entity.rules.inc
@@ -0,0 +1,45 @@
+<?php
+/**
+* Implementation of hook_rules_event_info().
+*/
+function file_entity_rules_event_info() {
+  $defaults = array(
+    'group' => t('file_entity'),
+    'module' => 'file_entity',
+    'access callback' => 'file_entity_rules_integration_access',
+  );
+  return array(
+    'file_entity_insert' => $defaults + array(
+      'label' => t('After saving a new file_entity'),
+      'variables' => array(
+        'file_entity' => array('type' => 'file_entity', 'label' => t('created file_entity')),
+      ),
+    ),
+    'file_entity_update' => $defaults + array(
+      'label' => t('After updating an existing file_entity'),
+      'variables' => array(
+        'file_entity' => array('type' => 'file_entity', 'label' => t('updated file_entity')),
+      ),
+    ),
+    'file_entity_view' => $defaults + array(
+      'label' => t('A file_entity is viewed'),
+      'variables' => array(
+        'file_entity' => array('type' => 'file_entity', 'label' => t('viewed file_entity')),
+      ),
+      'help' => t("Note that if drupal's page cache is enabled, this event won't be generated for pages served from cache."),
+    ),
+    'file_entity_delete' => $defaults + array(
+      'label' => t('After deleting a file_entity'),
+      'variables' => array(
+        'file_entity' => array('type' => 'file_entity', 'label' => t('deleted file_entity')),
+      ),
+    ),
+  );
+}
