diff --git rules/modules/views.rules.inc rules/modules/views.rules.inc
new file mode 100644
index 0000000..5184dde
--- /dev/null
+++ rules/modules/views.rules.inc
@@ -0,0 +1,72 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Rules actions for views
+ *
+ * Provides a rules action which renders a view into a variable
+ *
+ * @addtogroup rules
+ * @{
+ */
+
+
+/**
+ * Implementation of hook_rules_action_info().
+ *
+ * Provides a rules action which renders a view into a variable
+ *
+ */
+function views_rules_action_info() {
+
+  return array(
+    'views_rules_action_render_view' => array(
+      'label' => t('Render a View to a variable'),
+      'new variables' => array(
+        'rendered_view' => array('type' => 'string', 'label' => t('Rendered View'))
+      ),
+      'eval input' => array('view_arguments'),
+      'module' => 'Views',
+    ),
+  );
+}
+
+/**
+ * Action Implementation: Render a View
+ *
+ * @param $view_name
+ *   A string containing the name of the view to be rendered
+ * @param $display_id
+ *  A string containing the name of the view's display_id to be rendered (eg. "default" or "page" etc).
+ * @param $view_arguments
+ *  Arguments for the view
+ * @return
+ *  A string containing the rendered view. Depending on the view this might be HTML or text or anything templated
+ */
+function views_rules_action_render_view($settings) {
+  $view_name = $settings['view_name'];
+  $display_id = $settings['display_id'];
+  $view_arguments = explode('/', $settings['view_arguments']);
+
+  // We need to call views_embed_view with an array of arguments, so add on the
+  // $view_name and the $display_id to the beginning:
+  array_unshift($view_arguments, $view_name, $display_id);
+
+  if ($rendered_view = call_user_func_array('views_embed_view', $view_arguments)) {
+
+    // Log successful view rendering only if debug is on
+    if (variable_get('rules_debug', TRUE)) {
+      watchdog('rules', "Rendered view ". $view_name .":". $display_id);
+    }
+    return array('rendered_view' => $rendered_view);
+  }
+  else {
+    // Always log failed rendering
+    watchdog('rules', "View Rendering failed for view ". $view_name .":". $display_id);
+  }
+}
+
+/**
+ * @}
+ */
diff --git rules/modules/views.rules_forms.inc rules/modules/views.rules_forms.inc
new file mode 100644
index 0000000..d53883b
--- /dev/null
+++ rules/modules/views.rules_forms.inc
@@ -0,0 +1,69 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Rules configuration forms for views module.
+ *
+ * @addtogroup rules
+ * @{
+ */
+
+
+/**
+ * A form to configure the views_rules_actions_render_view.
+ *
+ * We add elements to pick the view and choose the arguments to pass to the
+ * view.
+ */
+function views_rules_action_render_view_form($settings, &$form, $form_state) {
+
+  $views = array();
+  $views_objs = views_get_all_views();
+  foreach ($views_objs as $view_ob) {
+    // Add the view to the $views array:
+    foreach (array_keys($view_ob->display) as $display_id) {
+      $views[$view_ob->name][$view_ob->name . ':' . $display_id] = $view_ob->display[$display_id]->display_title;
+    }
+  }
+
+  // compute the default value for the view selector:
+  $default_view = '';
+  if (isset($settings['view_name']) && isset($settings['display_id'])) {
+    $default_view = $settings['view_name'] . ':' . $settings['display_id'];
+  }
+
+  $form['settings']['view'] = array(
+    '#type' => 'select',
+    '#title' => t('View to render'),
+    '#description' => t("Select the display of the view that you would like to render into the variable."),
+    '#options' => $views,
+    '#default_value' => $default_view,
+    '#weight' => -10,
+  );
+
+  $form['settings']['view_arguments'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View arguments'),
+    '#description' => t('Separate arguments with a / as though they were a URL path.'),
+    '#default_value' => isset($settings['view_arguments']) ? $settings['view_arguments'] : '',
+  );
+
+}
+
+/**
+ * Submit callback for views_rules_action_render_view_form().
+ *
+ * Splits the selected view and display into the constituent parts and saves
+ * those.
+ */
+function views_rules_action_render_view_submit(&$settings, $form, $form_state) {
+  // Explode the selected view into its view_name and display_id:
+  list($settings['view_name'], $settings['display_id']) = explode(':', $settings['view'], 2);
+  // Don't save the combined selection:
+  unset($settings['view']);
+}
+
+/**
+ * @}
+ */
