tags:

views:

194

answers:

1

In my outlook I have 1 exchange connection and 2 Personal Folders.

I want to go fetch ALL items from the calendars and contacts so I use:

           /**
             * Create outlook application
             */
            Outlook.Application oApp = new Outlook.Application();
            Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
            oNS.Logon(Missing.Value, Missing.Value, true, true);

            /**
             * Loop through all the folders
             */
            foreach (Outlook.MAPIFolder oFolder in oNS.Folders)
            {
                if (oFolder.Name == "Public Folders")
                {
                    break;
                }

                /**
                 * Get calendar items
                 */
                //Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
                Outlook.MAPIFolder oCalendar = oFolder.Folders[5];
                Outlook.Items oCalendarItems = oCalendar.Items;

                //Outlook.MAPIFolder oContacts = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
                Outlook.MAPIFolder oContacts = oFolder.Folders[7];
                Outlook.Items oContactItems = oContacts.Items;

But this does not work oFolder.Folders[5] is not always 5 for the calendar, sometimes it's a different value.

I cannot find the items by name oFolder.Folders["Calendar"]; because in Dutch the folder will be named "Agenda".

Usually I use: Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);

But then I only get the default calendar. How can I get the other calendars?

+1  A: 

Hi,

I think you would have to roll through youe list of folders and look at the Folder.DefaultItemType Property which returns a OlItemType type you would want the ones that return olAppointmentItem & olContactItem

Marcus

76mel
Thank's this is exactly what I did now :-)
Rogier21