forked from northworld/google_calendar
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme_code.rb
65 lines (48 loc) · 1.97 KB
/
readme_code.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#
# Uncomment the LOAD_PATH lines if you want to run against the
# local version of the gem.
#
# $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
# $LOAD_PATH.unshift(File.dirname(__FILE__))
require 'rubygems'
require 'google_calendar'
# Create an instance of the calendar.
cal = Google::Calendar.new(:client_id => YOUR_CLIENT_ID,
:client_secret => YOUR_SECRET,
:calendar => YOUR_CALENDAR_ID,
:redirect_url => "urn:ietf:wg:oauth:2.0:oob" # this is what Google uses for 'applications'
)
puts "Do you already have a refresh token? (y/n)"
has_token = $stdin.gets.chomp
if has_token.downcase != 'y'
# A user needs to approve access in order to work with their calendars.
puts "Visit the following web page in your browser and approve access."
puts cal.authorize_url
puts "\nCopy the code that Google returned and paste it here:"
# Pass the ONE TIME USE access code here to login and get a refresh token that you can use for access from now on.
refresh_token = cal.login_with_auth_code( $stdin.gets.chomp )
puts "\nMake sure you SAVE YOUR REFRESH TOKEN so you don't have to prompt the user to approve access again."
puts "your refresh token is:\n\t#{refresh_token}\n"
puts "Press return to continue"
$stdin.gets.chomp
else
puts "Enter your refresh token"
refresh_token = $stdin.gets.chomp
cal.login_with_refresh_token(refresh_token)
# Note: You can also pass your refresh_token to the constructor and it will login at that time.
end
event = cal.create_event do |e|
e.title = 'A Cool Event'
e.start_time = Time.now
e.end_time = Time.now + (60 * 60) # seconds * min
end
puts event
event = cal.find_or_create_event_by_id(event.id) do |e|
e.title = 'An Updated Cool Event'
e.end_time = Time.now + (60 * 60 * 2) # seconds * min * hours
end
puts event
# All events
puts cal.events
# Query events
puts cal.find_events('your search string')