@@ -415,10 +417,23 @@ open_calendar (ECalBackendSync *backend, g_message ("Could not get the hierarchy \n"); g_strfreev (split_path); - } + } else { + /* Rescan to see if this is any new calendar */ + ExchangeHierarchy *hier; + + hier = exchange_account_get_hierarchy_by_type (cbex->account, EXCHANGE_HIERARCHY_PERSONAL); + g_object_ref (hier->toplevel); + e_folder_exchange_set_rescan_tree (hier->toplevel, TRUE); + exchange_hierarchy_scan_subtree (hier, hier->toplevel, ONLINE_MODE); + e_folder_exchange_set_rescan_tree (hier->toplevel, FALSE); + g_object_unref (hier->toplevel); + + cbex->folder = exchange_account_get_folder (cbex->account, uristr); + if (!cbex->folder) + e_cal_backend_notify_error (E_CAL_BACKEND (cbex), _("Could not find the calendar")); + } if (!cbex->folder) { - e_cal_backend_notify_error (E_CAL_BACKEND (cbex), _("Could not find the folder")); g_mutex_unlock (cbex->priv->open_lock); return GNOME_Evolution_Calendar_NoSuchCal; }