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