Taken from https://github.com/unixcharles/google_calendar_api_v2 and modified for OAuth2
All you need to survive a syncronization project with Google Calendar using GData 3.0 + OAuth 2.0
Usage
Create an application.rb file and put the following in it.
require 'sinatra'
require 'rubygems'
require 'google_calendar_oauth2'
client = GoogleCalendar::Client.new "google_client_id", "google_client_secret", "http://localhost:4567/oauth2callback"
before do
unless GoogleCalendar.connection.authorization.access_token || request.path_info =~ /^\/oauth2/
redirect client.redirect_to
end
end
get '/oauth2callback' do
GoogleCalendar.connection.authorization.code = params['code']
GoogleCalendar.connection.authorization.fetch_access_token!
redirect '/create_event'
end
Create your Gemfile with the following.
source 'http://rubygems.org'
gem 'sinatra'
gem 'google_calendar_oauth2'
Finally, run
bundle exec ruby application.rb
In your application directory and go to http://localhost:4567/
#Calendar
Find a Calendar
calendar = GoogleCalendar::Calendar.find_by_name('Calendar Name')
List your Calendars
calendars = GoogleCalendar::Calendar.list
Create a Calendar
calendar = GoogleCalendar::Calendar.create({'summary' => 'New Calendar', 'timeZone' => 'America/Chicago'})
#Event Find an event
GoogleCalendar::Event.find_by_name(calendar.id, 'some event name')
List events for a calendar
events = GoogleCalendar::Event.list(calendar.id)
Create an event
GoogleCalendar::Event.create({'summary' => 'Some cool event everyone wants to go to.', 'start' => {'dateTime' => '2012-01-29T12:00:00-06:00'}, 'end' => 'dateTime' => '2012-01-29T13:00:00-06:00'})