However, while it looks okay, there is an exchange of thoughts about the advantage of using Google Calendar instead of that which is the ability to share data not only within our app but also to our personal computers and mobile devices. That is a valid point but the thing I dislike is in order to do that, is to rely on Google's own APIs as they may change those now and then; for the betterment of google products.
And so with that in mind, and taking into consideration the argument about that sharing capability, here instead is my preferred way. Not using google API but to embed Google Calendar via Internet Explorer automation within our form:
Declare Integer GetWindowLong In User32 Integer HWnd, Integer nIndex
Declare Integer SetWindowLong In user32 Integer HWnd,;
INTEGER nIndex, Integer dwNewLong
Declare Integer SetWindowPos In user32;
Declare Integer SetParent In user32;
loTest = Createobject("Form1")
Define Class Form1 As Form
Caption = 'Google Calendar on Form'
AutoCenter = .T.
Height = 700
Width = 900
ShowWindow = 2
oIE = .F.
Local lcURL, lnStyle, loHWnd, loIE As internetexplorer.Application
lcURL = 'https://calendar.google.com/calendar/r'
loIE = Createobject("InternetExplorer.Application")
Thisform.oIE = m.loIE
.Visible = .F.
.Silent = .T.
Do While .ReadyState <> 4
loHWnd = .HWnd
lnStyle = GetWindowLong(m.loHWnd, -6)
SetWindowLong(m.loHWnd, -12, Bitxor(lnStyle, 0x00400000))
.Visible = .T.
SetWindowPos(.oIE.HWnd, 1, .Left, .Top, .Width, .Height,0x0001)
This.oIE = Null
Lparameters nKeyCode, nShiftAltCtrl
If m.nKeyCode = 27
If you haven't logged in at your google account yet when you first run this, it will require you to. After that, IE will remember it and the next runs will go straight to Google Calendar.