Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/Recurrence.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/Recurrence.Designer.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/Recurrence.Designer.cs	(revision 15956)
@@ -48,8 +48,6 @@
       this.chbade = new System.Windows.Forms.CheckBox();
       this.dtpEnd = new System.Windows.Forms.DateTimePicker();
-      this.dtpToTime = new System.Windows.Forms.DateTimePicker();
       this.label5 = new System.Windows.Forms.Label();
       this.dtpStart = new System.Windows.Forms.DateTimePicker();
-      this.dtpFromTime = new System.Windows.Forms.DateTimePicker();
       this.label6 = new System.Windows.Forms.Label();
       this.btSaveRecurrence = new System.Windows.Forms.Button();
@@ -74,8 +72,6 @@
       this.gbAppointment.Controls.Add(this.chbade);
       this.gbAppointment.Controls.Add(this.dtpEnd);
-      this.gbAppointment.Controls.Add(this.dtpToTime);
       this.gbAppointment.Controls.Add(this.label5);
       this.gbAppointment.Controls.Add(this.dtpStart);
-      this.gbAppointment.Controls.Add(this.dtpFromTime);
       this.gbAppointment.Controls.Add(this.label6);
       this.gbAppointment.Location = new System.Drawing.Point(2, 2);
@@ -98,19 +94,10 @@
       // dtpEnd
       // 
-      this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Short;
+      this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+      this.dtpEnd.CustomFormat = "ddd, dd.MM.yyyy, HH:mm:ss";
       this.dtpEnd.Location = new System.Drawing.Point(113, 56);
       this.dtpEnd.Name = "dtpEnd";
-      this.dtpEnd.Size = new System.Drawing.Size(91, 20);
+      this.dtpEnd.Size = new System.Drawing.Size(175, 20);
       this.dtpEnd.TabIndex = 29;
-      // 
-      // dtpToTime
-      // 
-      this.dtpToTime.CustomFormat = "HH:mm";
-      this.dtpToTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
-      this.dtpToTime.Location = new System.Drawing.Point(226, 56);
-      this.dtpToTime.Name = "dtpToTime";
-      this.dtpToTime.ShowUpDown = true;
-      this.dtpToTime.Size = new System.Drawing.Size(73, 20);
-      this.dtpToTime.TabIndex = 38;
       // 
       // label5
@@ -126,18 +113,9 @@
       // 
       this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+      this.dtpStart.CustomFormat = "ddd, dd.MM.yyyy, HH:mm:ss";
       this.dtpStart.Location = new System.Drawing.Point(113, 19);
       this.dtpStart.Name = "dtpStart";
-      this.dtpStart.Size = new System.Drawing.Size(89, 20);
+      this.dtpStart.Size = new System.Drawing.Size(175, 20);
       this.dtpStart.TabIndex = 28;
-      // 
-      // dtpFromTime
-      // 
-      this.dtpFromTime.CustomFormat = "HH:mm";
-      this.dtpFromTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
-      this.dtpFromTime.Location = new System.Drawing.Point(226, 19);
-      this.dtpFromTime.Name = "dtpFromTime";
-      this.dtpFromTime.ShowUpDown = true;
-      this.dtpFromTime.Size = new System.Drawing.Size(73, 20);
-      this.dtpFromTime.TabIndex = 30;
       // 
       // label6
@@ -307,6 +285,4 @@
     private System.Windows.Forms.Button btSaveRecurrence;
     private System.Windows.Forms.Button btCancelRecurrence;
-    private System.Windows.Forms.DateTimePicker dtpFromTime;
-    private System.Windows.Forms.DateTimePicker dtpToTime;
     private System.Windows.Forms.CheckBox chbade;
     private System.Windows.Forms.GroupBox gbWeekly;
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/Recurrence.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/Recurrence.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/Recurrence.cs	(revision 15956)
@@ -46,6 +46,6 @@
       //check if valid
       if (InputIsValid()) {
-        dateFrom = DateTime.Parse(dtpStart.Text + " " + dtpFromTime.Text);
-        dateTo = DateTime.Parse(dtpEnd.Text + " " + dtpToTime.Text);
+        dateFrom = DateTime.Parse(dtpStart.Text);
+        dateTo = DateTime.Parse(dtpEnd.Text);
 
         RecurrentEvent recurrentEvent = new RecurrentEvent() {
@@ -89,6 +89,6 @@
       DateTime dateFrom, dateTo;
 
-      dateFrom = DateTime.Parse(dtpStart.Text + " " + dtpFromTime.Text);
-      dateTo = DateTime.Parse(dtpEnd.Text + " " + dtpToTime.Text);
+      dateFrom = DateTime.Parse(dtpStart.Text);
+      dateTo = DateTime.Parse(dtpEnd.Text);
 
       if (chbade.Checked && dateFrom < dateTo) {
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.Designer.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.Designer.cs	(revision 15956)
@@ -48,6 +48,4 @@
       Calendar.DrawTool drawTool1 = new Calendar.DrawTool();
       this.dvOnline = new Calendar.DayView();
-      this.txttimeTo = new System.Windows.Forms.DateTimePicker();
-      this.txttimeFrom = new System.Windows.Forms.DateTimePicker();
       this.dtpTo = new System.Windows.Forms.DateTimePicker();
       this.groupBox1 = new System.Windows.Forms.GroupBox();
@@ -94,30 +92,11 @@
       this.dvOnline.OnSelectionChanged += new System.EventHandler<System.EventArgs>(this.dvOnline_OnSelectionChanged);
       // 
-      // txttimeTo
-      // 
-      this.txttimeTo.CustomFormat = "HH:mm";
-      this.txttimeTo.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
-      this.txttimeTo.Location = new System.Drawing.Point(164, 45);
-      this.txttimeTo.Name = "txttimeTo";
-      this.txttimeTo.ShowUpDown = true;
-      this.txttimeTo.Size = new System.Drawing.Size(73, 20);
-      this.txttimeTo.TabIndex = 40;
-      // 
-      // txttimeFrom
-      // 
-      this.txttimeFrom.CustomFormat = "HH:mm";
-      this.txttimeFrom.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
-      this.txttimeFrom.Location = new System.Drawing.Point(164, 12);
-      this.txttimeFrom.Name = "txttimeFrom";
-      this.txttimeFrom.ShowUpDown = true;
-      this.txttimeFrom.Size = new System.Drawing.Size(73, 20);
-      this.txttimeFrom.TabIndex = 39;
-      // 
       // dtpTo
       // 
       this.dtpTo.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+      this.dtpTo.CustomFormat = "ddd, dd.MM.yyyy, HH:mm:ss";
       this.dtpTo.Location = new System.Drawing.Point(72, 45);
       this.dtpTo.Name = "dtpTo";
-      this.dtpTo.Size = new System.Drawing.Size(89, 20);
+      this.dtpTo.Size = new System.Drawing.Size(175, 20);
       this.dtpTo.TabIndex = 33;
       // 
@@ -125,6 +104,4 @@
       // 
       this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.groupBox1.Controls.Add(this.txttimeTo);
-      this.groupBox1.Controls.Add(this.txttimeFrom);
       this.groupBox1.Controls.Add(this.dtpTo);
       this.groupBox1.Controls.Add(this.dtpFrom);
@@ -144,7 +121,8 @@
       // 
       this.dtpFrom.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+      this.dtpFrom.CustomFormat = "ddd, dd.MM.yyyy, HH:mm:ss";
       this.dtpFrom.Location = new System.Drawing.Point(72, 12);
       this.dtpFrom.Name = "dtpFrom";
-      this.dtpFrom.Size = new System.Drawing.Size(89, 20);
+      this.dtpFrom.Size = new System.Drawing.Size(175, 20);
       this.dtpFrom.TabIndex = 32;
       // 
@@ -157,6 +135,6 @@
       this.chbade.TabIndex = 31;
       this.chbade.Text = "All Day Event";
+      this.chbade.CheckedChanged += new System.EventHandler(this.chbade_CheckedChanged);
       this.chbade.UseVisualStyleBackColor = true;
-      this.chbade.CheckedChanged += new System.EventHandler(this.chbade_CheckedChanged);
       // 
       // btnRecurrence
@@ -273,7 +251,5 @@
     #endregion
 
-    private System.Windows.Forms.DateTimePicker txttimeTo;
     private Calendar.DayView dvOnline;
-    private System.Windows.Forms.DateTimePicker txttimeFrom;
     private System.Windows.Forms.DateTimePicker dtpTo;
     private System.Windows.Forms.GroupBox groupBox1;
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.cs	(revision 15956)
@@ -92,13 +92,10 @@
 
       if (!string.IsNullOrEmpty(dtpFrom.Text) && !string.IsNullOrEmpty(dtpTo.Text)) {
-        if (chbade.Checked) {
+        if (DateTime.TryParse(dtpFrom.Text, out from) && DateTime.TryParse(dtpTo.Text, out to) && from <= to) {
           //whole day appointment, only dates are visible
-          if (DateTime.TryParse(dtpFrom.Text, out from) && DateTime.TryParse(dtpTo.Text, out to) && from <= to)
-            offlineTimes.Add(CreateDowntime(from, to.AddDays(1), true, dtType));
-          else
-            MessageBox.Show("Incorrect date format", "Schedule Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
-        } else if (!string.IsNullOrEmpty(txttimeFrom.Text) && !string.IsNullOrEmpty(txttimeTo.Text)) {
-          //Timeframe appointment
-          if (DateTime.TryParse(dtpFrom.Text + " " + txttimeFrom.Text, out from) && DateTime.TryParse(dtpTo.Text + " " + txttimeTo.Text, out to) && from < to) {
+          if (chbade.Checked) {
+            offlineTimes.Add(CreateDowntime(new DateTime(from.Year, from.Month, from.Day), (new DateTime(to.Year, to.Month, to.Day)).AddDays(1), true, dtType));
+          } else {
+            //Timeframe appointment
             if (from.Date == to.Date)
               offlineTimes.Add(CreateDowntime(from, to, false, dtType));
@@ -111,7 +108,11 @@
               offlineTimes.Add(CreateDowntime(from, new DateTime(from.Year, from.Month, from.Day, to.Hour, to.Minute, 0, 0), false, dtType));
             }
-          } else
-            MessageBox.Show("Incorrect date format", "Schedule Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
-        }
+          }
+
+        } else {
+          MessageBox.Show("Incorrect date format", "Schedule Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+        }
+
+
         dvOnline.Invalidate();
         return true;
@@ -156,9 +157,12 @@
 
     private void ChangeRecurrenceDowntime(Guid recurringId) {
-      int hourfrom = int.Parse(txttimeFrom.Text.Substring(0, txttimeFrom.Text.IndexOf(':')));
-      int hourTo = int.Parse(txttimeTo.Text.Substring(0, txttimeTo.Text.IndexOf(':')));
-      List<HiveDowntime> recurringDowntimes = offlineTimes.Where(appointment => ((HiveDowntime)appointment).RecurringId == recurringId).ToList();
-      recurringDowntimes.ForEach(appointment => appointment.StartDate = new DateTime(appointment.StartDate.Year, appointment.StartDate.Month, appointment.StartDate.Day, hourfrom, 0, 0));
-      recurringDowntimes.ForEach(appointment => appointment.EndDate = new DateTime(appointment.EndDate.Year, appointment.EndDate.Month, appointment.EndDate.Day, hourTo, 0, 0));
+      DateTime from, to;
+      if (DateTime.TryParse(dtpFrom.Text, out from) && DateTime.TryParse(dtpTo.Text, out to) && from <= to) {
+        List<HiveDowntime> recurringDowntimes = offlineTimes.Where(appointment => ((HiveDowntime)appointment).RecurringId == recurringId).ToList();
+        recurringDowntimes.ForEach(appointment => appointment.StartDate = new DateTime(appointment.StartDate.Year, appointment.StartDate.Month, appointment.StartDate.Day, from.Hour, 0, 0));
+        recurringDowntimes.ForEach(appointment => appointment.EndDate = new DateTime(appointment.EndDate.Year, appointment.EndDate.Month, appointment.EndDate.Day, to.Hour, 0, 0));
+      } else {
+        MessageBox.Show("Incorrect date format", "Schedule Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+      }
     }
 
@@ -249,22 +253,20 @@
 
     private void chbade_CheckedChanged(object sender, EventArgs e) {
-      txttimeFrom.Visible = !chbade.Checked;
-      txttimeTo.Visible = !chbade.Checked;
+      if(chbade.Checked) {
+        dtpFrom.Value = new DateTime(dtpFrom.Value.Year, dtpFrom.Value.Month, dtpFrom.Value.Day);
+        dtpTo.Value = new DateTime(dtpTo.Value.Year, dtpTo.Value.Month, dtpTo.Value.Day);
+      }
     }
 
     private void dvOnline_OnSelectionChanged(object sender, EventArgs e) {
       if (dvOnline.Selection == SelectionType.DateRange) {
-        dtpFrom.Text = dvOnline.SelectionStart.ToShortDateString();
-        dtpTo.Text = dvOnline.SelectionEnd.Date.ToShortDateString();
-        txttimeFrom.Text = dvOnline.SelectionStart.ToShortTimeString();
-        txttimeTo.Text = dvOnline.SelectionEnd.ToShortTimeString();
+        dtpFrom.Value = dvOnline.SelectionStart;
+        dtpTo.Value = dvOnline.SelectionEnd.Date;
         btCreate.Text = "Create Downtime";
       }
 
       if (dvOnline.Selection == SelectionType.Appointment) {
-        dtpFrom.Text = dvOnline.SelectedAppointment.StartDate.ToShortDateString();
-        dtpTo.Text = dvOnline.SelectedAppointment.EndDate.ToShortDateString();
-        txttimeFrom.Text = dvOnline.SelectedAppointment.StartDate.ToShortTimeString();
-        txttimeTo.Text = dvOnline.SelectedAppointment.EndDate.ToShortTimeString();
+        dtpFrom.Value = dvOnline.SelectedAppointment.StartDate;
+        dtpTo.Value = dvOnline.SelectedAppointment.EndDate;
 
         if (dvOnline.SelectedAppointment.Recurring)
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.Designer.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.Designer.cs	(revision 15956)
@@ -248,8 +248,8 @@
     protected HeuristicLab.Clients.Hive.Views.TreeView.NoDoubleClickTreeView resourcesTreeView;
     private System.Windows.Forms.GroupBox summaryGroupBox;
-    private System.Windows.Forms.Label coresLabel;
-    private System.Windows.Forms.Label memorySummaryLabel;
-    private System.Windows.Forms.Label memoryLabel;
-    private System.Windows.Forms.Label coresSummaryLabel;
+    protected System.Windows.Forms.Label coresLabel;
+    protected System.Windows.Forms.Label memorySummaryLabel;
+    protected System.Windows.Forms.Label memoryLabel;
+    protected System.Windows.Forms.Label coresSummaryLabel;
   }
 }
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs	(revision 15956)
@@ -148,4 +148,16 @@
     }
 
+    public int AssignedCores {
+      get {
+        HashSet<Slave> newAssignedSlaves = new HashSet<Slave>(newAssignedResources.OfType<Slave>());
+        foreach(var slaveGroup in newAssignedResources.OfType<SlaveGroup>()) {
+          foreach(var slave in HiveClient.Instance.GetAvailableResourceDescendants(slaveGroup.Id).OfType<Slave>()) {
+            newAssignedSlaves.Add(slave);
+          }
+        }
+        return newAssignedSlaves.Sum(x => x.Cores.GetValueOrDefault());
+      }
+    }
+
     public IEnumerable<Resource> AssignedResources {
       get { return newAssignedResources; }
@@ -425,5 +437,5 @@
           }
         }
-      } else { // existent, unchanged jobs get all assigned resources
+      } else if(selectedProject.Id == projectId) { // existent, unchanged jobs get all assigned resources
         // update assigned resources
         var assignedJobResources = GetAssignedResourcesForJob(JobId);
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelectorDialog.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelectorDialog.Designer.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelectorDialog.Designer.cs	(revision 15956)
@@ -50,5 +50,7 @@
       this.refreshButton = new System.Windows.Forms.Button();
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
       this.hiveResourceSelector = new HeuristicLab.Clients.Hive.JobManager.Views.HiveProjectSelector();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
       // 
@@ -64,4 +66,6 @@
       this.okButton.Text = "&OK";
       this.okButton.UseVisualStyleBackColor = true;
+      this.errorProvider.SetIconAlignment(this.okButton, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.okButton, 2);
       // 
       // cancelButton
@@ -87,4 +91,9 @@
       this.refreshButton.UseVisualStyleBackColor = true;
       this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
+      this.errorProvider.ContainerControl = this;
       // 
       // hiveResourceSelector
@@ -127,4 +136,5 @@
       this.Text = "Select Project";
       this.Load += new System.EventHandler(this.HiveResourceSelectorDialog_Load);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
 
@@ -137,4 +147,5 @@
     protected System.Windows.Forms.Button refreshButton;
     protected System.Windows.Forms.ToolTip toolTip;
+    protected System.Windows.Forms.ErrorProvider errorProvider;
     protected HiveProjectSelector hiveResourceSelector;
   }
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelectorDialog.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelectorDialog.cs	(revision 15955)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelectorDialog.cs	(revision 15956)
@@ -134,9 +134,17 @@
 
     private void hiveResourceSelector_SelectedProjectChanged(object sender, EventArgs e) {
-      okButton.Enabled = hiveResourceSelector.SelectedProject != null;
+      okButton.Enabled = hiveResourceSelector.SelectedProject != null && hiveResourceSelector.AssignedResources.Any();
     }
 
     private void hiveResourceSelector_SelectedResourcesChanged(object sender, EventArgs e) {
       okButton.Enabled = hiveResourceSelector.AssignedResources.Any();
+
+      if(!hiveResourceSelector.AssignedResources.Any()) {
+        errorProvider.SetError(okButton, "Note: currently no resources are assigned");
+      } else if(hiveResourceSelector.AssignedCores == 0) {
+        errorProvider.SetError(okButton, "Note: currently no resources with cores are assigned");
+      } else {
+        errorProvider.SetError(okButton, string.Empty);
+      }
     }
 
