Add dev docs for the calendar providers API in Nextcloud 23

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst
2021-11-10 10:34:47 +01:00
parent dddf6b439b
commit 517d4459b3

View File

@@ -4,6 +4,39 @@ Calendar integration
On this page you can learn more about integrating with the Nextcloud calendar services.
Calendar providers
------------------
Nextcloud apps can register calendars in addition to the internal calendars of the Nextcloud CalDAV back end. Calendars are only loaded on demand, therefore a lazy provider mechanism is used.
To provide calendar(s) you have to write a class that implements the ``ICalendarProvider`` interface.
.. code-block:: php
<?php
use OCP\Calendar\ICalendarProvider;
class CalendarProvider implements ICalendarProvider {
public function getCalendars(string $principalUri, array $calendarUris = []): array {
$calendars = [];
// TODO: Run app specific logic to find calendars that belong to
// $principalUri and fill $calendars
// The provider can simple return an empty array if there is not
// a single calendar for the principal URI
if (empty($calendars)) {
return [];
}
// Return instances of \OCP\Calendar\ICalendar
return $calendars;
}
}
This ``CalendarProvider`` class is then registered in the :ref:`register method of your Application class<Bootstrapping>` with ``$context->registerCalendarProvider(CalendarProvider::class);``.
Resources
---------