![]() |
VOOZH | about |
The CData Cmdlets for Google Calendar are standard PowerShell cmdlets that make it easy to accomplish data cleansing, normalization, backup, and other integration tasks by enabling real-time and bidirectional access to Google Calendar.
The Cmdlets are not only a PowerShell interface to Google Calendar, but also an SQL interface; this tutorial shows how to use both to create, retrieve, update, and delete Google Calendar data. We also show examples of the ADO.NET equivalent, which is possible with the CData ADO.NET Provider for Google Calendars. To access Google Calendar data from other .NET applications, like LINQPad, use the CData ADO.NET Provider for Google Calendars.
Once you have acquired the necessary connection properties, accessing Google Calendar data in PowerShell can be enabled in three steps.
You can connect to Google APIs on behalf of individual users or on behalf of a domain. Google uses the OAuth authentication standard. See the "Getting Started" section of the help documentation for a guide.
Install the module:
Install-Module GoogleCalendarCmdlets
Connect:
$googlecalendar = Connect-GoogleCalendar
Search for and retrieve data:
$searchterms = "beach trip" $vacationcalendar = Select-GoogleCalendar -Connection $googlecalendar -Table "VacationCalendar" -Where "SearchTerms = `'$SearchTerms`'" $vacationcalendar
You can also use the Invoke-GoogleCalendar cmdlet to execute SQL commands:
$vacationcalendar = Invoke-GoogleCalendar -Connection $googlecalendar -Query 'SELECT * FROM VacationCalendar WHERE SearchTerms = @SearchTerms' -Params @{'@SearchTerms'='beach trip'}
Load the provider's assembly:
[Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData ADO.NET Provider for Google Calendars\lib\System.Data.CData.GoogleCalendar.dll")
Connect to Google Calendar:
$conn= New-Object System.Data.CData.GoogleCalendar.GoogleCalendarConnection("")
$conn.Open()
Instantiate the GoogleCalendarDataAdapter, execute an SQL query, and output the results:
$sql="SELECT Summary, StartDateTime from VacationCalendar"
$da= New-Object System.Data.CData.GoogleCalendar.GoogleCalendarDataAdapter($sql, $conn)
$dt= New-Object System.Data.DataTable
$da.Fill($dt)
$dt.Rows | foreach {
Write-Host $_.summary $_.startdatetime
}
Update-GoogleCalendar -Connection $GoogleCalendar -Columns @('Summary','StartDateTime') -Values @('MySummary', 'MyStartDateTime') -Table VacationCalendar -Id "MyId"
$cmd = New-Object System.Data.CData.GoogleCalendar.GoogleCalendarCommand("UPDATE VacationCalendar SET SearchTerms='beach trip' WHERE Id = @myId", $conn)
$cmd.Parameters.Add((New-Object System.Data.CData.GoogleCalendar.GoogleCalendarParameter("@myId","10456255-0015501366")))
$cmd.ExecuteNonQuery()
Add-GoogleCalendar -Connection $GoogleCalendar -Table VacationCalendar -Columns @("Summary", "StartDateTime") -Values @("MySummary", "MyStartDateTime")
$cmd = New-Object System.Data.CData.GoogleCalendar.GoogleCalendarCommand("INSERT INTO VacationCalendar (SearchTerms) VALUES (@mySearchTerms)", $conn)
$cmd.Parameters.Add((New-Object System.Data.CData.GoogleCalendar.GoogleCalendarParameter("@mySearchTerms","beach trip")))
$cmd.ExecuteNonQuery()
Remove-GoogleCalendar -Connection $GoogleCalendar -Table "VacationCalendar" -Id "MyId"
$cmd = New-Object System.Data.CData.GoogleCalendar.GoogleCalendarCommand("DELETE FROM VacationCalendar WHERE Id=@myId", $conn)
$cmd.Parameters.Add((New-Object System.Data.CData.GoogleCalendar.GoogleCalendarParameter("@myId","001d000000YBRseAAH")))
$cmd.ExecuteNonQuery()
CodeProject
Download a free trial of the Google Calendars Data Provider to get started:
Download NowLearn more:
👁 Google Calendars IconAn easy-to-use database-like interface for .NET applications access to live Google Calendar data (Calendars, Events, Attendees and more).