diff --git a/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs b/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs
index 540c1ecd..09f414cf 100644
--- a/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs
+++ b/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs
@@ -966,9 +966,11 @@ private OlSensitivity getPrivacy(String gVisibility, OlSensitivity? oSensitivity
/// Outlook's current setting
private OlBusyStatus getAvailability(String gTransparency, OlBusyStatus? oBusyStatus) {
SettingsStore.Calendar profile = Sync.Engine.Calendar.Instance.Profile;
-
+ List persistOutlookStatus = new List { OlBusyStatus.olTentative.ToString(), OlBusyStatus.olOutOfOffice.ToString(), "olWorkingElsewhere" };
+
if (!profile.SetEntriesAvailable)
- return (gTransparency == "transparent") ? OlBusyStatus.olFree : OlBusyStatus.olBusy;
+ return (gTransparency == "transparent") ? OlBusyStatus.olFree :
+ persistOutlookStatus.Contains(oBusyStatus.ToString()) ? (OlBusyStatus)oBusyStatus: OlBusyStatus.olBusy;
OlBusyStatus overrideFbStatus = OlBusyStatus.olFree;
try {
@@ -982,14 +984,16 @@ private OlBusyStatus getAvailability(String gTransparency, OlBusyStatus? oBusySt
} else {
if (profile.TargetCalendar.Id == Sync.Direction.OutlookToGoogle.Id) { //Availability enforcement is in other direction
if (oBusyStatus == null)
- return (gTransparency == "transparent") ? OlBusyStatus.olFree : OlBusyStatus.olBusy;
+ return (gTransparency == "transparent") ? OlBusyStatus.olFree :
+ persistOutlookStatus.Contains(oBusyStatus.ToString()) ? (OlBusyStatus)oBusyStatus : OlBusyStatus.olBusy;
else
return (OlBusyStatus)oBusyStatus;
} else {
if (!profile.CreatedItemsOnly || (profile.CreatedItemsOnly && oBusyStatus == null))
return overrideFbStatus;
else
- return (gTransparency == "transparent") ? OlBusyStatus.olFree : OlBusyStatus.olBusy;
+ return (gTransparency == "transparent") ? OlBusyStatus.olFree :
+ persistOutlookStatus.Contains(oBusyStatus.ToString()) ? (OlBusyStatus)oBusyStatus : OlBusyStatus.olBusy;
}
}
}
diff --git a/src/OutlookGoogleCalendarSync/SettingsStore/Calendar.cs b/src/OutlookGoogleCalendarSync/SettingsStore/Calendar.cs
index 600eecd4..2f514123 100644
--- a/src/OutlookGoogleCalendarSync/SettingsStore/Calendar.cs
+++ b/src/OutlookGoogleCalendarSync/SettingsStore/Calendar.cs
@@ -146,6 +146,7 @@ [DataMember] public Boolean OutlookGalBlocked {
[DataMember] public bool SetEntriesPrivate { get; set; }
[DataMember] public String PrivacyLevel { get; set; }
[DataMember] public bool SetEntriesAvailable { get; set; }
+ /// Set availability status for all entries
[DataMember] public String AvailabilityStatus { get; set; }
[DataMember] public bool SetEntriesColour { get; set; }
/// Set all Outlook appointments to this OlCategoryColor