After you schedule a recurring appointment in your Outlook calendar, if you want to remove the reminders of the occurrences falling on weekends, you can utilize the method introduced in this article.
Do you have any recurring appointments in your Outlook calendar? For instance, you have scheduled a recurring appointment occurring every 4 days. In this case, some occurrences of this appointment would fall on weekends. At this point, the reminders of these weekend occurrences may be useless for you. Therefore, you would like to remove their reminders. Focusing on this requirement, here we will introduce an effective and convenient way.
Remove the Reminders for the Weekend Occurrences of a Recurring Appointment
- At the very outset, launch Outlook application.
- Then, turn to Outlook VBA editor via “Alt + F11” keys.
- Next, put the following VBA code into a project or module.
Sub RemoveRemindersOfWeekendOccurrencesOfRecurringAppointments() Dim objAppointment As Outlook.AppointmentItem Dim objCalendar As Outlook.Folder Dim objCalendarItems As Outlook.Items Dim objRecurrencePattern As RecurrencePattern Dim dStartDate, dEndDate As Date Dim dCurrentDate, dActualTime As Date Dim strFilter As String Dim objFoundAppointment As Outlook.AppointmentItem Dim objOccurrence As Outlook.AppointmentItem Set objAppointment = Application.ActiveExplorer.Selection.Item(1) Set objCalendar = Application.Session.GetDefaultFolder(olFolderCalendar) Set objCalendarItems = objCalendar.Items objCalendarItems.Sort "[Start]", False objCalendarItems.IncludeRecurrences = True Set objRecurrencePattern = objAppointment.GetRecurrencePattern dStartDate = Format(objRecurrencePattern.PatternStartDate, "MM/DD/YYYY") dEndDate = Format(objRecurrencePattern.PatternEndDate, "MM/DD/YYYY") dCurrentDate = dStartDate Do Until dCurrentDate >= dEndDate If Weekday(dCurrentDate) = vbSaturday Or Weekday(dCurrentDate) = vbSunday Then dActualTime = dCurrentDate & " " & objRecurrencePattern.StartTime dActualTime = Format(dActualTime, "ddddd hh:mm:ss AMPM") strFilter = "[Start] <= " & Chr(34) & dCurrentDate & " 11:59 PM" & Chr(34) & " AND [End] > " & Chr(34) & dCurrentDate & " 00:00 AM" & Chr(34) & " AND [Subject] = " & Chr(34) & objAppointment.Subject & Chr(34) Set objFoundAppointment = objCalendarItems.Find(strFilter) If Not objFoundAppointment Is Nothing Then 'Get the occurrence on weekends Set objOccurrence = objRecurrencePattern.GetOccurrence(dActualTime) 'Remove the reminders With objOccurrence .Subject = "(C)" & objAppointment.Subject .ReminderSet = False .Save End With End If End If dCurrentDate = DateAdd("d", 1, dCurrentDate) Loop End Sub
- After that, you can close the window.
- Subsequently, follow the steps shown in the article “How to Run VBA Code in Your Outlook” to add this macro to Quick Access Toolbar.
- Eventually, run this macro now.
- First off, select one occurrence of the recurring appointment.
- Next, click the macro button in Quick Access Toolbar.
- After the macro completes, the reminders of the occurrences scheduled on weekends will be removed. Also, the subjects will be changed on basis of the code, like the following screenshot:
Shield Outlook from Corruption
Like other common files, such as Word document, Excel worksheet, Outlook data file is vulnerable. Thereby, you should take some powerful precautions to reduce the chances of Outlook corruptions. For example, you have to persist in a regular PST data backup. What’s more, in order to prevent data loss, we ought to keep an Outlook repair tool in vicinity, like DataNumen Outlook Repair. It is able to repair Outlook problems with effortless ease.
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including sql corruption and outlook repair software products. For more information visit www.datanumen.com