1<?php
2
3namespace Sabre\CalDAV;
4use Sabre\DAV;
5
6/**
7 * Calendar interface
8 *
9 * Implement this interface to allow a node to be recognized as an calendar.
10 *
11 * @copyright Copyright (C) 2007-2015 fruux GmbH (https://fruux.com/).
12 * @author Evert Pot (http://evertpot.com/)
13 * @license http://sabre.io/license/ Modified BSD License
14 */
15interface ICalendar extends DAV\ICollection {
16
17    /**
18     * Performs a calendar-query on the contents of this calendar.
19     *
20     * The calendar-query is defined in RFC4791 : CalDAV. Using the
21     * calendar-query it is possible for a client to request a specific set of
22     * object, based on contents of iCalendar properties, date-ranges and
23     * iCalendar component types (VTODO, VEVENT).
24     *
25     * This method should just return a list of (relative) urls that match this
26     * query.
27     *
28     * The list of filters are specified as an array. The exact array is
29     * documented by \Sabre\CalDAV\CalendarQueryParser.
30     *
31     * @param array $filters
32     * @return array
33     */
34    public function calendarQuery(array $filters);
35
36}
37