diff --git a/languages/en_us/Vtiger.php b/languages/en_us/Vtiger.php
index e44eabc3c7211c16adbc9ad9cc95e6dac339d283..fec33408cb3c3829e387560eb50fc1ff12cb95e7 100644
--- a/languages/en_us/Vtiger.php
+++ b/languages/en_us/Vtiger.php
@@ -1941,4 +1941,5 @@ $jsLanguageStrings = array(
         'JS_ATLEAST_SELECT_ONE_FIELD' => 'At least one field should be selected',
         'JS_RELATED_ACCOUNT_IS_NOT_AVAILABLE' => 'Related Organization record is not available',
         'JS_RELATED_CONTACT_IS_NOT_AVAILABLE' => 'Related Contact record is not available',
+        'JS_REPEAT_DATE_SHOULD_BE_GREATER_THAN_START_DATE' => 'Repeat date should be greater than or equal to Start Date',
 );
diff --git a/layouts/v7/modules/Vtiger/partials/EditViewContents.tpl b/layouts/v7/modules/Vtiger/partials/EditViewContents.tpl
index 9fad36b7b6109f6923af15e7d95cb23d739d0018..14b7308256776efc1d8bfec10aac331d79e842f7 100644
--- a/layouts/v7/modules/Vtiger/partials/EditViewContents.tpl
+++ b/layouts/v7/modules/Vtiger/partials/EditViewContents.tpl
@@ -30,6 +30,7 @@
 							{assign var=COUNTER value=0}
 							{foreach key=FIELD_NAME item=FIELD_MODEL from=$BLOCK_FIELDS name=blockfields}
 								{assign var="isReferenceField" value=$FIELD_MODEL->getFieldDataType()}
+                                                                {assign var=FIELD_INFO value=$FIELD_MODEL->getFieldInfo()}
 								{assign var="refrenceList" value=$FIELD_MODEL->getReferenceList()}
 								{assign var="refrenceListCount" value=count($refrenceList)}
 								{if $FIELD_MODEL->isEditable() eq true}
diff --git a/layouts/v7/modules/Vtiger/resources/validation.js b/layouts/v7/modules/Vtiger/resources/validation.js
index 0f8bc5dfb226cce93e01e9da6d8bae3647a369cd..240ea286cda1ef3f7c9eca1cd2b50571aea4ee09 100644
--- a/layouts/v7/modules/Vtiger/resources/validation.js
+++ b/layouts/v7/modules/Vtiger/resources/validation.js
@@ -232,6 +232,28 @@ jQuery.validator.addMethod("greaterThanDependentField", function(value, element,
 	}, jQuery.validator.format(app.vtranslate('JS_PLEASE_ENTER_VALID_VALUE'))
 );
 
+jQuery.validator.addMethod("greaterThanDependentRepeatTillDate", function(value, element, params) {
+        var form = jQuery(element).closest('form');
+		var recurringCheck = form.find('input[name="recurringcheck"]').is(':checked');
+		//checking if the element sent has is date field
+		if(!recurringCheck || !jQuery(element).hasClass('dateField')) {
+			return true;
+		}
+		
+        var startDateElement = form.find('[name="date_start"]');
+        var endDateElement = form.find('[name="calendar_repeat_limit_date"]');
+        var dateFormat = app.getDateFormat();
+        
+        //converting to moment time format
+        var startDate = startDateElement.val();
+        var endDate = endDateElement.val();
+        var momentFormat = dateFormat.toUpperCase();
+        var m1 = moment(startDate , momentFormat);
+        var m2 = moment(endDate, momentFormat);
+        return m2.unix() >= m1.unix();
+    }, jQuery.validator.format(app.vtranslate('JS_REPEAT_DATE_SHOULD_BE_GREATER_THAN_START_DATE'))
+);
+
 jQuery.validator.addMethod("currency", function(value, element, params) {
 	element = jQuery(element);
 	var groupSeparator = app.getGroupingSeparator();
diff --git a/layouts/v7/modules/Vtiger/uitypes/Recurrence.tpl b/layouts/v7/modules/Vtiger/uitypes/Recurrence.tpl
index 22d0b3c8b9f9ee4dcaa9d38025c29d1059c891c3..016b16f122003a1b3731eadbf35c230af1a304f4 100644
--- a/layouts/v7/modules/Vtiger/uitypes/Recurrence.tpl
+++ b/layouts/v7/modules/Vtiger/uitypes/Recurrence.tpl
@@ -10,6 +10,7 @@
 ********************************************************************************/
 -->*}
 {strip}
+    {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()}
 	<div class="row">
 		<div class="col-sm-1">
 			{if $RECURRING_INFORMATION['recurringcheck'] eq 'Yes' && !$smarty.request.isDuplicate}
@@ -28,7 +29,7 @@
                                     </select>
 				</span>
 				<span class="col-sm-2 padding0px">
-					<select class="select2 input-medium" style="width:100px;margin-left: 10px;" name="recurringtype" id="recurringType">
+					<select class="select2 input-medium" style="width:85px;margin-left: 10px;" name="recurringtype" id="recurringType">
 						<option value="Daily" {if $RECURRING_INFORMATION['eventrecurringtype'] eq 'Daily'} selected {/if}>{vtranslate('LBL_DAYS_TYPE', $MODULE)}</option>
 						<option value="Weekly" {if $RECURRING_INFORMATION['eventrecurringtype'] eq 'Weekly'} selected {/if}>{vtranslate('LBL_WEEKS_TYPE', $MODULE)}</option>
 						<option value="Monthly" {if $RECURRING_INFORMATION['eventrecurringtype'] eq 'Monthly'} selected {/if}>{vtranslate('LBL_MONTHS_TYPE', $MODULE)}</option>
@@ -38,9 +39,9 @@
 				</span>
 				<span class="col-sm-6 padding0px">
 					<span class="input-group date inputElement">
-						<input type="text" id="calendar_repeat_limit_date" class="dateField input-small form-control" name="calendar_repeat_limit_date" data-date-format="{$USER_MODEL->get('date_format')}" 
+                                            <input type="text" id="calendar_repeat_limit_date" class="dateField input-small form-control" name="calendar_repeat_limit_date" data-date-format="{$USER_MODEL->get('date_format')}" 
 							   value="{if $RECURRING_INFORMATION['recurringcheck'] neq 'Yes'}{$TOMORROWDATE}{elseif $RECURRING_INFORMATION['recurringcheck'] eq 'Yes'}{$RECURRING_INFORMATION['recurringenddate']}{/if}" 
-							   data-rule-date="true" data-rule-required="true"/>
+							   data-rule-date="true" data-rule-required="true" data-specific-rules='{ZEND_JSON::encode($FIELD_INFO["validator"])}' {if !empty($SPECIAL_VALIDATOR)}data-validator='{Zend_Json::encode($SPECIAL_VALIDATOR)}'{/if}/>
 						<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
 					</span>
 				</span>
diff --git a/modules/Calendar/models/Field.php b/modules/Calendar/models/Field.php
index d549901766a6ac491581d6bba6621464bd5753ac..05d260d74cec283c667dbae97de0f1ac0084c79d 100644
--- a/modules/Calendar/models/Field.php
+++ b/modules/Calendar/models/Field.php
@@ -34,8 +34,12 @@ class Calendar_Field_Model extends Vtiger_Field_Model {
 			/*case 'date_start' : $funcName = array('name'=>'greaterThanToday');
 								array_push($validator, $funcName);
 								break;*/
-			default : $validator = parent::getValidator();
-						break;
+			case 'recurringtype':	$funcName = array('name' => 'greaterThanDependentRepeatTillDate',
+													'params' => array('date_start'));
+									array_push($validator, $funcName);
+									break;
+			default				:	$validator = parent::getValidator();
+									break;
 		}
 		return $validator;
 	}