diff --git includes/nodequeue.rules.inc includes/nodequeue.rules.inc
new file mode 100644
index 0000000..a8079ec
--- /dev/null
+++ includes/nodequeue.rules.inc
@@ -0,0 +1,36 @@
+<?php
+// $Id$
+
+/**
+ * @file nodequeue.rules.inc
+ * Rules integration for the Nodequeu module.
+ */
+
+/**
+ * Implementation of hook_rules_event_info().
+ */
+function nodequeue_rules_event_info() {
+  $items = array();
+  $queues = nodequeue_load_queues(array_keys(nodequeue_get_all_qids()));
+  foreach ($queues as $queue) {
+    $args = array(
+      'node' => array(
+        'type' => 'node',
+        'label' => t('Queued node'),
+      ),
+    );
+    // For each nodequeue we define two events
+    $items['nodequeue_added_' . $queue->qid] = array(
+      'label' => t('Node added to the nodequeue "@queue-title"', array('@queue-title' => $queue->title)),
+      'module' => 'Nodequeue',
+      'arguments' => $args,
+    );
+
+    $items['nodequeue_removed_' . $queue->qid] = array(
+      'label' => t('Node removed from nodequeue "@queue-title"', array('@queue-title' => $queue->title)),
+      'module' => 'Nodequeue',
+      'arguments' => $args,
+    );
+  }
+  return $items;
+}
diff --git nodequeue.module nodequeue.module
index dfee0a4..220402a 100644
--- nodequeue.module
+++ nodequeue.module
@@ -440,6 +440,10 @@ function nodequeue_admin_add_node($queue, $subqueue, $node) {
   $id = nodequeue_get_content_id($queue, $node);
   nodequeue_subqueue_add($queue, $subqueue, $id);
 
+  if (module_exists('rules')) {
+    rules_invoke_event('nodequeue_added_' . $queue->qid, array('node' => $node));
+  }
+
   // Provide a response if this is javascript.
   if (!empty($_POST['js'])) {
     if (isset($_GET['tab'])) {
@@ -468,6 +472,10 @@ function nodequeue_admin_remove_node($queue, $subqueue, $node) {
   $id = nodequeue_get_content_id($queue, $node);
   nodequeue_subqueue_remove_node($subqueue->sqid, $id);
 
+  if (module_exists('rules')) {
+    rules_invoke_event('nodequeue_removed_' . $queue->qid, array('node' => $node));
+  }
+
   // Provide a response if this is javascript.
   if (!empty($_POST['js'])) {
     if (isset($_GET['tab'])) {
