1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
use warnings;
use strict;
package Data::ICal::Entry::FreeBusy;
use base qw/Data::ICal::Entry/;
=head1 NAME
Data::ICal::Entry::FreeBusy - Represents blocks of free and busy time in an iCalendar file
=head1 SYNOPSIS
my $vfreebusy = Data::ICal::Entry::FreeBusy->new();
$vfreebusy->add_properties(
organizer => 'MAILTO:jsmith@host.com',
# Dat*e*::ICal is not a typo here
freebusy => Date::ICal->new( epoch => ... )->ical . '/' . Date::ICal->new( epoch => ... )->ical,
);
$calendar->add_entry($vfreebusy);
=head1 DESCRIPTION
A L<Data::ICal::Entry::FreeBusy> object represents a request for
information about free and busy time or a reponse to such a request,
in an iCalendar file. (Note that the iCalendar RFC refers to entries
as "components".) It is a subclass of L<Data::ICal::Entry> and
accepts all of its methods.
=head1 METHODS
=cut
=head2 ical_entry_type
Returns C<VFREEBUSY>, its iCalendar entry name.
=cut
sub ical_entry_type {'VFREEBUSY'}
=head2 mandatory_unique_properties
The C<uid> property is mandatory if C<rfc_strict> was passed to
L<Data::ICal/new>.
=cut
sub mandatory_unique_properties {
my $self = shift;
return $self->rfc_strict ? ("uid") : ()
}
=head2 optional_unique_properties
According to the iCalendar standard, the following properties may be
specified at most one time for a free/busy entry:
contact dtstart dtend duration dtstamp
organizer uid url
=cut
sub optional_unique_properties {
my $self = shift;
my @ret = qw(
contact dtstart dtend duration dtstamp
organizer url
);
push @ret, "uid" unless $self->rfc_strict;
return @ret;
}
=head2 optional_repeatable_properties
According to the iCalendar standard, the following properties may be
specified any number of times for free/busy entry:
attendee comment freebusy request-status
=cut
sub optional_repeatable_properties {
qw(
attendee comment freebusy request-status
);
}
=head1 AUTHOR
Best Practical Solutions, LLC E<lt>modules@bestpractical.comE<gt>
=head1 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 L<perlartistic>.
=cut
1;
|