diff --git a/README.md b/README.md
index c06abd2a..f84db323 100644
--- a/README.md
+++ b/README.md
@@ -29,17 +29,17 @@ If you find a bug, [help squash it](https://github.com/phw198/OutlookGoogleCalen


-### Latest Alpha Release: [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/tag/v2.7.6-alpha) [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/v2.7.6-alpha)
+### Latest Alpha Release: [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/tag/v2.7.7-alpha) [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/v2.7.7-alpha)
-:floppy_disk: [Installer](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.6-alpha/Setup.exe)
- [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.6-alpha/Setup.exe)
+:floppy_disk: [Installer](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.7-alpha/Setup.exe)
+ [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.7-alpha/Setup.exe)
-:package: [Portable ZIP](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.6-alpha/Portable_OGCS_v2.7.6.zip)
- [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.6-alpha/Portable_OGCS_v2.7.6.zip)
+:package: [Portable ZIP](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.7-alpha/Portable_OGCS_v2.7.7.zip)
+ [](https://github.com/phw198/OutlookGoogleCalendarSync/releases/download/v2.7.7-alpha/Portable_OGCS_v2.7.7.zip)
:information_source: Upgrades to this release
- 
- 
+ 
+ 
## Functionality
diff --git a/docs/Release Notes.md b/docs/Release Notes.md
index 341b7d0f..b3de54bf 100644
--- a/docs/Release Notes.md
+++ b/docs/Release Notes.md
@@ -1,6 +1,20 @@
| Release Notes |
|:---|
+# v2.7.7.0 - Alpha
+
+**Enhancements**
+- Better timing of auto-retry for when quota renewed after API exhausted
+- Option to configure the browser's User Agent in the GUI
+- Options to use (or not) Outlook/Google calendar defaults for reminders
+
+**Bugfix**
+- Persist a push sync through a restart of Outlook
+- Persist selection of correct calendar when alternate mailbox is temporarily unavailable
+- Select correct alternate mailbox on startup
+- Handle a Google event having an end date _before_ the start date
+- Reminder DND window not always applying correctly
+
# v2.7.6.0 - Alpha
**Enhancements**
diff --git a/docs/latest_zip_release.md b/docs/latest_zip_release.md
index 1b9a2dea..97fab607 100644
--- a/docs/latest_zip_release.md
+++ b/docs/latest_zip_release.md
@@ -1,3 +1,3 @@
# Latest ZIP Release
-**Alpha**: [v2.7.6.0](https://github.com/phw198/OutlookGoogleCalendarSync/releases/tag/v2.7.6-alpha)
+**Alpha**: [v2.7.7.0](https://github.com/phw198/OutlookGoogleCalendarSync/releases/tag/v2.7.7-alpha)
**Beta**: [v2.7.0.0](https://github.com/phw198/OutlookGoogleCalendarSync/releases/latest)
diff --git a/nuget-build.bat b/nuget-build.bat
index 43e93ff8..2c89cafd 100644
--- a/nuget-build.bat
+++ b/nuget-build.bat
@@ -1,4 +1,4 @@
-set RELEASE=2.7.6-alpha
+set RELEASE=2.7.7-alpha
cd src
del Releases\OutlookGoogleCalendarSync-%RELEASE%-full.nupkg
@@ -11,7 +11,7 @@ REM src\packages\squirrel.windows.1.7.8\tools\signtool.exe sign /n "Open Source
REM In VS Package Manager
REM PM> Install-Package squirrel.windows -Version 1.7.8
-REM PM> packages\squirrel.windows.1.7.8\tools\Squirrel --releasify OutlookGoogleCalendarSync.2.7.6-alpha.nupkg --no-msi --loadingGif=..\docs\images\ogcs128x128-animated.gif
+REM PM> packages\squirrel.windows.1.7.8\tools\Squirrel --releasify OutlookGoogleCalendarSync.2.7.7-alpha.nupkg --no-msi --loadingGif=..\docs\images\ogcs128x128-animated.gif
REM Sign the Squirrel install executable
REM src\packages\squirrel.windows.1.7.8\tools\signtool.exe sign /n "Open Source Developer, Paul Woolcock" /tr http://time.certum.pl/ /td sha256 /fd sha256 /v src\Releases\Setup.exe
@@ -19,9 +19,14 @@ REM src\packages\squirrel.windows.1.7.8\tools\signtool.exe sign /n "Open Source
REM Build ZIP
PAUSE
cd src\OutlookGoogleCalendarSync\bin\Release
-"c:\Program Files\7-Zip\7z.exe" u Portable_OGCS_v2.7.5.zip -u- -up0q0r2x2y2z1w2!Portable_OGCS_v2.7.6.zip *.dll *.ps1 ErrorReportingTemplate.json logger.xml tzdb.nzd OutlookGoogleCalendarSync.exe OutlookGoogleCalendarSync.exe.config Console\*
+"c:\Program Files\7-Zip\7z.exe" u Portable_OGCS_v2.7.6.zip -u- -up0q0r2x2y2z1w2!Portable_OGCS_v2.7.7.zip *.dll *.ps1 ErrorReportingTemplate.json logger.xml tzdb.nzd OutlookGoogleCalendarSync.exe OutlookGoogleCalendarSync.exe.config Console\*
-"c:\Program Files\7-Zip\7z.exe" e Portable_OGCS_v2.7.5.zip Microsoft.Office.Interop.Outlook.DLL
-"c:\Program Files\7-Zip\7z.exe" a Portable_OGCS_v2.7.6.zip Microsoft.Office.Interop.Outlook.DLL
+"c:\Program Files\7-Zip\7z.exe" e Portable_OGCS_v2.7.6.zip Microsoft.Office.Interop.Outlook.DLL
+"c:\Program Files\7-Zip\7z.exe" e Portable_OGCS_v2.7.6.zip stdole.dll
+"c:\Program Files\7-Zip\7z.exe" e Portable_OGCS_v2.7.6.zip "Windows Defender SmartScreen Unblock.ps1"
+
+"c:\Program Files\7-Zip\7z.exe" a Portable_OGCS_v2.7.7.zip Microsoft.Office.Interop.Outlook.DLL
+"c:\Program Files\7-Zip\7z.exe" a Portable_OGCS_v2.7.7.zip stdole.dll
+"c:\Program Files\7-Zip\7z.exe" a Portable_OGCS_v2.7.7.zip "Windows Defender SmartScreen Unblock.ps1"
cd ..\..\..\..
\ No newline at end of file
diff --git a/src/OutlookGoogleCalendarSync/OutlookGoogleCalendarSync.nuspec b/src/OutlookGoogleCalendarSync/OutlookGoogleCalendarSync.nuspec
index 71797356..d8b160fa 100644
--- a/src/OutlookGoogleCalendarSync/OutlookGoogleCalendarSync.nuspec
+++ b/src/OutlookGoogleCalendarSync/OutlookGoogleCalendarSync.nuspec
@@ -2,7 +2,7 @@
OutlookGoogleCalendarSync
- 2.7.6-alpha
+ 2.7.7-alpha
Outlook Google Calendar Sync
Paul Woolcock
phw198
@@ -12,22 +12,20 @@
false
Sync Outlook and Google calendars.
-# What's New In v2.7.6?
+# What's New In v2.7.7?
<i class="em em-high_brightness"></i> **Enhancements**
-- Syncing a common calendar to/from more than one other now supported!
-- Improved logic to determine meeting organiser's timezone
-- Don't delete Google event immediately after reclaiming it
-- New FAIL logging level added, below Error
-- Nicer output when authenticating with Google and reclaiming items
-- Show authorised Google account on Settings tab
+- Better timing of auto-retry for when quota renewed after API exhausted
+- Option to configure the browser's User Agent in the GUI
+- Options to use (or not) Outlook/Google calendar defaults for reminders
<i class="em em-beetle"></i> **Bugfix**
-- Fixed XML namespace for obfuscation sync direction
-- Stopped error reporting obstructing Squirrel events
-- Fixed crash on OGCS automated startup
-- Don't try and retrieve Google event if synced from different calendar (avoid 404 errors)
+- Persist a push sync through a restart of Outlook
+- Persist selection of correct calendar when alternate mailbox is temporarily unavailable
+- Select correct alternate mailbox on startup
+- Handle a Google event having an end date _before_ the start date
+- Reminder DND window not always applying correctly
Copyright 2018
Outlook Google Calendar Sync 2-way Two-way Bidirection
diff --git a/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs b/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs
index eacc4b39..d14ca0e7 100644
--- a/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs
+++ b/src/OutlookGoogleCalendarSync/OutlookOgcs/OutlookCalendar.cs
@@ -1258,10 +1258,13 @@ private Boolean isOKtoSyncReminder(DateTime alarm) {
if (Settings.Instance.ReminderDNDstart.TimeOfDay > Settings.Instance.ReminderDNDend.TimeOfDay) {
//eg 22:00 to 06:00
//Make sure end time is the day following the start time
- Settings.Instance.ReminderDNDstart = alarm.Date.AddDays(-1).Add(Settings.Instance.ReminderDNDstart.TimeOfDay);
- Settings.Instance.ReminderDNDend = alarm.Date.Add(Settings.Instance.ReminderDNDend.TimeOfDay);
-
- if (alarm > Settings.Instance.ReminderDNDstart && alarm < Settings.Instance.ReminderDNDend) {
+ int shiftDay = 0;
+ DateTime dndStart;
+ DateTime dndEnd;
+ if (alarm.TimeOfDay < Settings.Instance.ReminderDNDstart.TimeOfDay) shiftDay = -1;
+ dndStart = alarm.Date.AddDays(shiftDay).Add(Settings.Instance.ReminderDNDstart.TimeOfDay);
+ dndEnd = alarm.Date.AddDays(shiftDay+1).Add(Settings.Instance.ReminderDNDend.TimeOfDay);
+ if (alarm > dndStart && alarm < dndEnd) {
log.Debug("Reminder (@" + alarm.ToString("HH:mm") + ") falls in DND range - not synced.");
return false;
} else
diff --git a/src/OutlookGoogleCalendarSync/Properties/AssemblyInfo.cs b/src/OutlookGoogleCalendarSync/Properties/AssemblyInfo.cs
index 9d1e2e81..df759a25 100644
--- a/src/OutlookGoogleCalendarSync/Properties/AssemblyInfo.cs
+++ b/src/OutlookGoogleCalendarSync/Properties/AssemblyInfo.cs
@@ -28,6 +28,6 @@
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("2.7.*")]
-[assembly: AssemblyFileVersion("2.7.6.0")]
+[assembly: AssemblyFileVersion("2.7.7.0")]
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
\ No newline at end of file
diff --git a/src/OutlookGoogleCalendarSync/Social.cs b/src/OutlookGoogleCalendarSync/Social.cs
index ac7139a9..0d2840ad 100644
--- a/src/OutlookGoogleCalendarSync/Social.cs
+++ b/src/OutlookGoogleCalendarSync/Social.cs
@@ -85,12 +85,13 @@ public enum Category {
squirrel
}
public enum Action {
- download,
- install,
- setting,
- uninstall,
- upgrade,
- version
+ debug, //ogcs
+ download, //squirrel
+ install, //squirrel
+ setting, //ogcs
+ uninstall, //squirrel
+ upgrade, //squirrel
+ version //outlook,ogcs
}
public static void Send(Category category, Action action, String label) {
diff --git a/src/OutlookGoogleCalendarSync/Sync/Engine.cs b/src/OutlookGoogleCalendarSync/Sync/Engine.cs
index 8f81b6ef..dbd7b108 100644
--- a/src/OutlookGoogleCalendarSync/Sync/Engine.cs
+++ b/src/OutlookGoogleCalendarSync/Sync/Engine.cs
@@ -510,6 +510,8 @@ private Boolean outlookToGoogle(List outlookEntries, List outlookEntries, List 30) {
+ log.Warn("That step took a long time! Issue #599");
+ Analytics.Send(Analytics.Category.ogcs, Analytics.Action.debug, "Duration;Google.IdentifyEventDifferences=" + sectionDuration.TotalSeconds);
+ }
StringBuilder sb = new StringBuilder();
console.BuildOutput(googleEntriesToBeDeleted.Count + " Google calendar entries to be deleted.", ref sb, false);