• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H03-May-2022-

examples/H03-Jan-2020-139104

inc/Module/H03-Jan-2020-3,1292,345

lib/Data/H03-Jan-2020-2,792859

t/H03-Jan-2020-856632

.shipitH A D23-Jun-2019298 106

ChangesH A D03-Jan-20202.9 KiB10377

MANIFESTH A D23-Jun-20191.3 KiB5756

META.ymlH A D03-Jan-2020737 3433

Makefile.PLH A D03-May-2022444 1816

READMEH A D03-Jan-20205.9 KiB149113

SIGNATUREH A D03-Jan-20206.1 KiB8275

README

1NAME
2    Data::ICal - Generates iCalendar (RFC 2445) calendar files
3
4INSTALLATION
5        perl Makefile.PL
6        make
7        make test
8        make install
9
10SYNOPSIS
11        use Data::ICal;
12
13        my $calendar = Data::ICal->new();
14
15        my $vtodo = Data::ICal::Entry::Todo->new();
16        $vtodo->add_properties(
17            # ... see Data::ICal::Entry::Todo documentation
18        );
19
20        # ... or
21        $calendar = Data::ICal->new(filename => 'foo.ics'); # parse existing file
22        $calendar = Data::ICal->new(data => 'BEGIN:VCALENDAR...'); # parse from scalar
23        $calendar->add_entry($vtodo);
24        print $calendar->as_string;
25
26DESCRIPTION
27    A Data::ICal object represents a "VCALENDAR" object as defined in the
28    iCalendar protocol (RFC 2445, MIME type "text/calendar"), as implemented
29    in many popular calendaring programs such as Apple's iCal.
30
31    Each Data::ICal object is a collection of "entries", which are objects
32    of a subclass of Data::ICal::Entry. The types of entries defined by
33    iCalendar (which refers to them as "components") include events, to-do
34    items, journal entries, free/busy time indicators, and time zone
35    descriptors; in addition, events and to-do items can contain alarm
36    entries. (Currently, Data::ICal only implements to-do items and events.)
37
38    Data::ICal is a subclass of Data::ICal::Entry; see its manpage for more
39    methods applicable to Data::ICal.
40
41METHODS
42  new [ data => $data, ] [ filename => $file ], [ vcal10 => $bool ]
43    Creates a new Data::ICal object.
44
45    If it is given a filename or data argument is passed, then this parses
46    the content of the file or string into the object. If the "vcal10" flag
47    is passed, parses it according to vCalendar 1.0, not iCalendar 2.0; this
48    in particular impacts the parsing of continuation lines in
49    quoted-printable sections.
50
51    If a filename or data argument is not passed, this just sets its
52    "VERSION" and "PRODID" properties to "2.0" (or "1.0" if the "vcal10"
53    flag is passed) and the value of the "product_id" method respectively.
54
55    Returns a false value upon failure to open or parse the file or data;
56    this false value is a Class::ReturnValue object and can be queried as to
57    its "error_message".
58
59  parse [ data => $data, ] [ filename => $file, ]
60    Parse a ".ics" file or string containing one, and populate $self with
61    its contents.
62
63    Should only be called once on a given object, and will be automatically
64    called by "new" if you provide arguments to "new".
65
66    Returns $self on success. Returns a false value upon failure to open or
67    parse the file or data; this false value is a Class::ReturnValue object
68    and can be queried as to its "error_message".
69
70  ical_entry_type
71    Returns "VCALENDAR", its iCalendar entry name.
72
73  product_id
74    Returns the product ID used in the calendar's "PRODID" property; you may
75    wish to override this in a subclass for your own application.
76
77  mandatory_unique_properties
78    According to the iCalendar standard, the following properties must be
79    specified exactly one time for a calendar:
80
81          prodid version
82
83  optional_unique_properties
84    According to the iCalendar standard, the following properties may be
85    specified at most one time for a calendar:
86
87          calscale method
88
89DEPENDENCIES
90    Data::ICal requires Class::Accessor, Text::vFile::asData,
91    MIME::QuotedPrint, and Class::ReturnValue.
92
93BUGS AND LIMITATIONS
94    Data::ICal does not support time zone daylight or standard entries, so
95    time zone components are basically useless.
96
97    While Data::ICal tries to check which properties are required and
98    repeatable, this only works in simple cases; it does not check for
99    properties that must either both exist or both not exist, or for
100    mutually exclusive properties.
101
102    Data::ICal does not check to see if property parameter names are known
103    in general or allowed on the particular property.
104
105    Data::ICal does not check to see if nested entries are nested properly
106    (alarms in todos and events only, everything else in calendars only).
107
108    The only property encoding supported by Data::ICal is quoted printable.
109
110    There is no Data::ICal::Entry::Alarm base class.
111
112    Please report any bugs or feature requests to
113    "bug-data-ical@rt.cpan.org", or through the web interface at
114    <http://rt.cpan.org>.
115
116AUTHOR
117    Jesse Vincent "<jesse@bestpractical.com>" with David Glasser, Simon
118    Wistow, and Alex Vandiver
119
120LICENCE AND COPYRIGHT
121    Copyright (c) 2005 - 2020, Best Practical Solutions, LLC. All rights
122    reserved.
123
124    This module is free software; you can redistribute it and/or modify it
125    under the same terms as Perl itself. See perlartistic.
126
127DISCLAIMER OF WARRANTY
128    BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
129    FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
130    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
131    PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
132    EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
133    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
134    ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
135    YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
136    NECESSARY SERVICING, REPAIR, OR CORRECTION.
137
138    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
139    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
140    REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE
141    TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR
142    CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
143    SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
144    RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
145    FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
146    SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
147    DAMAGES.
148
149