« Back to Index

Ruby Google Calendar API

View original Gist on GitHub

Ruby Google Calendar API.rb

=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}"