Outlook 会议发件人的提醒选项覆盖我的提醒默认设置

Outlook 会议发件人的提醒选项覆盖我的提醒默认设置

在我的 Outlook 中,我将默认提醒选项设置为会议开始前 5 分钟。但是,我的老板却将其设置为不设置任何提醒。在过去的几个月里,我老板设置的所有会议邀请都已放入我的日历中,而没有设置任何提醒,结果我错过了会议的开始。其他人的会议邀请也按预期设置为我的默认提醒。

有谁见过这种情况并知道是什么原因造成的/如何解决?

我们使用的是最新版本的 Outlook 和 Office 365(当前版本为 2106)。

答案1

如果高级人员将之前的约会(未设置提醒)复制到新的约会并保存,那么当发件人删除提醒标志时,就会发生您所看到的情况。

当你收到这样的约会并接受它时,你唯一的办法就是手动设置提醒并再次保存。

我必须想办法解决这些问题。

答案2

VBA 对我来说很管用。解决方案基于https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created

1. 在 ThisOutlookSession 模块顶部:

Option Explicit

'Respond when a new calendar item is created.
'https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created

Private WithEvents colItems As Outlook.Items 'col = Collection

2. 在 ThisOutlookSession 模块中:

Private Sub Application_Startup()
'Defines a collection of items from the calendar folder at application startup. Must be in ThisOutlookSession.
'This way we can respond when a new calendar item is created
'https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created

Dim oFolder As Outlook.MAPIFolder
Dim oNS As Outlook.NameSpace

    Set oNS = Application.GetNamespace("MAPI")
    Set oFolder = oNS.GetDefaultFolder(olFolderCalendar)
    Set colItems = oFolder.Items
    
    Set oNS = Nothing
    Set oFolder = Nothing

End Sub

Sub colItems_ItemAdd(ByVal item As Object)
'Respond when a new calendar item of any wort is created.
'No effect on edits to existing calendar items (to capture that event, make a colItems_ItemChange) or deleting an item (colItems_ItemRemove)
'Must be in ThisOutlookSession.
'https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created
'Guaranteed to fail if 16 or more items are added at once - that's a MAPI limitation

On Error GoTo ErrHandler

Dim AddReminder As VbMsgBoxResult

    With item
        'If no reminder set, offer to add 1h reminder.
        'https://docs.microsoft.com/en-us/office/vba/api/outlook.appointmentitem.reminderset
        If .ReminderSet = False Then 'For some reason, this may fail when creating an event (day-level item) directly from the calendar grid, especially if you have multiple calendars from different open and overlaid.
            AddReminder = MsgBox("No reminder set. Would you like to add a one hour reminder to " & """" & item.Subject & """" & " starting " & item.Start & "?", vbYesNo) 'Especially useful when meeting scheduled from email invite.
            If AddReminder = vbYes Then
                .ReminderSet = True 'Yes, this is necessary. Setting a reminder time window doesn't automatically enable the reminder.
                .ReminderMinutesBeforeStart = 60
            End If
        End If
    End With

ExitSub:
    Exit Sub

ErrHandler:
    If Err.Number = -2147221233 Then 'Method 'ReminderSet' of object '_AppointmentItem' failed
        GoTo ExitSub
    Else
        MsgBox "Error " & Err.Number & ":" & vbCrLf & Err.Description
    End If
    
End Sub

现在无需提醒即可预约(或接收预约)。会弹出一个对话框,(a)告知您没有提醒,(b)提供 60 分钟提醒。好极了!

相关内容