No commit activity in last 3 years
No release in over 3 years
GCal4Ruby is a Ruby Gem that can be used to interact with the current version of the Google Calendar API. GCal4Ruby provides the following features: Create and edit calendar events, Add and invite users to events, Set reminders, Make recurring events.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0.1.1
 Project Readme
#=GCal4Ruby
#
#==Introduction
#GCal4Ruby is a full featured wrapper for the google calendar API.  GCal4Ruby implements
#all of the functionality available through the Google Calnedar API, including permissions,
#attendees, reminders and event recurrence.  
#
#==Author and Contact Information
#GCal4Ruby was created and is maintained by {Mike Reich}[mailto:mike@seabourneconsulting.com] 
#and is licenses under the GPL v2.  Feel free to use and update, but be sure to contribute your
#code back to the project and attribute as required by the license.
#
#This fork by {nachokb}[http://www.github.com/nachokb] brings some improvements related to recurring 
#events handling (they always had 1970-01-01 as start_time), fixes some timezone issues and makes the
#parser a little more correct (there can be non-root elements with DTSTART without breaking the parser
#for a start) and flexible (in case Google slightly changes the format).
#
#===Website
#http://cookingandcoding.com/gcal4ruby/
#
#==Description
#GCal4Ruby has three major components: the service, calendar and event objects.  Each service
#has many calendars, which in turn have many events.  Each service is the representation of a
#google account, and thus must be successfully authenticated using valid Google Calendar
#account credentials.  
#
#==Examples
#Below are some common usage examples.  For more examples, check the documentation.
#===Service
#1. Authenticate
#    service = Service.new
#    service.authenticate("user@gmail.com", "password")
#
#2. Get Calendar List
#    calendars = service.calendars
#
#===Calendar
#All usages assume a successfully authenticated Service.
#1. Create a new Calendar
#    cal = Calendar.new(service)
#
#2. Find a calendar by ID
#    cal = Calendar.find(service, {:id => cal_id})
#
#3. Get all calendar events
#    cal = Calendar.find(service, {:id => cal_id})
#    events = cal.events
#
#4. Find an existing calendar by title
#    cal = Calendar.find(service, {:title => "New Calendar"})
#
#5. Find all calendars containing a search term
#    cal = Calendar.find(service, "Soccer Team")
#===Event
#All usages assume a successfully authenticated Service and valid Calendar.
#1. Create a new Event
#    event = Event.new(service, {:calendar => cal, :title => "Soccer Game", :start => Time.parse("12-06-2009 at 12:30 PM"), :end => Time.parse("12-06-2009 at 1:30 PM"), :where => "Merry Playfields"})
#    event.save
#
#2. Find an existing Event by title
#    event = Event.find(service, {:title => "Soccer Game"})
#
#3. Find an existing Event by ID
#    event = Event.find(service, {:id => event.id})
#
#4. Find all events containing the search term
#    event = Event.find(service, "Soccer Game")
#
#5. Find all events on a calendar containing the search term
#    event = Event.find(service, "Soccer Game", {:calendar => cal.id})
#
#6. Find events within a date range
#    event = Event.find(service, "Soccer Game", {'start-min' => Time.parse("01/01/2010").utc.xmlschema, 'start-max' => Time.parse("06/01/2010").utc.xmlschema})
#
#7. Create a recurring event for every saturday
#    event = Event.new(service)
#    event.title = "Baseball Game"
#    event.calendar = cal
#    event.where = "Municipal Stadium"
#    event.recurrence = Recurrence.new
#    event.recurrence.start_time = Time.parse("06/20/2009 at 4:30 PM")
#    event.recurrence.end_time = Time.parse("06/20/2009 at 6:30 PM")
#    event.recurrence.frequency = {"weekly" => ["SA"]}
#    event.save 
#
#8. Create an event with a 15 minute email reminder
#    event = Event.new(service)
#    event.calendar = cal
#    event.title = "Dinner with Kate"
#    event.start_time = Time.parse("06/20/2009 at 5 pm")
#    event.end_time = Time.parse("06/20/2009 at 8 pm")
#    event.where = "Luigi's"
#    event.reminder = {:minutes => 15, :method => 'email'}
#    event.save
#
#9. Create an event with attendees
#    event = Event.new(service)
#    event.calendar = cal
#    event.title = "Dinner with Kate"
#    event.start_time = Time.parse("06/20/2009 at 5 pm")
#    event.end_time = Time.parse("06/20/2009 at 8 pm")
#    event.attendees => {:name => "Kate", :email => "kate@gmail.com"}
#    event.save