GetOccurrence always throws exception

I've been struggling with exactly the same issue for the last couple of hours, and finally I have arrived at a solution. It seems as though GetOccurrence() always throws that error unless the DateTime value that is passed matches an instance of the recurring appointment - and the thing that caught me out was that the DateTime value has to match on both Date AND Time.

Here's a version of your code that takes the time from the RecurrencePattern and adds it to the DateTime value passed to GetOccurence(), which then should correctly find any instance of the appointment that falls on the selected date.

Dim item As Outlook.AppointmentItem = Nothing 
item = calFolder.Items.Item(itemIndex) 

If item.IsRecurring Then 
    Dim rp As Outlook.RecurrencePattern = Nothing 
    rp = item.GetRecurrencePattern() 

    Dim dt2 as DateTime = DateTime.Parse("8/28/2012")
    dt2 = dt2.AddHours(item.Start.Hour)
    dt2 = dt2.AddMinutes(item.Start.Minute)
    dt2 = dt2.AddSeconds(item.Start.Second)

    item.Close(Outlook.OlInspectorClose.olDiscard) 
    CleanUpComObject(item) 
    item = Nothing 
    GC.Collect()  

    Try 
        rp.GetOccurrence(dt2)

    Catch ex1 As System.Runtime.InteropServices.COMException

// Do Nothing, let this error go.  No instance of the appointment falls on this date.

    Catch ex As System.Exception
        Debug.WriteLine("Ex with GetOccurrence: " & ex.Message) 
    End Try 

End If 

Note that I am a C# developer, so there may well be syntax errors in the above as it's an amalgamation of the OP's code and my code converted from C#, and has not been passed through a compiler.