diff --git a/entityqueue.rules.inc b/entityqueue.rules.inc
new file mode 100644
index 0000000..1b8dc1f
--- /dev/null
+++ b/entityqueue.rules.inc
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * Implements hook_rules_action_info().
+ */
+function entityqueue_rules_action_info() {
+  $actions = array();
+  $actions['entityqueue_add_to_subqueue'] = array(
+    'label' => t('Add an entity to a subqueue'),
+    'parameter' => array(
+      'entity' => array(
+        'label' => t('Entity'),
+        'type' => 'entity',
+        'description' => t('The entity to add to the Subqueue.'),
+      ),
+      'subqueue' => array(
+        'type' => 'entityqueue_subqueue',
+        'label' => t('Subqueue'),
+        'default value' => FALSE,
+        'options list' => 'entityqueue_rules_subqueues_list',
+        'description' => t('Select the Subqueue to add this Entity.'),
+      ),
+    ),
+    'group' => t('Entityqueue'),
+    'access callback' => 'entityqueue_queue_access',
+  );
+  return $actions;
+}
+
+/**
+ * Returns a list of Queues for Rules.
+ */
+function entityqueue_rules_queues_list() {
+  $queues = entityqueue_queue_load_multiple();
+  $options = [];
+  foreach ($queues as $id => $queue) {
+    $options[$id] = $queue->label;
+  }
+  return $options;
+}
+
+/**
+ * Returns a list of subqueues for Rules, queued by subqueue_id
+ */
+function entityqueue_rules_subqueues_list() {
+  $options = [];
+  $subqueues = entityqueue_subqueue_load_multiple();
+
+  if (!empty($subqueues)) {
+    foreach ($subqueues as $id => $subqueue) {
+      $options[$subqueue->subqueue_id] = $subqueue->label;
+    }
+  }
+  return $options;
+}
