internal static ICollection <String> GetCalendarList(String selectedCalendar)
        {
            Folder currentFolder = GetApplication().ActiveExplorer().CurrentFolder as Folder;

            m_calendars = new Dictionary <String, MAPIFolder>();
            var            navPane   = GetApplication().ActiveExplorer().NavigationPane;
            CalendarModule objModule = (CalendarModule)navPane.Modules.GetNavigationModule(OlNavigationModuleType.olModuleCalendar);

            // iterate over all groups and add the selected calendars to the list
            // add the previously selected calendar and make sure it's selected
            // don't include the default calendar
            NavigationGroups objGroup = objModule.NavigationGroups;

            foreach (NavigationGroup navGroup in objGroup)
            {
                foreach (NavigationFolder navFolder in navGroup.NavigationFolders)
                {
                    if (navFolder.DisplayName.Equals(MY_CALENDAR_DEFAULT_NAME))
                    {
                        continue;
                    }
                    var isSelectedCalendar = navFolder.DisplayName.Equals(selectedCalendar);
                    if (navFolder.IsSelected || isSelectedCalendar)
                    {
                        navFolder.IsSelected = true;
                        m_calendars.Add(navFolder.DisplayName, navFolder.Folder);
                    }
                }
            }
            return(m_calendars.Keys);
        }
        private void Explorer_BeforeFolderSwitch(object aNewFolder, ref bool Cancel)
        {
            MAPIFolder     folder      = (aNewFolder as MAPIFolder);
            CalendarModule modCalendar = (CalendarModule)Globals.ThisAddIn.Application.ActiveExplorer().NavigationPane.Modules.GetNavigationModule(OlNavigationModuleType.olModuleCalendar);

            if (folder != null)
            {
                try
                {
                    if (folder.DefaultItemType == OlItemType.olAppointmentItem)
                    {
                        HookupCalendarEvents(folder);
                    }
                }
                finally
                {
                }
            }
        }