ICalendarObjectContainer.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. declare(strict_types=1);
  3. namespace Sabre\CalDAV;
  4. /**
  5. * This interface represents a node that may contain calendar objects.
  6. *
  7. * This is the shared parent for both the Inbox collection and calendars
  8. * resources.
  9. *
  10. * In most cases you will likely want to look at ICalendar instead of this
  11. * interface.
  12. *
  13. * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
  14. * @author Evert Pot (http://evertpot.com/)
  15. * @license http://sabre.io/license/ Modified BSD License
  16. */
  17. interface ICalendarObjectContainer extends \Sabre\DAV\ICollection
  18. {
  19. /**
  20. * Performs a calendar-query on the contents of this calendar.
  21. *
  22. * The calendar-query is defined in RFC4791 : CalDAV. Using the
  23. * calendar-query it is possible for a client to request a specific set of
  24. * object, based on contents of iCalendar properties, date-ranges and
  25. * iCalendar component types (VTODO, VEVENT).
  26. *
  27. * This method should just return a list of (relative) urls that match this
  28. * query.
  29. *
  30. * The list of filters are specified as an array. The exact array is
  31. * documented by \Sabre\CalDAV\CalendarQueryParser.
  32. *
  33. * @return array
  34. */
  35. public function calendarQuery(array $filters);
  36. }