---
name: "Data::ICal::Property"
section: "3pm"
platform: "linux"
package: "libdata-ical-perl"
version: "0.24+dfsg-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::ICal::Property"
---

# Data::ICal::Property(3pm)

Represents a property on an entry in an iCalendar file

## NAME

Data::ICal::Property - Represents a property on an entry in an iCalendar file

## DESCRIPTION

A Data::ICal::Property object represents a single property on an entry in an iCalendar file.  Properties have parameters in addition to their value.

You shouldn't need to create Data::ICal::Property values directly -- just use `"add_property"` in Data::ICal::Entry.

The `"encoding"` parameter value is only interpreted by Data::ICal in the `"decoded_value"` and `"encode"` methods: all other methods access the encoded version directly (if there is an encoding).

Currently, the only supported encoding is `"QUOTED-PRINTABLE"`.

## METHODS

### new $key, $value, \[$parameter\_hash\]

Creates a new Data::ICal::Property with key `$key` and value `$value`.

If `$parameter_hash` is provided, sets the property's parameters to it.  The parameter hash should have keys equal to the names of the parameters (case insensitive; parameter hashes should not contain two different keys which are the same when converted to upper case); the values should either be a string if the parameter has a single value or an array reference of strings if the parameter has multiple values.

### key \[$key\]

Gets or sets the key name of this property.

### value \[$value\]

Gets or sets the value of this property.

### parameters \[$param\_hash\]

Gets or sets the parameter hash reference of this property.  Parameter keys are converted to upper case.

### vcal10 \[$bool\]

Gets or sets a boolean saying whether this should be interpreted as vCalendar 1.0 (as opposed to iCalendar 2.0).  Generally, you can just set this on your main Data::ICal object when you construct it; `"add_entry"` automatically makes sure that sub-entries end up with the same value as their parents, and `"add_property"` makes sure that properties end up with the same value as their entry.

### decoded\_value

Gets the value of this property, converted from the encoding specified in its encoding parameter.  (That is, `"value"` will return the encoded version; this will apply the encoding.)  If the encoding is not specified or recognized, just returns the raw value.

### encode $encoding

Calls `"decoded_value"` to get the current decoded value, then encodes it in `$encoding`, sets the value to that, and sets the encoding parameter to `$encoding`. (`$encoding` is first converted to upper case.)

If `$encoding` is undef, deletes the encoding parameter and sets the value to the decoded value.  Does nothing if the encoding is not recognized.

### as\_string ARGS

Returns the property formatted as a string (including trailing newline).

Takes named arguments:

- fold

  Defaults to true. pass in a false value if you need to generate non-rfc-compliant calendars.

- crlf

  Defaults to `"\x0d\x0a"`, per RFC 2445 spec.  This option is primarily for backwards compatibility with version of this module prior to 0.16, which used `"\x0a"`.

## AUTHOR

Best Practical Solutions, LLC \<modules@bestpractical.com\>

## LICENCE AND COPYRIGHT

Copyright (c) 2005 - 2020, Best Practical Solutions, LLC.  All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
