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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

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