diff --git a/src/com/android/providers/calendar/CalendarProvider2.java b/src/com/android/providers/calendar/CalendarProvider2.java
index f033b94..a50f903 100644
--- a/src/com/android/providers/calendar/CalendarProvider2.java
+++ b/src/com/android/providers/calendar/CalendarProvider2.java
@@ -2296,8 +2296,10 @@
                 try {
                     while (cursor.moveToNext()) {
                         long id = cursor.getLong(0);
-                        result += deleteEventInternal(id, callerIsSyncAdapter);
+                        result += deleteEventInternal(id, callerIsSyncAdapter, true /* isBatch */);
                     }
+                    scheduleNextAlarm(false /* do not remove alarms */);
+                    triggerAppWidgetUpdate(-1 /* changedEventId */);
                 } finally {
                     cursor.close();
                     cursor = null;
@@ -2312,7 +2314,7 @@
                             + "doesn't support selection based deletion for type "
                             + match);
                 }
-                return deleteEventInternal(id, callerIsSyncAdapter);
+                return deleteEventInternal(id, callerIsSyncAdapter, false /* isBatch */);
             }
             case ATTENDEES:
             {
@@ -2420,7 +2422,7 @@
         }
     }
 
-    private int deleteEventInternal(long id, boolean callerIsSyncAdapter) {
+    private int deleteEventInternal(long id, boolean callerIsSyncAdapter, boolean isBatch) {
         int result = 0;
         String selectionArgs[] = new String[] {String.valueOf(id)};
 
@@ -2471,8 +2473,10 @@
             cursor = null;
         }
 
-        scheduleNextAlarm(false /* do not remove alarms */);
-        triggerAppWidgetUpdate(-1);
+        if (!isBatch) {
+            scheduleNextAlarm(false /* do not remove alarms */);
+            triggerAppWidgetUpdate(-1 /* changedEventId */);
+        }
 
         // Delete associated data; attendees, however, are deleted with the actual event so
         // that the sync adapter is able to notify attendees of the cancellation.
