The following is one method to keep your SharePoint Calendar(s) synced with your Google Calendar. This particular example only syncs in one direction: from Google to SharePoint. However, it could be set to sync in the opposite direction, or in both directions. This solution requires that you have the RSSBus Web Part installed (see here for instructions). You will also need the GoogleOps Connector, which is automatically included with the RSSBus Web Part.
- Step 1: Log on to SharePoint and browse to your calendar. Under Site Actions click 'Edit Page'.
- Step 2: Click "Add a Web Part" and add the RSSBus Web Part to the page. Many users prefer to drag the Calendar to the top and place RSSBus Web Part directly below it.
- Step 3: Within the edit menu, click 'Modify Shared Web Part' and open the Source Editor.
- Step 4: Paste the following RSSBus Web Part template and click 'Apply'.
<rsb:info title="Google Calendar Sync" description="This template Syncs your SharePoint Calendar events with those in a Google Calendar account.">
<input name="email" description="The email used to authenticate with Google." required="true"/>
<input name="password" description="The password used to authenticate with Google." required="true" style="password"/>
<input name="calendar" description="The SharePoint calendar to sync to." default="Calendar"/>
<input name="days" description="The number of days to import events for." default="30"/>
</rsb:info>
<rsb:import lib="RSSBus.GoogleOps"/>
<!-- get all the events in the SharePoint calendar -->
<rsb:set attr="list" value="[calendar]"/>
<rsb:call op="spListItems" out="myitemout" save="myspitems" >
<rsb:call op="spGetItem?itemid=[sp:id]" >
<rsb:set attr="myitemout.title" value="[sp:title]"/>
<rsb:set attr="myitemout.location" value="[sp:location | def('')]"/>
<rsb:set attr="myitemout.start_time" value="[sp:start_time]"/>
<rsb:set attr="myitemout.end_time" value="[sp:end_time]"/>
<rsb:set attr="myitemout.description" value="[sp:description | def('')]" />
</rsb:call>
</rsb:call>
<!--get all the events in the Google calendar in the specified range -->
<rsb:set attr="fromdate" value="[null | date('d')]"/>
<rsb:set attr="todate" value="[fromdate | dateadd(day, [days]) | todate('d') ]"/>
<rsb:call op="googleCalSearch" out="mygcalout" save="mygitems">
<rsb:set attr="mygcalout.title" value="[ggl:title]"/>
<rsb:set attr="mygcalout.location" value="[ggl:where | def('')]"/>
<rsb:set attr="mygcalout.start_time" value="[ggl:starttime | todate]"/>
<rsb:set attr="mygcalout.end_time" value="[ggl:endtime | todate]"/>
<rsb:set attr="mygcalout.description" value="[ggl:description | def('')]"/>
</rsb:call>
<!-- now find out what is in google calendar that is not in the SharePoint list, using title and start time as the filter -->
<rsb:set attr="diff.base" value="[_feeds.myspitems]"/>
<rsb:set attr="diff.feed" value="[_feeds.mygitems]"/>
<rsb:set attr="diff.filter" value="title,start_time"/>
<rsb:set attr="diff.list" value="[list]"/>
<rsb:call op="feedDiff" in="diff">
<!-- for everything not in the sp list, add it! -->
<rsb:set attr="name#" value="Title"/>
<rsb:set attr="name#" value="Location"/>
<rsb:set attr="name#" value="Start Time"/>
<rsb:set attr="name#" value="End Time"/>
<rsb:set attr="name#" value="Description"/>
<rsb:set attr="value#" value="[title]"/>
<rsb:set attr="value#" value="[location | def('')]"/>
<rsb:set attr="value#" value="[start_time]"/>
<rsb:set attr="value#" value="[end_time]"/>
<rsb:set attr="value#" value="[description | def('')]"/>
<rsb:call op="spAddItem"/>
<b>[title]</b> Successfully imported from Google Calendar.<br>
</rsb:call>
- Step 5: After you click Apply, specify your Google Calendar email and password. Next, specify the name of the calendar to sync with (i.e. "Calendar"), and the number of days you want it to keep synced at a time. Optionally, you can embed inputs into the script, instead of leaving them as Web Part properties. To embed the inputs, change the rsb:info section of code to the following:
<rsb:set attr="email" value="YOUREMAIL" />
<rsb:set attr="password" value="YOURPASSWORD" />
<rsb:set attr="calendar" value="YOURCALENDARNAME" />
<rsb:set attr="days" value="30" />
Now, the Calendar page is automatically be updated with the latest items from Google Calendar.

QuickBooks Data Provider
Salesforce Data Provider
Microsoft CRM Data Provider
SharePoint Data Provider
Google Data Provider
OData Data Provider
SAP Data Provider
Excel Data Provider
PowerShell Data Provider
Twitter Data Provider
Email Data Provider
Facebook Data Provider
Google Spreadsheet Data Provider
Amazon SimpleDB Data Provider
AS2 Connector
SFTP Connector
FTP Connector
OFTP Connector
QB Connector
Excel Add-In for SQLite





