Mantenga las reuniones canceladas en su calendario como referencia

Mantenga las reuniones canceladas en su calendario como referencia

Me gusta realizar un seguimiento de las reuniones incluso después de que fueron canceladas. Me ayuda a volver a revisar la actividad realizada en varios temas y, a veces, a explicar por qué no asistí a su reunión. (Por ejemplo, "Hubo una reunión recurrente al mismo tiempo, pero el presidente la canceló y eliminó toda la serie en lugar de solo las futuras").

Intenté usar el script publicado enslipstick.comya que algunos resultados de búsqueda diferentes seguían remitiéndome al mismo artículo. Sin embargo, no funcionó del todo bien para mí. hay una manera mas facil?

Aquí hay una copia de ese guión:

Sub CopyMeetingtoAppointment(oRequest As MeetingItem)

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Canceled" Then
  Exit Sub
End If

Dim oAppt As AppointmentItem
Dim cAppt As AppointmentItem

Set cAppt = oRequest.GetAssociatedAppointment(True)
Set oAppt = Application.CreateItem(olAppointmentItem)

'I added (Rule) to the subject so I could see the rule was working. 
    oAppt.Subject = "(Rule) Canceled: " & cAppt.Subject
    oAppt.Start = cAppt.Start
    oAppt.Duration = cAppt.Duration
    oAppt.Location = cAppt.Location
    oAppt.Display
    oAppt.Save

    Set oAppt = Nothing
    Set cAppt = Nothing
End Sub

Se supone que debes configurar una regla que lo acompañe y creo que esa parte está bien:

Captura de pantalla

Respuesta1

Después de jugar con él, encontré una manera mucho más fácil de copiar el evento del calendario a un elemento de cita: usar el método de copia real. Lo probé en varios escenarios, especialmente con reuniones recurrentes, y funcionó a la perfección. Lo configuré para eliminar cualquier recordatorio y dejarte libre durante ese tiempo. Además, agregué una nota sobre quién lo canceló. Si hay otras mejoras que la gente pueda encontrar, las agradecería.

Sub CopyMeetingToAppointment(oRequest As MeetingItem)

    'Double-check in case of accidental run
    If oRequest.MessageClass <> "IPM.Schedule.Meeting.Canceled" Then Exit Sub

    'Declare the objects
    Dim oAppt As AppointmentItem
    Dim cAppt As AppointmentItem
    Dim cancelMessage As String

    'Create the objects
    Set cAppt = oRequest.GetAssociatedAppointment(True)
    Set oAppt = cAppt.Copy

    'Create the cancel message
    cancelMessage = vbNewLine & vbNewLine & " - - - - - - - - - - - - - - - - - - - " & vbNewLine & _
        "Meeting was canceled by " & oRequest.SenderName & " <" & oRequest.SenderEmailAddress & "> on " & oRequest.ReceivedTime

    'Modify the copied appointment
    With oAppt
        If UCase(Left(.Subject, 6)) = "COPY: " Then .Subject = Mid(.Subject, 7)
        .Subject = "[BKP] " & .Subject
        .Body = .Body & cancelMessage
        .ReminderSet = False
        .BusyStatus = olFree
        .Save
    End With

    'Cleanup
    Set oAppt = Nothing
    Set cAppt = Nothing

End Sub

información relacionada