NAME

RDF::iCalendar::Exporter - export RDF data to iCalendar format

SYNOPSIS

use RDF::iCalendar;

my $input    = "http://example.com/calendar-data.ics";
my $exporter = RDF::iCalendar::Exporter->new;

print $_ foreach $exporter->export_calendars($input);

DESCRIPTION

This module reads RDF and writes iCalendar files.

This is a subclass of RDF::vCard::Exporter, so it can also export vCards.

Constructor

  • new(%options)

    Returns a new RDF::iCalendar::Exporter object.

    There are no valid options at the moment - the hash is reserved for future use.

Methods

  • export_calendars($input, %options)

    Returns a list of iCalendars found in the input, in no particular order.

    The input may be a URI, file name, RDF::Trine::Model or anything else that can be handled by the rdf_parse method of RDF::TrineShortcuts.

    Each item in the list returned is an RDF::iCalendar::Entity, though that class overloads stringification, so you can just treat each item as a string mostly.

  • export_calendar($input, $subject, %options)

    As per export_calendars but exports just a single calendar.

    The subject provided must be an RDF::Trine::Node::Blank or RDF::Trine::Node::Resource of type icaltzd:Vcalendar.

  • export_component($input, $subject, %options)

    Exports a component from a calendar - e.g. a single VEVENT

    The subject provided must be an RDF::Trine::Node::Blank or RDF::Trine::Node::Resource of type icaltzd:Vevent, icaltzd:Vtodo or similar.

  • export_cards($input, %options)

    See RDF::vCard::Exporter.

  • export_card($input, $subject, %options)

    See RDF::vCard::Exporter.

RDF Input

Input is expected to use the newer of the 2005 revision of the W3C's vCard vocabulary http://www.w3.org/TR/rdfcal/. (Note that even though this was revised in 2005, the term URIs include "2002" in them.)

Some extensions from the namespace http://buzzword.org.uk/rdf/icaltzdx# are also supported.

iCalendar Output

The output of this module aims at iCalendar (RFC 2445) compliance. In the face of weird input data though, (e.g. an DTSTART property that is a URI instead of a literal) it can pretty easily descend into exporting junk, non-compliant iCalendars.

The output has barely been tested in any iCalendar-supporting software, so beware.

SEE ALSO

RDF::iCalendar.

RDF::vCard, HTML::Microformats, RDF::TrineShortcuts.

http://www.w3.org/TR/rdfcal/.

http://www.perlrdf.org/.

AUTHOR

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT

Copyright 2011, 2013 Toby Inkster

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.