rendered paste body@@ -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;
}