You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.6 KiB
124 lines
3.6 KiB
=begin
|
|
Copyright (C) 2005 Jeff Rose
|
|
|
|
This library is free software; you can redistribute it and/or modify it
|
|
under the same terms as the ruby language itself, see the file COPYING for
|
|
details.
|
|
=end
|
|
|
|
module Icalendar
|
|
# A Event calendar component is a grouping of component
|
|
# properties, and possibly including Alarm calendar components, that
|
|
# represents a scheduled amount of time on a calendar. For example, it
|
|
# can be an activity; such as a one-hour long, department meeting from
|
|
# 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time
|
|
# on an individual calendar.
|
|
class Event < Component
|
|
ical_component :alarms
|
|
|
|
## Single instance properties
|
|
|
|
# Access classification (PUBLIC, PRIVATE, CONFIDENTIAL...)
|
|
ical_property :ip_class, :klass
|
|
|
|
# Date & time of creation
|
|
ical_property :created
|
|
|
|
# Complete description of the calendar component
|
|
ical_property :description
|
|
|
|
# Specifies date-time when calendar component begins
|
|
ical_property :dtstart, :start
|
|
|
|
# Latitude & longitude for specified activity
|
|
ical_property :geo, :geo_location
|
|
|
|
# Date & time this item was last modified
|
|
ical_property :last_modified
|
|
|
|
# Specifies the intended venue for this activity
|
|
ical_property :location
|
|
|
|
# Defines organizer of this item
|
|
ical_property :organizer
|
|
|
|
# Defines relative priority for this item (1-9... 1 = best)
|
|
ical_property :priority
|
|
|
|
# Indicate date & time when this item was created
|
|
ical_property :dtstamp, :timestamp
|
|
|
|
# Revision sequence number for this item
|
|
ical_property :sequence, :seq
|
|
|
|
# Defines overall status or confirmation of this item
|
|
ical_property :status
|
|
ical_property :summary
|
|
ical_property :transp, :transparency
|
|
|
|
# Defines a persistent, globally unique id for this item
|
|
ical_property :uid, :unique_id
|
|
|
|
# Defines a URL associated with this item
|
|
ical_property :url
|
|
ical_property :recurid, :recurrence_id
|
|
|
|
## Single but mutually exclusive properties (Not testing though)
|
|
|
|
# Specifies a date and time that this item ends
|
|
ical_property :dtend, :end
|
|
|
|
# Specifies a positive duration time
|
|
ical_property :duration
|
|
|
|
## Multi-instance properties
|
|
|
|
# Associates a URI or binary blob with this item
|
|
ical_multi_property :attach, :attachment, :attachments
|
|
|
|
# Defines an attendee for this calendar item
|
|
ical_multiline_property :attendee, :attendee, :attendees
|
|
|
|
# Defines the categories for a calendar component (school, work...)
|
|
ical_multi_property :categories, :category, :categories
|
|
|
|
# Simple comment for the calendar user.
|
|
ical_multi_property :comment, :comment, :comments
|
|
|
|
# Contact information associated with this item.
|
|
ical_multi_property :contact, :contact, :contacts
|
|
ical_multi_property :exdate, :exception_date, :exception_dates
|
|
ical_multi_property :exrule, :exception_rule, :exception_rules
|
|
ical_multi_property :rstatus, :request_status, :request_statuses
|
|
|
|
# Used to represent a relationship between two calendar items
|
|
ical_multi_property :related_to, :related_to, :related_tos
|
|
ical_multi_property :resources, :resource, :resources
|
|
|
|
# Used with the UID & SEQUENCE to identify a specific instance of a
|
|
# recurring calendar item.
|
|
ical_multi_property :rdate, :recurrence_date, :recurrence_dates
|
|
ical_multi_property :rrule, :recurrence_rule, :recurrence_rules
|
|
|
|
def initialize()
|
|
super("VEVENT")
|
|
|
|
# Now doing some basic initialization
|
|
sequence 0
|
|
timestamp DateTime.now
|
|
uid new_uid
|
|
end
|
|
|
|
def alarm(&block)
|
|
a = Alarm.new
|
|
self.add a
|
|
|
|
a.instance_eval &block if block
|
|
|
|
a
|
|
end
|
|
|
|
|
|
end
|
|
end
|