Skip to content

Instantly share code, notes, and snippets.

@Integralist
Last active October 26, 2017 06:45
Show Gist options
  • Save Integralist/cc6d9574ae6598cf78c5 to your computer and use it in GitHub Desktop.
Save Integralist/cc6d9574ae6598cf78c5 to your computer and use it in GitHub Desktop.
Ruby Google Calendar API
=begin
Ruby API:
http://www.rubydoc.info/github/google/google-api-ruby-client/Google
Google API:
https://developers.google.com/google-apps/calendar/v3/reference/events/insert
=end
require "google/apis/calendar_v3"
require "pry"
service = Google::Apis::CalendarV3::CalendarService.new
service.client_options.application_name = "<app-name>"
service.key = "<server-api-key>"
calendar_id = "<some-email@gmail.com||primary>"
response = service.list_events(
calendar_id,
:max_results => 30,
:single_events => true,
:order_by => "startTime",
:time_min => Time.now.iso8601 # e.g. 2016-02-28T18:49:21+00:00
)
puts "Upcoming events:"
puts "No upcoming events found" if response.items.empty?
response.items.each do |event|
start = event.start.date || event.start.date_time
puts "- #{event.summary} (#{start})"
end
event = Google::Apis::CalendarV3::Event.new({
:summary => "Testing",
:location => "Wherever",
:start => {
:date_time => DateTime.parse("2016-05-28T09:00:00-07:00"),
:time_zone => "America/Los_Angeles"
},
:end => {
:date_time => DateTime.parse("2016-05-28T17:00:00-07:00"),
:time_zone => "America/Los_Angeles"
}
})
result = service.insert_event(calendar_id, event)
puts "Event created: #{result.html_link}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment