diff -rup ../../modules.orig/date/date_api/date_api_ical.inc ./date_api/date_api_ical.inc
--- ../../modules.orig/date/date_api/date_api_ical.inc	2012-08-13 11:22:34.000000000 +0200
+++ ./date_api/date_api_ical.inc	2013-05-09 13:33:26.235504347 +0200
@@ -697,6 +697,9 @@ function date_api_ical_build_rrule($form
   if (empty($form_values) || !is_array($form_values)) {
     return $RRULE;
   }
+  
+  // RDATE ONLY SUPPORT: $form_values could have no FREQ or FREQ=NONE, but still could have an RDATE. Code below should be skipped in that case
+  if (array_key_exists('FREQ', $form_values) && $form_values['FREQ'] != 'NONE') {
 
   // Grab the RRULE data and put them into iCal RRULE format.
   $RRULE .= 'RRULE:FREQ=' . (!array_key_exists('FREQ', $form_values) ? 'DAILY' : $form_values['FREQ']);
@@ -780,6 +783,8 @@ function date_api_ical_build_rrule($form
     $RRULE .= chr(13) . chr(10) . 'EXDATE:' . $form_values['EXDATE'];
   }
 
+  }
+    
   // Exceptions dates go last, on their own line.
   if (isset($form_values['RDATE']) && is_array($form_values['RDATE'])) {
     $ex_dates = array();
@@ -792,11 +797,13 @@ function date_api_ical_build_rrule($form
     }
     if (!empty($ex_dates)) {
       sort($ex_dates);
-      $RRULE .= chr(13) . chr(10) . 'RDATE:' . implode(',', $ex_dates);
+      // RDATE ONLY SUPPORT: RRULE could by empty, and no \r\n is needed
+      $RRULE .= (!empty($RRULE) ? chr(13) . chr(10) : '') . 'RDATE:' . implode(',', $ex_dates);
     }
   }
   elseif (!empty($form_values['RDATE'])) {
-    $RRULE .= chr(13) . chr(10) . 'RDATE:' . $form_values['RDATE'];
+    // RDATE ONLY SUPPORT: RRULE could by empty, and no \r\n is needed
+    $RRULE .= (!empty($RRULE) ? chr(13) . chr(10) : '') . 'RDATE:' . $form_values['RDATE'];
   }
 
   return $RRULE;
diff -rup ../../modules.orig/date/date_repeat/date_repeat.module ./date_repeat/date_repeat.module
--- ../../modules.orig/date/date_repeat/date_repeat.module	2012-08-13 11:22:34.000000000 +0200
+++ ./date_repeat/date_repeat.module	2013-05-09 13:38:46.102153537 +0200
@@ -52,6 +52,8 @@ function date_repeat_freq_options() {
     'WEEKLY' => t('Weekly', array(), array('context' => 'datetime_singular')),
     'MONTHLY' => t('Monthly', array(), array('context' => 'datetime_singular')),
     'YEARLY' => t('Yearly', array(), array('context' => 'datetime_singular')),
+    // RDATE ONLY SUPPORT: Added an option to skip the repeating rule (but letting the user add additional dates)
+    'NONE' => t('None (only included dates)', array(), array('context' => 'datetime_singular')),
   );
 }
 
diff -rup ../../modules.orig/date/date_repeat/date_repeat_calc.inc ./date_repeat/date_repeat_calc.inc
--- ../../modules.orig/date/date_repeat/date_repeat_calc.inc	2012-08-13 11:22:34.000000000 +0200
+++ ./date_repeat/date_repeat_calc.inc	2013-05-09 13:31:17.528844713 +0200
@@ -42,11 +42,13 @@ function _date_repeat_calc($rrule, $star
   if (count($parts)) {
     $rrule = $parts[0];
   }
+  
   // Get the parsed array of rule values.
   $rrule = date_ical_parse_rrule('RRULE:', $rrule);
 
   // These default values indicate there is no RRULE here.
-  if ($rrule['FREQ'] == 'NONE' || (isset($rrule['INTERVAL']) && $rrule['INTERVAL'] == 0)) {
+  // RDATE ONLY SUPPORT: but there could be a RDATE rule with no RRULE, so i disable this check if $additions is empty
+  if (empty($additions) && ($rrule['FREQ'] == 'NONE' || (isset($rrule['INTERVAL']) && $rrule['INTERVAL'] == 0))) {
     return array();
   }
 
diff -rup ../../modules.orig/date/date_repeat/date_repeat_form.inc ./date_repeat/date_repeat_form.inc
--- ../../modules.orig/date/date_repeat/date_repeat_form.inc	2012-08-13 11:22:34.000000000 +0200
+++ ./date_repeat/date_repeat_form.inc	2013-05-09 13:37:51.398823192 +0200
@@ -82,7 +82,8 @@ function _date_repeat_rrule_process($ele
   $element['FREQ'] = array(
     '#type' => 'select',
     '#title' => t('Repeats', array(), array('context' => 'Date repeat')),
-    '#default_value' => !empty($rrule['FREQ']) ? $rrule['FREQ'] : 'WEEKLY',
+    // RDATE ONLY SUPPORT: If there is no RRULE, ma there are some additions we have a RDATE, and FREQ should be setted to NONE
+    '#default_value' => !empty($rrule['FREQ']) ? $rrule['FREQ'] : (empty($additions) ? 'WEEKLY' : 'NONE'),
     '#options' => date_repeat_freq_options(),
     '#prefix' => '<div class="date-repeat-input">',
     '#suffix' => '</div>',
@@ -616,11 +617,12 @@ function _date_repeat_rrule_process($ele
   $element['show_additions'] = array(
     '#type' => 'checkbox',
     '#title' => t('Include dates', array(), array('context' => 'Date repeat')),
-    '#states' => array(
+    // RDATE ONLY SUPPORT: show_additions field is always visible, to enable the add of additional dates without a repeat rule
+    /*'#states' => array(
       'invisible' => array(
         ":input[name=\"{$element['#name']}[FREQ]\"]" => array('value' => 'NONE'),
       ),
-    ),
+    ),*/
     '#default_value' => empty($form_state['num_additions'][$instance]) ? 0 : 1,
   );
 
@@ -818,6 +820,11 @@ function date_repeat_merge($form_values,
   unset($form_values['monthly']);
   unset($form_values['yearly']);
 
+  // RDATE ONLY SUPPORT: no range_of_repeat for RDATE without RRULE/FREQ
+  if (array_key_exists('FREQ', $form_values) && $form_values['FREQ'] == "NONE" && array_key_exists('range_of_repeat', $form_values)) {
+    $form_values['range_of_repeat'] = 'NONE';
+  }
+    
   if (array_key_exists('range_of_repeat', $form_values)) {
     switch ($form_values['range_of_repeat']) {
       case 'COUNT':
@@ -887,7 +894,8 @@ function date_repeat_rrule_validate($ele
   $parents = $element['#parents'];
   array_pop($parents);
   $field_values = drupal_array_get_nested_value($form_state['values'], $parents);
-  if ($field_values['show_repeat_settings'] === 0 || $field_values['rrule']['FREQ'] === 'NONE') {
+  // RDATE ONLY SUPPORT: skipping the check to exit for [$field_values['rrule']['FREQ'] === 'NONE']
+  if ($field_values['show_repeat_settings'] === 0) {
     form_set_value($element, NULL, $form_state);
     return;
   }
diff -rup ../../modules.orig/date/date_repeat_field/date_repeat_field.module ./date_repeat_field/date_repeat_field.module
--- ../../modules.orig/date/date_repeat_field/date_repeat_field.module	2012-08-13 11:22:34.000000000 +0200
+++ ./date_repeat_field/date_repeat_field.module	2013-05-09 13:51:39.918777923 +0200
@@ -302,11 +302,12 @@ function date_repeat_field_widget_valida
   $rrule_values = date_repeat_merge($input['rrule'], $element['rrule']);
 
   // If no repeat information was set, treat this as a normal, non-repeating value.
-  if ($rrule_values['FREQ'] == 'NONE' || empty($input['show_repeat_settings'])) {
+  // RDATE ONLY SUPPORT: Skipping this check
+  /*if ($rrule_values['FREQ'] == 'NONE' || empty($input['show_repeat_settings'])) {
     $item['rrule'] = NULL;
     form_set_value($element, $item, $form_state);
     return;
-  }
+  }*/
 
   // If no start date was set, clean up the form and return.
   if (empty($item['value'])) {
@@ -445,7 +446,9 @@ function date_repeat_build_dates($rrule
   }
   else {
     // No UNTIL and no COUNT?
-    return array();
+    // RDATE ONLY SUPPORT: Possible if the user specified FREQ=NONE and some additional dates
+    $end_datetime = $start_datetime;
+    //return array();
   }
 
   // Split the RRULE into RRULE, EXDATE, and RDATE parts.
Only in .: date_repeat_rdate_only_support.patch
