-
Notifications
You must be signed in to change notification settings - Fork 215
Hints & Tips
Although this is not yet available directly within OGCS, it is still possible to set this up by running multiple instances of OGCS at the same time, one for each calendar to be synced.
From v2.7.2, OGCS can be run with additional parameters to specify different settings and logfiles for each instance.
From v2.7.6, OGCS also supports two-way sync between a "common" calendar. For example, Outlook Workplace 1
Google calendar
Outlook Workplace 2
.
If you encounter a calendar item that is always flagged for deletion but shouldn't be, it may be possible to resolve this by forcing a full synchronisation.
The following example is for a problematic Google item:
- If you have two-way sync configuration, once you're sure Google has no further changes that need syncing to Outlook, set OGCS to one-way sync: Outlook to Google.
- Force a full sync by pressing and holding the
Shift
key while clicking theSync
button - Set OGCS back to two-way sync, if necessary
- Perform a normal (differential) sync by just clicking
Sync
and confirm if the problem has been resolved
To facilitate the synchronisation, OGCS will hold extra pieces of information (metadata) against calendar entries. These can be removed by carrying out the following steps, which will revert your calendar(s) to a state resembling that before OGCS ever performed its first sync.
- Go to the
About
tab and double click theConfig In
file location to open Windows Explorer, then close OGCS - From Windows Explorer, open
settings.xml
in a text editor and find theExtirpateOgcsMetadata
entry. - Change its value from
false
totrue
, save the file and close it - Start OGCS - you'll have a warning and a red sync button
- Click Sync and purge your calendars of metadata.
- Close OGCS and change the setting back to
false
- Start OGCS and run a sync - all your items will get "reclaimed" on the first sync before subsequent syncs continue as normal
Sometimes it may be desirable to remove all the items that have been synced to a calendar, for example due to a misconfiguration or wanting to back out some testing. This is not built into OGCS, primarily because it is a dangerous operation that I don't want to make easily available.
However, I have provided a guide on a semi-automated mechanism - it is reasonably technical, but probably tempting if you don't want to have to manually delete hundreds of items!
⚡ This feature is now built in to OGCS from v2.5.3, but for reference there is also the below manual workaround too.
If starting OGCS on startup of Windows causes problems with Outlooks own startup sequence, the following VBA script calls OGCS after Outlook has done its own startup things.
Copy and paste the code into Outlook's ThisOutlookSession
VBA module (hit Alt
+F11
to open the editor).
📍 Make sure the variables in the Configure()
Sub point to your installation of OGCS.
Dim eventClass As New EventClassModule
Public ogcsDirectory, ogcsExecutable, ogcsProcessName As String
Public ogcsStartWithOutlook As Boolean
'Load the right driver bitness at runtime
#If VBA7 Then
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long _
) As Long
#Else
'Don't worry if compiler highlights in red - it isn't instantiated at runtime for 64-bit systems
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long _
) As Long
#End If
Private Sub Configure()
'Set these variables as appropriate for your installation of OGCS
ThisOutlookSession.ogcsDirectory = Environ("LOCALAPPDATA") & "\OutlookGoogleCalendarSync"
ThisOutlookSession.ogcsExecutable = "OutlookGoogleCalendarSync.exe"
ThisOutlookSession.ogcsProcessName = Replace(ThisOutlookSession.ogcsExecutable, ".exe", "", 1, 1, vbTextCompare)
ThisOutlookSession.ogcsStartWithOutlook = True
'Log settings
Debug.Print ("ogcsDirectory = " & ThisOutlookSession.ogcsDirectory)
Debug.Print ("ogcsExecutable = " & ThisOutlookSession.ogcsExecutable)
Debug.Print ("ogcsProcessName = " & ThisOutlookSession.ogcsProcessName)
Debug.Print ("ogcsStartWithOutlook = " & ThisOutlookSession.ogcsStartWithOutlook)
If (Len(Dir(ThisOutlookSession.ogcsDirectory & "\" & ThisOutlookSession.ogcsExecutable)) = 0) Then
MsgBox "The specified location of OGCS is not valid." & Chr(13) & "Please update the VBA configuration section.", vbCritical, "Invalid OGCS VBA Configuration"
End If
End Sub
Private Sub Application_Startup()
Configure
If (ThisOutlookSession.ogcsStartWithOutlook) Then
'Start OGCS
Dim RetVal As Long
On Error Resume Next
'https://docs.microsoft.com/en-us/windows/win32/shell/shell-shellexecute#parameters
Const ogcsWindowSize_Normal = 1
Const ogcsWindowSize_Minimised = 2
Const ogcsWindowSize_Maximised = 3
Const ogcsWindowSize_RecentSizeAndPosition = 4
Const ogcsWindowSize_CurrentSizeAndPosition = 5
Const ogcsWindowSize_MinimisedActiveWindowRemains = 7
Const ogcsWindowSize_DefaultState = 10
RetVal = ShellExecute(0, "open", ThisOutlookSession.ogcsDirectory & "\" & ThisOutlookSession.ogcsProcessName, _
ogcsWindowSize_Normal, ThisOutlookSession.ogcsDirectory, 3)
End If
End Sub