diff --git rules/ui/ui.core.inc rules/ui/ui.core.inc
index fe36d00..596be35 100644
--- rules/ui/ui.core.inc
+++ rules/ui/ui.core.inc
@@ -636,6 +636,15 @@ class RulesPluginUI extends FacesExtender implements RulesPluginUIInterface {
       }
       $row[] = l(t('clone'), RulesPluginUI::path($name, 'clone'), array('query' => drupal_get_destination()));
 
+      // Add execute and schedule links for components only.
+      $colspan = 4;
+      if (module_exists('rules_scheduler') && !($config instanceof RulesTriggerableInterface)) {
+        dpm('comp');
+        $row[] = l(t('execute'), RulesPluginUI::path($name, 'execute'), array('query' => drupal_get_destination()));
+        $row[] = l(t('schedule'), RulesPluginUI::path($name, 'schedule'), array('query' => drupal_get_destination()));
+        $colspan += 2;
+      }
+
       // Add either an delete or revert link.
       if ($config->status != ENTITY_IN_CODE) {
         $text = $config->status & ENTITY_IN_CODE ? t('revert') : t('delete');
@@ -651,7 +660,7 @@ class RulesPluginUI extends FacesExtender implements RulesPluginUIInterface {
 
       $rows[] = $row;
     }
-    $header = array(t('Label'), t('Event'), t('Plugin'), t('Status'), array('data' => t('Operations'), 'colspan' => 4));
+    $header = array(t('Label'), t('Event'), t('Plugin'), t('Status'), array('data' => t('Operations'), 'colspan' => $colspan));
     if (!isset($events)) {
       // Remove the event heading as there is no such column.
       unset($header[1]);
diff --git rules_scheduler/includes/rules_scheduler.views.inc rules_scheduler/includes/rules_scheduler.views.inc
new file mode 100644
index 0000000..232fdf7
--- /dev/null
+++ rules_scheduler/includes/rules_scheduler.views.inc
@@ -0,0 +1,81 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Views integration for the rules scheduler module.
+ */
+
+/**
+ * Implements hook_views_data(). Specifies the list of future scheduled
+ * tasks displayed on the scheduling page.
+ */
+function rules_scheduler_views_data() {
+  $table = array(
+    'rules_scheduler' => array(
+      'table' => array(
+        'group' => 'Rules scheduler',
+        'base' => array(
+          'field' => 'tid',
+          'title' => t('Scheduled Rules components'),
+          'help' => t("Scheduled Rules components that are executed based on time and cron"),
+          'weight' => -10,
+        ),
+      ),
+      'tid' => array(
+        'title' => t('Tid'),
+        'help' => t('The internal ID of the scheduled rule set'),
+        'field' => array(
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_numeric',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+      'config' => array(
+        'title' => t('Component name'),
+        'help' => t('The name of the component'),
+        'field' => array(
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+      'date' => array(
+        'title' => t('Scheduled date'),
+        'help' => t('Scheduled date and time stamp'),
+        'field' => array(
+          'handler' => 'views_handler_field_date',
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+      'identifier' => array(
+        'title' => t('User provided identifier'),
+        'help' => t('ID to recognize this specific scheduled task'),
+        'field' => array(
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+    ),
+  );
+  return $table;
+}
diff --git rules_scheduler/includes/rules_scheduler.views_default.inc rules_scheduler/includes/rules_scheduler.views_default.inc
new file mode 100644
index 0000000..8efd6c6
--- /dev/null
+++ rules_scheduler/includes/rules_scheduler.views_default.inc
@@ -0,0 +1,8 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Views integration for the rules scheduler module.
+ */
+
diff --git rules_scheduler/rules_scheduler.admin.inc rules_scheduler/rules_scheduler.admin.inc
new file mode 100644
index 0000000..e816d8e
--- /dev/null
+++ rules_scheduler/rules_scheduler.admin.inc
@@ -0,0 +1,107 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Admin forms for scheduling
+ */
+
+function rules_scheduler_schedule() {
+  return drupal_get_form('rules_scheduler_form');
+}
+
+/**
+ * Builds the schedule page with a form for deletion of tasks.
+ */
+function rules_scheduler_form($form, &$form_state) {
+  $form = array();
+  // Display view for all scheduled tasks
+  if (module_exists('views')) {
+    $task_list = views_embed_view('rules_scheduler');
+  }
+  else {
+    $task_list = t('To display scheduled tasks you have to install the <a href="http://drupal.org/project/views">Views</a> module.');
+  }
+  $form['task_view'] = array(
+    '#markup' => $task_list,
+  );
+
+  // form fieldset for canceling by component name
+  $result = db_query("SELECT DISTINCT config FROM {rules_scheduler}");
+  $config_names = array();
+  foreach ($result as $record) {
+    $config_names[$record->config] = $record->config;
+  }
+
+  $form['delete_by_config'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Cancel tasks by component name'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  if (empty($config_names)) {
+    $form['delete_by_config']['#description'] = t('There are currently no scheduled tasks available to delete.');
+  }
+  else {
+    $form['delete_by_config']['config_delete'] = array(
+      '#title' => t('Component name'),
+      '#type' => 'select',
+      '#options' => $config_names,
+      '#multiple' => FALSE,
+    );
+    $form['delete_by_config']['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Cancel tasks'),
+      '#submit' => array('rules_scheduler_cancel_submit'),
+    );
+  }
+  return $form;
+}
+
+/**
+ * Submit handler for deletion/cancellation of future scheduled tasks.
+ */
+function rules_scheduler_cancel_submit($form, &$form_state) {
+  module_load_include('inc', 'rules_scheduler', 'rules_scheduler.rules');
+  rules_scheduler_action_cancel($form_state['values']['config_delete']);
+  drupal_set_message(t('All tasks associated with %config have been canceled.', array('%config' => $form_state['values']['config_delete'])));
+}
+
+/**
+ * Confirmation form for canceling single tasks.
+ */
+function rules_scheduler_cancel_task($form, &$form_state, $task) {
+  $form = array();
+  $form_state['task'] = $task;
+
+  $path = array();
+  $path['path'] = isset($_GET['destination']) ? $_GET['destination'] : RULES_SCHEDULER_PATH;
+
+  $title = t('Are you sure you want to cancel task %tid?', array('%tid' => $task['tid']));
+  if (!empty($task['identifier'])) {
+    $msg = t('This task refers to the custom identifier %id and component %config, it will be executed on %date. The delete action cannot be undone.', array(
+      '%config' => $task['config'],
+      '%id' => $task['identifier'],
+      '%date' => format_date($task['date']),
+    ));
+  }
+  else {
+    $msg = t('This task refers to the component %config and will be executed on %date. The delete action cannot be undone.', array(
+      '%config' => $task['config'],
+      '%id' => $task['identifier'],
+      '%date' => format_date($task['date']),
+    ));
+  }
+  return confirm_form($form, $title, $path, $msg, t('Delete'), t('Cancel'));
+}
+
+/**
+ * Submit handler for canceling single tasks.
+ */
+function rules_scheduler_cancel_task_submit($form, &$form_state) {
+  db_delete('rules_scheduler')
+    ->condition('tid', $form_state['task']['tid'])
+    ->execute();
+  drupal_set_message(t("Task %label has been deleted.", array('%label' => $form_state['task']['tid'])));
+  $form_state['redirect'] = RULES_SCHEDULER_PATH;
+}
diff --git rules_scheduler/rules_scheduler.info rules_scheduler/rules_scheduler.info
index 35b8698..79821f0 100644
--- rules_scheduler/rules_scheduler.info
+++ rules_scheduler/rules_scheduler.info
@@ -4,7 +4,10 @@ description = Schedule the execution of rule components.
 dependencies[] = rules
 package = Rules
 core = 7.x
+files[] = rules_scheduler.admin.inc
 files[] = rules_scheduler.module
 files[] = rules_scheduler.install
 files[] = rules_scheduler.rules.inc
-files[] = rules_scheduler.test
\ No newline at end of file
+files[] = rules_scheduler.test
+files[] = includes/rules_scheduler.views_default.inc
+files[] = includes/rules_scheduler.views.inc
diff --git rules_scheduler/rules_scheduler.module rules_scheduler/rules_scheduler.module
index 8d1ad27..97a0451 100644
--- rules_scheduler/rules_scheduler.module
+++ rules_scheduler/rules_scheduler.module
@@ -6,6 +6,8 @@
  * Rules scheduler module.
  */
 
+define('RULES_SCHEDULER_PATH', RULES_UI_PATH . '/schedule');
+
 /**
  * Implements hook_cron().
  */
@@ -40,6 +42,30 @@ function rules_scheduler_cron() {
 }
 
 /**
+ * Implements hook_menu().
+ */
+function rules_scheduler_menu() {
+  $items = array();
+  $items[RULES_SCHEDULER_PATH] = array(
+    'title' => 'Schedule',
+    'type' => MENU_LOCAL_TASK,
+    'page callback' => 'rules_scheduler_schedule',
+    'access arguments' => array('administer rules'),
+    'file' => 'rules_scheduler.admin.inc',
+  );
+  $items[RULES_SCHEDULER_PATH .'/%rules_scheduler_task/cancel'] = array(
+    'title' => 'Cancel a scheduled task',
+    'type' => MENU_LOCAL_TASK,
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('rules_scheduler_cancel_task', 5),
+    'access arguments' => array('administer rules'),
+    'load arguments' => array(5),
+    'file' => 'rules_scheduler.admin.inc',
+  );
+  return $items;
+}
+
+/**
  * Load a task by a given task ID.
  */
 function rules_scheduler_task_load($tid) {
@@ -71,3 +97,13 @@ function rules_scheduler_schedule_task($task) {
   }
   drupal_write_record('rules_scheduler', $task);
 }
+
+/**
+ * Implements hook_views_api().
+ */
+function rules_scheduler_views_api() {
+  return array(
+    'api' => 2.0,
+    'path' => drupal_get_path('module', 'rules_scheduler') .'/includes',
+  );
+}
diff --git rules_scheduler/rules_scheduler.rules.inc rules_scheduler/rules_scheduler.rules.inc
index ec166cf..faff4f6 100644
--- rules_scheduler/rules_scheduler.rules.inc
+++ rules_scheduler/rules_scheduler.rules.inc
@@ -163,7 +163,7 @@ function rules_scheduler_action_schedule_form_alter(&$form, &$form_state, $optio
 function rules_scheduler_action_cancel($component_name = NULL, $task_identifier = NULL) {
   $query = db_delete('rules_scheduler');
   if (!empty($component_name)) {
-    $query->condition('name', $component_name);
+    $query->condition('config', $component_name);
   }
   if (!empty($task_identifier)) {
     $query->condition('identifier', $task_identifier);
