diff --git a/includes/registration.field.inc b/includes/registration.field.inc
index a3af817..6c5ce67 100644
--- a/includes/registration.field.inc
+++ b/includes/registration.field.inc
@@ -9,7 +9,27 @@ function registration_field_info() {
       'label' => t('Registration'),
       'description' => t('Enables registrations of a selected type for an entity.'),
       'settings' => array(),
-      'instance_settings' => array(),
+      'instance_settings' => array(
+        'default_registration_settings' => array(
+          'status' => 0,
+          'capacity' => 0,
+          'scheduling' => array(
+            'open' => NULL,
+            'close' => NULL,
+          ),
+          'reminder' => array(
+            'send_reminder' => 0,
+            'reminder_settings' => array(
+              'reminder_date' => NULL,
+              'reminder_template' => NULL,
+            ),
+          ),
+          'settings' => array(
+            'multiple_registrations' => -1,
+            'from_address' => variable_get('site_mail', ini_get('sendmail_from')),
+          ),
+        ),
+      ),
       'default_widget' => 'registration_select',
       'default_formatter' => 'registration_default',
       'no_ui' => FALSE
@@ -74,6 +94,131 @@ function registration_field_widget_form(&$form, &$form_state, $field, $instance,
 }
 
 /**
+ * Implements hook_field_instance_settings_form().
+ */
+function registration_field_instance_settings_form($field, $instance) {
+  $settings = $instance['settings'];
+  $form['default_registration_settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Default registration settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  $form['default_registration_settings']['status'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable'),
+    '#description' => t('Check to enable registrations'),
+    '#default_value' => $settings['default_registration_settings']['status'],
+  );
+  $form['default_registration_settings']['capacity'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Capacity'),
+    '#description' => t('The maximum number of registrants. Leave at 0
+         for no limit.'),
+    '#size' => 5,
+    '#maxlength' => 10,
+    '#required' => TRUE,
+    '#default_value' => $settings['default_registration_settings']['capacity'],
+  );
+
+  $form['default_registration_settings']['scheduling'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Scheduling'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+    '#tree' => TRUE
+  );
+
+  $form['default_registration_settings']['scheduling']['open'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Open Date'),
+    '#maxlength' => 25,
+    '#description' => t('When to automatically open registrations. Format: %time. The date format is YYYY-MM-DD and %timezone is the time zone offset from UTC. Leave blank to disable.', array(
+      '%time' => !empty($settings['default_registration_settings']['scheduling']['open']) ? date_format(date_create($settings['default_registration_settings']['scheduling']['open']), 'Y-m-d H:i:s O') : format_date(time(), 'custom', 'Y-m-d H:i:s O'),
+      '%timezone' => !empty($settings['default_registration_settings']['scheduling']['open']) ? date_format(date_create($settings['default_registration_settings']['scheduling']['open']), 'O') : format_date(time(), 'custom', 'O'))
+    ),
+    '#default_value' => $settings['default_registration_settings']['scheduling']['open'],
+  );
+
+  $form['default_registration_settings']['scheduling']['close'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Close Date'),
+    '#maxlength' => 25,
+    '#description' => t('When to automatically close registrations. Format: %time. The date format is YYYY-MM-DD and %timezone is the time zone offset from UTC. Leave blank to disable.', array(
+      '%time' => !empty($settings['default_registration_settings']['scheduling']['close']) ? date_format(date_create($settings['default_registration_settings']['scheduling']['close']), 'Y-m-d H:i:s O') : format_date(time(), 'custom', 'Y-m-d H:i:s O'),
+      '%timezone' => !empty($settings['default_registration_settings']['scheduling']['close']) ? date_format(date_create($settings['default_registration_settings']['scheduling']['close']), 'O') : format_date(time(), 'custom', 'O'))
+    ),
+    '#default_value' => $settings['default_registration_settings']['scheduling']['close'],
+  );
+
+
+  $form['default_registration_settings']['reminder'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Reminder'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  $form['default_registration_settings']['reminder']['send_reminder'] = array(
+    '#type' => 'checkbox',
+    '#title' => 'Send Reminder',
+    '#description' => 'If checked, a reminder will be sent to registrants on the following date.',
+    '#default_value' => $settings['default_registration_settings']['reminder']['send_reminder'],
+  );
+
+  $form['default_registration_settings']['reminder']['reminder_settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Settings'),
+    '#collapsible' => FALSE,
+    '#states' => array(
+      'visible' => array(
+        ':input[name="instance[settings][default_registration_settings][reminder][send_reminder]"]' => array('checked' => TRUE),
+      ),
+    )
+  );
+  $form['default_registration_settings']['reminder']['reminder_settings']['reminder_date'] = array(
+    '#type' => 'date',
+    '#title' => 'Reminder Date',
+    '#default_value' => $settings['default_registration_settings']['reminder']['reminder_settings']['reminder_date'],
+  );
+  $form['default_registration_settings']['reminder']['reminder_settings']['reminder_template'] = array(
+    '#type' => 'textarea',
+    '#title' => 'Template',
+    '#default_value' => $settings['default_registration_settings']['reminder']['reminder_settings']['reminder_template'],
+    '#description' => t('The reminder message sent to registrants. Tokens are supported if the module is enabled, E.g., [node:title].'),
+  );
+  // add token support
+  if (module_exists('token')) {
+    $form['default_registration_settings']['reminder']['reminder_settings']['token_tree'] = array(
+      '#theme' => 'token_tree',
+      '#token_types' => array('node', 'content-type', 'current-page', 'registration'),
+      '#global_types' => FALSE,
+    );
+  }
+
+  $form['default_registration_settings']['settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Additional Settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+    '#tree' => TRUE
+  );
+  $form['default_registration_settings']['settings']['multiple_registrations'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow multiple registrations'),
+    '#description' => t('If selected, users can register for more than one slot for this event.'),
+    '#default_value' => $settings['default_registration_settings']['settings']['multiple_registrations'],
+  );
+  $form['default_registration_settings']['settings']['from_address'] = array(
+    '#type' => 'textfield',
+    '#title' => t('From Address'),
+    '#description' => t('From email address to use for confirmations, reminders, and broadcast emails.'),
+    '#required' => TRUE,
+    '#default_value' => $settings['default_registration_settings']['settings']['from_address'],
+  );
+  return $form;
+}
+
+/**
  * Implements hook_field_formatter_info().
  */
 function registration_field_formatter_info() {
diff --git a/registration.module b/registration.module
index da5a489..9842b27 100644
--- a/registration.module
+++ b/registration.module
@@ -578,6 +578,77 @@ function registration_send_broadcast($entity_type, $entity_id, $subject, $messag
   }
 }
 
+ /**
+ * Implements hook_entity_insert().
+ *
+ * Create registration settings for this entity.
+ */
+function registration_entity_insert($entity, $entity_type) {
+  $registration_type = registration_get_entity_registration_type($entity_type, $entity);
+  if ($registration_type !== FALSE) {
+    list($entity_id, $revision_id, $bundle) = entity_extract_ids($entity_type, $entity);
+    $fields = field_read_fields(array('type' => 'registration'));
+    $field_name = '';
+    foreach($fields as $field) {
+      if (isset($entity->{$field['field_name']})) {
+        $field_name = $field['field_name'];
+      }
+    }
+    $field_instance = field_read_instance($entity_type, $field_name, $bundle);
+    if (!$field_instance) {
+      // this should never happen, but just in case ...
+      $temp_settings = array(
+          'status' => -1,
+          'capacity' => 0,
+          'scheduling' => array(
+            'open' => NULL,
+            'close' => NULL,
+          ),
+          'reminder' => array(
+            'send_reminder' => -1,
+            'reminder_settings' => array(
+              'reminder_date' => NULL,
+              'reminder_template' => NULL,
+            ),
+          ),
+          'settings' => array(
+            'multiple_registrations' => -1,
+            'from_address' => variable_get('site_mail', ini_get('sendmail_from')),
+          ),
+        );
+    }
+    else {
+      $temp_settings = $field_instance['settings']['default_registration_settings'];
+    }
+    $reminder_date = empty($temp_settings['reminder']['reminder_settings']['reminder_date']) ?
+      NULL :
+      $temp_settings['reminder']['reminder_settings']['reminder_date']['year'] . '-' .
+      $temp_settings['reminder']['reminder_settings']['reminder_date']['month'] . '-' .
+      $temp_settings['reminder']['reminder_settings']['reminder_date']['day'];
+    $settings = array(
+      'status' => $temp_settings['status'],
+      'capacity' => $temp_settings['capacity'],
+      'open' => empty($temp_settings['scheduling']['open']) ? NULL : $temp_settings['scheduling']['open'],
+      'close' => empty($temp_settings['scheduling']['close']) ? NULL : $temp_settings['scheduling']['close'],
+      'send_reminder' => $temp_settings['reminder']['send_reminder'],
+      'reminder_date' => $reminder_date,
+      'reminder_template' => $temp_settings['reminder']['reminder_settings']['reminder_template'],
+      'settings' => array(
+        'from_address' => $temp_settings['settings']['from_address'],
+        'multiple_registrations' => $temp_settings['settings']['multiple_registrations'],
+      ),
+    );
+
+    drupal_alter('registration_settings', $settings, $entity);
+
+    // Serialize settings
+    $settings['settings'] = serialize($settings['settings']);
+
+    registration_update_entity_settings($entity_id, $entity_type, $settings);
+  }
+}
+
+
 /**
  * Update an entity's registration settings.
  *
