diff --git a/app/controllers/calendar/date.php b/app/controllers/calendar/date.php
index 5c1db1ab3442a4bd3f148633e73dfdc36d391c0f..72f3a405931cf766e17c2ef57eb6890828f3188e 100644
--- a/app/controllers/calendar/date.php
+++ b/app/controllers/calendar/date.php
@@ -783,7 +783,10 @@ class Calendar_DateController extends AuthenticatedController
                 $this->selected_date->setTimestamp($this->date->begin);
             }
         }
+        $this->date_is_in_multiple_calendars = count($this->date->calendars) > 1;
+
         $this->repetition_handling  = Request::get('repetition_handling', 'create_exception');
+        $this->multiple_calendar_handling = Request::get('multiple_calendar_handling', 'delete_from_mine');
         if (Request::submitted('delete')) {
             $delete_whole_date = false;
             CSRFProtection::verifyUnsafeRequest();
@@ -801,6 +804,7 @@ class Calendar_DateController extends AuthenticatedController
                         );
                         $this->response->add_header('X-Dialog-Close', '1');
                         $this->render_nothing();
+                        return;
                     } else {
                         PageLayout::postError(
                             sprintf(
@@ -809,11 +813,11 @@ class Calendar_DateController extends AuthenticatedController
                             )
                         );
                     }
-                } elseif ($this->repetition_handling === 'delete_all') {
+                } elseif ($this->repetition_handling === 'delete_all' && $this->multiple_calendar_handling === 'delete_all') {
                     $delete_whole_date = true;
                 }
             } else {
-                $delete_whole_date = true;
+                $delete_whole_date = $this->multiple_calendar_handling === 'delete_all';
             }
             if ($delete_whole_date) {
                 if ($this->date->delete()) {
@@ -831,6 +835,21 @@ class Calendar_DateController extends AuthenticatedController
                         PageLayout::postError(_('Der Termin konnte nicht gelöscht werden!'));
                     }
                 }
+            } elseif ($this->multiple_calendar_handling === 'delete_from_mine') {
+                $result = CalendarDateAssignment::deleteBySQL(
+                    '`calendar_date_id` = :calendar_date_id AND `range_id` = :current_user_id',
+                    [
+                        'calendar_date_id' => $this->date->id,
+                        'current_user_id'  => User::findCurrent()->id
+                    ]
+                );
+                if ($result) {
+                    PageLayout::postSuccess(_('Der Termin wurde aus Ihrem Kalender gelöscht.'));
+                    $this->response->add_header('X-Dialog-Close', '1');
+                    $this->render_nothing();
+                } else {
+                    PageLayout::postError(_('Der Termin konnte nicht aus Ihrem Kalender gelöscht werden!'));
+                }
             }
         }
     }
diff --git a/app/views/calendar/date/delete.php b/app/views/calendar/date/delete.php
index ccb982973d5700158800bff93a8fa942a3b8339c..7e0db637f8e2dd5a384b9125cb2ee73afa8e2d92 100644
--- a/app/views/calendar/date/delete.php
+++ b/app/views/calendar/date/delete.php
@@ -7,6 +7,7 @@
             <legend><?= _('Es handelt sich um einen Termin in einer Terminserie. Was möchten Sie tun?') ?></legend>
             <label>
                 <input type="radio" name="repetition_handling" value="create_exception"
+                       data-hides="#calendar_delete_date_form_delete_question"
                     <?= $repetition_handling === 'create_exception' ? 'checked' : '' ?>>
                 <?= sprintf(
                     _('Am %s soll aus dem Einzeltermin eine Ausnahme der Terminserie werden.'),
@@ -15,11 +16,28 @@
             </label>
             <label>
                 <input type="radio" name="repetition_handling" value="delete_all"
+                       data-shows="#calendar_delete_date_form_delete_question"
                     <?= $repetition_handling === 'delete_all' ? 'checked' : '' ?>>
                 <?= _('Die gesamte Terminserie soll gelöscht werden.') ?>
             </label>
         </fieldset>
-    <? else : ?>
+    <? endif ?>
+    <? if ($date_is_in_multiple_calendars) : ?>
+        <fieldset id="calendar_delete_date_form_delete_question" <?= $date_has_repetitions ? 'style="display: none"' : '' ?>>
+            <legend><?= _('Der Termin ist in mehreren Kalendern eingetragen. Was möchten Sie tun?') ?></legend>
+            <label>
+                <input type="radio" name="multiple_calendar_handling" value="delete_from_mine"
+                       <?= $multiple_calendar_handling === 'delete_from_mine' ? 'checked' : '' ?>>
+                <?= _('Den Termin nur aus meinem Kalender löschen.') ?>
+            </label>
+            <label>
+                <input type="radio" name="multiple_calendar_handling" value="delete_all"
+                    <?= $multiple_calendar_handling === 'delete_all' ? 'checked' : '' ?>>
+                <?= _('Den Termin aus allen Kalendern löschen.') ?>
+            </label>
+        </fieldset>
+    <? endif ?>
+    <? if (!$date_has_repetitions && !$date_is_in_multiple_calendars) : ?>
         <?= MessageBox::warning(_('Soll der folgende Termin wirklich gelöscht werden?')) ?>
     <? endif ?>
     <fieldset>