In Lotus Notes, a user has recurring meetings scheduled. When the reminder comes up, they acknowledge the dialog normally.
The next day, the recurring meeting will show up again along with any others that have accumulated.
In the forums and Lotus’ Technotes they indicate that you should get a handle to the user’s “CalendarSettings” profile (some refer to the “CalendarProfile” profile but you really need “CalendarSettings”) and reset the “lastAlarmDate” field to “Now”.
Using NotesPeek I could see that the user that I was dealing with had 3 CalendarSettings profiles. One for their current name, one for an early variation on their name with which they had begun their employ with us and one with the name of one of our Junior Administrators in it.
The correct profile (user’s current name) also matched the owner’s field name in the CalendarProfile but the “lastAlarmDate” field was already current. So this wasn’t going to help me. Figuring that the CalendarSettings document was likely damaged in some way, I created the following agent to blow away ALL of the calendarsettings profiles.
Get the user to exit Lotus Notes completely, then add the following agent to their mail file and run it. Don’t forget to remove it afterwards.
Then have them open Lotus Notes. They will see ALL their old reminders which they should just acknowledge. Also, some settings will need to be redone: they will go back to the week view of the calendar if they had changed it to some other view, etc.
But, compared with the annoyance of more and more accumulating meeting reminders, the reset is a minor issue.
Name: Getcalendarsettings
Last Modification: 02/19/2009 04:05:54 PM
Comment: [Not Assigned]
Shared Agent: Yes
Type: LotusScript
State: Enabled
Trigger: Manually From Actions Menu
Acts On: None
LotusScript Code:
Option Public
Option Declare
Sub Initialize
Dim sess As New notessession
Dim coll As notesdocumentcollection
Dim doc As NotesDocument
Dim docdel As NotesDocument
Set coll = sess.CurrentDatabase.GetProfileDocCollection(“Calendarsettings”)
Set doc = coll.GetFirstDocument
While Not doc Is Nothing
Set docDel = doc
Set doc = coll.GetNextDocument(doc)
If Not docDel Is Nothing Then
Call docDel.Remove(True)
End If
Wend
End Sub