If your application has certain events(For example meeting etc), then you may need to integrate calendar application.
Icalendar is a standard for calendar data exchange.
Icalendar allows us to generate .ics files so that users can add events to their calendars.
First of all install the gem
gem install icalendar
And run bundle install
After this add require 'icalendar' to your config/environment.rb
Suppose we have a MeetingEvent model:
class MeetingEvent < ActiveRecord::Base
# Table name: meeings_events
#
# id :integer(11) not null, primary key
# title :string(255)
# start_date :datetime
# end_date :datetime
# summary :text
# created_at :datetime
# updated_at :datetime
end
The next part is added "to_icalender" action of the MeetingController
to accept .ics format:
def to_icalender
@event = MeetingEvent.find(params[:id])
respond_to do |format|
format.html
format.ics do
cal = Icalendar::Calendar.new
event = Icalendar::Event.new
event.dtstart = @event.starts_at
event.dtend = @event.ends_at
event.summary = @event.title
event.uid = event.url = "#{event_url}"
cal.add_event(event)
cal.publish
render :text => cal.to_ical
end
end
end
Add a link to your view:
<%= link_to @event.title, :controller => 'meeting', :action => :to_icalender, :format => :ics %>
0 Comment(s)