Visual Studio 2010
Outlook 2007
I am currently extracting all the appointments for a given time period from a calendar in my outlook. I have another outlook user create an alternate calendar and grant me access to the calendar. I can see the calendar in my outlook. I want to be able to grab the appointment details from this users calendar.
Can you please help me out with access the appointment data from another users calendar?
Outlook 2007
I am currently extracting all the appointments for a given time period from a calendar in my outlook. I have another outlook user create an alternate calendar and grant me access to the calendar. I can see the calendar in my outlook. I want to be able to grab the appointment details from this users calendar.
Can you please help me out with access the appointment data from another users calendar?
VB.NET:
Sub FindApptsInTimeFrame()
Dim myStart, myEnd As Date
Dim oCalendar As Outlook.Folder
Dim oItems As Outlook.Items
Dim oResItems As Outlook.Items
Dim oAppt As Outlook.AppointmentItem
Dim strRestriction As String
Dim ClientManger As String = ""
Dim Lob As String = ""
Dim WRNumber As String = ""
Dim wrTitle As String = ""
Dim ReportNumber As String = ""
Dim ReportTitle As String = ""
Dim Category_Form As String = ""
'Hard-code the reporting dates just for simplicity in testing.
myStart = DateValue("11/24/2013")
myEnd = DateValue("12/07/2013")
Dim olFolderCalendar As OlDefaultFolders = OlDefaultFolders.olFolderCalendar
oCalendar = Application.Session.GetDefaultFolder(olFolderCalendar)
[COLOR="#FF0000"]oCalendar.Application.Session.Logon("User,Name", , True, True)[/COLOR] 'This line is not working.
oItems = oCalendar.Items
oItems = Application.Session.GetDefaultFolder(olFolderCalendar).Items.Parent.Folders("RUIT").Items
'Include all recurring calendar items -
'master appointments as well as recurring appointments.
oItems.IncludeRecurrences = True
oItems.Sort("[Start]")
'Specify the filter this way to include appointments that overlap
'with the specified date range but do not necessarily fall entirely within
'the date range.
'Date values in filter do not explicitly include minutes.
strRestriction = "[Start] <= '" & myEnd _
& "' AND [End] >= '" & myStart & "'"
'Restrict the Items collection.
oResItems = oItems.Restrict(strRestriction)
'Sort
oResItems.Sort("[Start]")
'Reformat myStart and myEnd to account for minutes.
myStart = #11/24/2013 12:59:00 AM#
myEnd = #12/7/2013 11:59:59 PM#
For Each oAppt In oResItems
' Test Data output'
Debug.Print("EntryID " & oAppt.EntryID)
Debug.Print("GlobalAppointmentID: " & oAppt.GlobalAppointmentID)
Debug.Print("User: " & oItems.Session.CurrentUser.Name)
Debug.Print("Profile Name: " & oItems.Session.CurrentProfileName)
Debug.Print("Category: " & oAppt.Categories)
Debug.Print("Subject: " & oAppt.Subject)
Debug.Print("Title: " & oAppt.Location)
Debug.Print("Time: " & oAppt.Duration / 60)
Debug.Print("Form: " & oAppt.FormDescription.DisplayName)
Debug.Print("Caption: " & oAppt.GetInspector.Caption)
Debug.Print("Create Time: " & oAppt.CreationTime)
Debug.Print("Start Date UTC: " & oAppt.StartUTC)
Debug.Print("End Date UTC: " & oAppt.EndUTC)
Debug.Print("Start: " & oAppt.Start)
Debug.Print("End: " & oAppt.End)
Debug.Print("Body: " & oAppt.Body)
Debug.Print("StartofWeek: " & myStart)
Debug.Print("EndofWeek: " & myEnd)
Debug.Print("LastModificatioinTime: " & oAppt.LastModificationTime)
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("Client Manager: NA")
ClientManger = "NA"
Else : Debug.Print("Client Manager: " & oAppt.UserProperties("ClientManger").Value())
ClientManger = oAppt.UserProperties("ClientManger").Value()
End If
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("LOB: NA")
Lob = "NA"
Else : Debug.Print("LOB: " & oAppt.UserProperties("Lob").Value())
Lob = oAppt.UserProperties("Lob").Value()
End If
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("WRNumber: NA")
WRNumber = "NA"
Else : Debug.Print("WR#: " & oAppt.UserProperties("WRNumber").Value())
WRNumber = oAppt.UserProperties("WRNumber").Value()
End If
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("Wr Title: NA")
wrTitle = "NA"
Else : Debug.Print("Wr Title: " & oAppt.UserProperties("wrTitle").Value())
wrTitle = oAppt.UserProperties("wrTitle").Value()
End If
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("Report Number: NA")
ReportNumber = "NA"
Else : Debug.Print("Report Number: " & oAppt.UserProperties("ReportNumber").Value())
ReportNumber = oAppt.UserProperties("ReportNumber").Value()
End If
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("Report Title: NA")
ReportTitle = "NA"
Else : Debug.Print("Report Title: " & oAppt.UserProperties("ReportTitle").Value())
ReportTitle = oAppt.UserProperties("ReportTitle").Value()
End If
If oAppt.FormDescription.DisplayName <> "RUIT - Appointments" Then
Debug.Print("Category_Form: NA")
Category_Form = "NA"
Else : Debug.Print("Category_Form: " & oAppt.UserProperties("cmbCategory").Value())
Category_Form = oAppt.UserProperties("cmbCategory").Value()
End If
Debug.Print("-------------------------------------------------------- ")
Next
End Sub