diff --git a/CRM/CivirulesActions/Contribution/Form/ThankYouDate.php b/CRM/CivirulesActions/Contribution/Form/ThankYouDate.php
index 1808df3f3613265f177c97f29886b4aa7d4123dc..5483b3fc2c1551ebbfedc997575e0a1f1c1f9201 100644
--- a/CRM/CivirulesActions/Contribution/Form/ThankYouDate.php
+++ b/CRM/CivirulesActions/Contribution/Form/ThankYouDate.php
@@ -15,6 +15,9 @@ class CRM_CivirulesActions_Contribution_Form_ThankYouDate extends CRM_CivirulesA
    */
   public function buildQuickForm() {
     $this->add('hidden', 'rule_action_id');
+    $radioOptions = array('Date of Action Execution', 'xxx days after Action Execution', 'Specific Date');
+    $this->addRadio('thank_you_radio', ts('Thank You Date will be set to : '), $radioOptions);
+    $this->add('text', 'number_of_days', ts('Number of Days after Action Execution'));
     $this->addDate('thank_you_date', ts('Thank You Date'), FALSE, array('formatType' => 'custom'));
     $this->addButtons(array(
       array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
@@ -33,6 +36,14 @@ class CRM_CivirulesActions_Contribution_Form_ThankYouDate extends CRM_CivirulesA
     if (!empty($this->ruleAction->action_params)) {
       $data = unserialize($this->ruleAction->action_params);
     }
+    if (!empty($data['number_of_days'])) {
+      $defaultValues['number_of_days'] = $data['number_of_days'];
+    }
+    if (empty($data['thank_you_radio'])) {
+      $defaultValues['thank_you_radio'] = 0;
+    } else {
+      $defaultValues['thank_you_radio'] = $data['thank_you_radio'];
+    }
     if (empty($data['thank_you_date'])) {
       list($defaultValues['thank_you_date']) = CRM_Utils_Date::setDateDefaults(date('Y-m-d'));
     } else {
@@ -47,7 +58,17 @@ class CRM_CivirulesActions_Contribution_Form_ThankYouDate extends CRM_CivirulesA
    * @access public
    */
   public function postProcess() {
-    $data['thank_you_date'] = $this->_submitValues['thank_you_date'];
+    $data['thank_you_radio'] = $this->_submitValues['thank_you_radio'];
+    if ($this->_submitValues['thank_you_radio'] == 2) {
+      $data['thank_you_date'] = $this->_submitValues['thank_you_date'];
+    } else {
+      $data['thank_you_date'] = null;
+    }
+    if ($this->_submitValues['thank_you_radio'] == 1) {
+      $data['number_of_days'] = $this->_submitValues['number_of_days'];
+    } else {
+      $data['number_of_days'] = 0;
+    }
     $this->ruleAction->action_params = serialize($data);
     $this->ruleAction->save();
     parent::postProcess();
diff --git a/CRM/CivirulesActions/Contribution/ThankYouDate.php b/CRM/CivirulesActions/Contribution/ThankYouDate.php
index 81ee93badcc54e4e85c53de1e597bd1e50725a15..516cb3ebd7f8520a43baff9b6a6dd382d6875d8c 100644
--- a/CRM/CivirulesActions/Contribution/ThankYouDate.php
+++ b/CRM/CivirulesActions/Contribution/ThankYouDate.php
@@ -16,9 +16,23 @@ class CRM_CivirulesActions_Contribution_ThankYouDate extends CRM_Civirules_Actio
   public function processAction(CRM_Civirules_EventData_EventData $eventData) {
     $contribution = $eventData->getEntityData('Contribution');
     $actionParams = $this->getActionParameters();
+    switch ($actionParams['thank_you_radio']) {
+      case 1:
+        if (!empty($actionParams['number_of_days'])) {
+          $thankYouDate = new DateTime();
+          $thankYouDate->modify('+'.$actionParams['number_of_days']. ' day');
+          }
+        break;
+      case 2:
+        $thankYouDate = new DateTime($actionParams['thank_you_date']);
+        break;
+      default:
+        $thankYouDate = new DateTime();
+        break;
+    }
     $params = array(
       'id' => $contribution['id'],
-      'thankyou_date' => date('Ymd', strtotime($actionParams['thank_you_date']))
+      'thankyou_date' => $thankYouDate->format('Ymd')
     );
     try {
       civicrm_api3('Contribution', 'Create', $params);
@@ -46,10 +60,24 @@ class CRM_CivirulesActions_Contribution_ThankYouDate extends CRM_Civirules_Actio
    * @access public
    */
   public function userFriendlyConditionParams() {
-    $return = '';
+    $return = "";
+    $dateString = "";
     $params = $this->getActionParameters();
-    if (!empty($params['thank_you_date'])) {
-      $return = 'Thank You Date for Contribution will be set to : '.date('d M Y', strtotime($params['thank_you_date']));
+    if (isset($params['thank_you_radio'])) {
+      switch ($params['thank_you_radio']) {
+        case 0:
+          $dateString = "date action executes";
+          break;
+        case 1:
+          $dateString = $params['number_of_days']." days after action executes";
+          break;
+        case 2:
+          $dateString = date('d M Y', strtotime($params['thank_you_date']));
+          break;
+      }
+    }
+    if (!empty($dateString)) {
+      $return = 'Thank You Date for Contribution will be set to : ' . $dateString;
     }
     return $return;
   }
diff --git a/templates/CRM/CivirulesActions/Contribution/Form/ThankYouDate.tpl b/templates/CRM/CivirulesActions/Contribution/Form/ThankYouDate.tpl
index f57f8ff41f3c3bf2a451fc561458e53023411b43..6b5045889f40fc332197472f4f35cb6a150e2ff5 100644
--- a/templates/CRM/CivirulesActions/Contribution/Form/ThankYouDate.tpl
+++ b/templates/CRM/CivirulesActions/Contribution/Form/ThankYouDate.tpl
@@ -1,11 +1,53 @@
 <h3>{$ruleActionHeader}</h3>
 <div class="crm-block crm-form-block crm-civirule-rule_action-block-contribution-thank-you-date">
-    <div class="crm-section">
-        <div class="label">{$form.thank_you_date.label}</div>
-        <div class="content">{include file="CRM/common/jcalendar.tpl" elementName=thank_you_date}</div>
-        <div class="clear"></div>
-    </div>
+  <div id="thank-you-radio-block" class="crm-section">
+    <div class="label">{$form.thank_you_radio.label}</div>
+    <div class="content">{$form.thank_you_radio.html}</div>
+    <div class="clear"></div>
+  </div>
+  <div id="number_of_days-block" class="crm-section">
+    <div class="label">{$form.number_of_days.label}</div>
+    <div class="content">{$form.number_of_days.html}</div>
+    <div class="clear"></div>
+  </div>
+  <div id ="thank_you_date-block" class="crm-section">
+    <div class="label">{$form.thank_you_date.label}</div>
+    <div class="content">{include file="CRM/common/jcalendar.tpl" elementName=thank_you_date}</div>
+    <div class="clear"></div>
+  </div>
 </div>
 <div class="crm-submit-buttons">
-    {include file="CRM/common/formButtons.tpl" location="bottom"}
+  {include file="CRM/common/formButtons.tpl" location="bottom"}
 </div>
+{literal}
+  <script type="text/javascript">
+    cj(function($) {
+      $("input[type=radio][checked]").each(function() {
+        if ($('#CIVICRM_QFID_0_thank_you_radio').prop('checked')) {
+          $('#number_of_days-block').hide();
+          $('#thank_you_date-block').hide();
+        }
+        if ($('#CIVICRM_QFID_1_thank_you_radio').prop('checked')) {
+          $('#number_of_days-block').show();
+          $('#thank_you_date-block').hide();
+        }
+        if ($('#CIVICRM_QFID_2_thank_you_radio').prop('checked')) {
+          $('#number_of_days-block').hide();
+          $('#thank_you_date-block').show();
+        }
+      });
+      $('#CIVICRM_QFID_0_thank_you_radio').click(function() {
+        $('#number_of_days-block').hide();
+        $('#thank_you_date-block').hide();
+      })
+      $('#CIVICRM_QFID_1_thank_you_radio').click(function() {
+        $('#number_of_days-block').show();
+        $('#thank_you_date-block').hide();
+      })
+      $('#CIVICRM_QFID_2_thank_you_radio').click(function() {
+        $('#number_of_days-block').hide();
+        $('#thank_you_date-block').show();
+      })
+    });
+  </script>
+{/literal}
\ No newline at end of file