# File lib/icalendar/helpers.rb, line 38
      def date_property(dp, alias_name = nil)
        dp = "#{dp}".strip.downcase
        getter = dp
        setter = "#{dp}="
        query = "#{dp}?"

        unless instance_methods.include? getter
          code = "def \#{getter}(*a)\nif a.empty?\n@properties[\#{dp.upcase}]\nelse\nself.\#{dp} = a.first\nend\nend\n"

          module_eval code
        end
           
        unless instance_methods.include? setter
          code = "def \#{setter} a\n@properties[\#{dp.upcase}] = a\nend\n"

          module_eval code
        end

        unless instance_methods.include? query
          code = "def \#{query}\n@properties.has_key?(\#{dp.upcase})\nend\n"

          module_eval code
        end

        # Define the getter
        getter = "get#{property.to_s.capitalize}"
        define_method(getter.to_sym) do
          puts "inside getting..."
          getDateProperty(property.to_s.upcase)  
        end
        
        # Define the setter
        setter = "set#{property.to_s.capitalize}"        
        define_method(setter.to_sym) do |*params|
          date = params[0]
          utc = params[1]
          puts "inside setting..."
          setDateProperty(property.to_s.upcase, date, utc)
        end

        # Create aliases if a name was specified
#         if not aliasName.nil?
#           gasym = "get#{aliasName.to_s.capitalize}".to_sym 
#           gsym = getter.to_sym
#           alias gasym gsym 
          
#           sasym = "set#{aliasName.to_s.capitalize}".to_sym 
#           ssym = setter.to_sym
#           alias sasym ssym 
#        end
      end