HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/files.wb-cloud.nl/public_html/core/doc/admin/groupware/calendar.html

<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
  <meta charset="utf-8" />
  <meta name="readthedocs-addons-api-version" content="1"><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Calendar / CalDAV &mdash; Nextcloud latest Administration Manual latest documentation</title>
      <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />
      <link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
      <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=8ff6e0db" />
      <link rel="stylesheet" type="text/css" href="../_static/dark_mode_css/general.css?v=c0a7eb24" />
      <link rel="stylesheet" type="text/css" href="../_static/dark_mode_css/dark.css?v=70edf1c7" />

  
      <script src="../_static/jquery.js?v=5d32c60e"></script>
      <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
      <script src="../_static/documentation_options.js?v=f4332903"></script>
      <script src="../_static/doctools.js?v=9bcbadda"></script>
      <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
      <script src="../_static/clipboard.min.js?v=a7894cd8"></script>
      <script src="../_static/copybutton.js?v=f281be69"></script>
      <script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
      <script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
    <script src="../_static/js/theme.js"></script>
    <script src="../_static/js/versions.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Contacts / CardDAV" href="contacts.html" />
    <link rel="prev" title="Groupware" href="index.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="../contents.html">
            
              <img src="../_static/logo-white.png" class="logo" alt="Logo"/>
          </a>
              <div class="switch-menus">
                <div class="version-switch"></div>
                <div class="language-switch"></div>
              </div>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <p class="caption" role="heading"><span class="caption-text">Getting Started</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release notes</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Critical changes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Installation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Configuration</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../configuration_server/index.html">Nextcloud configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../occ_command.html">Using the occ command</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../webhook_listeners/index.html">Webhook Listeners</a></li>
<li class="toctree-l1"><a class="reference internal" href="../windmill_workflows/index.html">Windmill Workflows</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Files</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Apps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../exapps_management/index.html">ExApps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Users</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../desktop/index.html">Desktop Clients</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Groupware</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Groupware</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">Calendar / CalDAV</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#calendar-server-settings">Calendar server settings</a></li>
<li class="toctree-l3"><a class="reference internal" href="#events">Events</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#hide-export-buttons">Hide export buttons</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#invitations">Invitations</a></li>
<li class="toctree-l3"><a class="reference internal" href="#birthday-calendar">Birthday calendar</a></li>
<li class="toctree-l3"><a class="reference internal" href="#reminder-notifications">Reminder notifications</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#background-jobs">Background jobs</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#event-alarm-types">Event alarm types</a></li>
<li class="toctree-l3"><a class="reference internal" href="#freebusy">FreeBusy</a></li>
<li class="toctree-l3"><a class="reference internal" href="#subscriptions">Subscriptions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#custom-public-calendars">Custom public calendars</a></li>
<li class="toctree-l4"><a class="reference internal" href="#refresh-rate">Refresh rate</a></li>
<li class="toctree-l4"><a class="reference internal" href="#allow-subscriptions-on-local-network">Allow subscriptions on local network</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#trash-bin">Trash bin</a></li>
<li class="toctree-l3"><a class="reference internal" href="#resources-and-rooms">Resources and rooms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#known-backends">Known backends</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#rate-limits">Rate limits</a></li>
<li class="toctree-l3"><a class="reference internal" href="#example-event">Example event</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="contacts.html">Contacts / CardDAV</a></li>
<li class="toctree-l2"><a class="reference internal" href="mail.html">Mail</a></li>
<li class="toctree-l2"><a class="reference internal" href="out_of_office.html">Out-of-office feature</a></li>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Office</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Maintenance</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Links</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://help.nextcloud.com/">Community Help Forum</a></li>
<li class="toctree-l1"><a class="reference external" href="https://docs.nextcloud.com/">User Manuals</a></li>
<li class="toctree-l1"><a class="reference external" href="https://docs.nextcloud.com/">Developer Manuals</a></li>
<li class="toctree-l1"><a class="reference external" href="https://nextcloud.com/install/">Download</a></li>
<li class="toctree-l1"><a class="reference external" href="https://apps.nextcloud.com">App Store</a></li>
<li class="toctree-l1"><a class="reference external" href="https://help.nextcloud.com/t/translation-knowledge-valid-for-the-entire-nextcloud-project-wiki/51550">Translations</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/nextcloud/">GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule">Supported versions</a></li>
<li class="toctree-l1"><a class="reference external" href="https://nextcloud.com/enterprise/">Nextcloud Enterprise</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/nextcloud/server/blob/master/COPYING-README">License</a></li>
<li class="toctree-l1"><a class="reference external" href="https://nextcloud.com/">Nextcloud GmbH</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../contents.html">Nextcloud latest Administration Manual</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content style-external-links">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
          <li class="breadcrumb-item"><a href="index.html">Groupware</a></li>
      <li class="breadcrumb-item active">Calendar / CalDAV</li>
      <li class="wy-breadcrumbs-aside">
              <a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/groupware/calendar.rst" class="fa fa-github"> Edit on GitHub</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="calendar-caldav">
<h1>Calendar / CalDAV<a class="headerlink" href="#calendar-caldav" title="Link to this heading"></a></h1>
<section id="calendar-server-settings">
<h2>Calendar server settings<a class="headerlink" href="#calendar-server-settings" title="Link to this heading"></a></h2>
<p>The calendar server can be configured on the Groupware admin settings page.
You can globally disable sending invitation emails for events, generating the built-in birthday
calendar, and sending email notifications about upcoming events.</p>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/settings_calendar-server.png"><img alt="../_images/settings_calendar-server.png" src="../_images/settings_calendar-server.png" style="width: 754.8px; height: 519.6px;" />
</a>
</figure>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 30: </span>The section will be hidden if no app makes use of the CalDAV backend.</p>
</div>
<p>Starting from Nextcloud 30, the calendar server settings section will be hidden if no app uses the
CalDAV backend.
Install and enable an appropriate app to show the section again, e.g.
<a class="reference external" href="https://apps.nextcloud.com/apps/calendar">Calendar</a> or
<a class="reference external" href="https://apps.nextcloud.com/apps/tasks">Tasks</a>.</p>
</section>
<section id="events">
<h2>Events<a class="headerlink" href="#events" title="Link to this heading"></a></h2>
<p>You can customize the events user interface.</p>
<section id="hide-export-buttons">
<h3>Hide export buttons<a class="headerlink" href="#hide-export-buttons" title="Link to this heading"></a></h3>
<p>By default users can export their calendar data from the event editor. Admins can disable this feature:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">calendar</span> <span class="n">hideEventExport</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">yes</span>
</pre></div>
</div>
</section>
</section>
<section id="invitations">
<h2>Invitations<a class="headerlink" href="#invitations" title="Link to this heading"></a></h2>
<p>Nextcloud can send invitations for event attendees if this option is activated.
Be sure to have configured the email server first so that the invitations go through.
See <a class="reference internal" href="../configuration_server/email_configuration.html"><span class="doc">Email</span></a>.</p>
<p>You must also make sure the “Send invitations to attendees” setting is activated in the admin setting groupware section for the emails to be sent.</p>
</section>
<section id="birthday-calendar">
<h2>Birthday calendar<a class="headerlink" href="#birthday-calendar" title="Link to this heading"></a></h2>
<p>Contacts that have a birthday date filled are automatically added as events to a special Birthday calendar.
If you deactivate this option, all users will no longer have this calendar.</p>
<p>When activating this option, users birthday calendars won’t be available right away because they need to be generated
by a background task. See <a class="reference internal" href="../occ_command.html"><span class="doc">Using the occ command</span></a> section DAV commands.</p>
</section>
<section id="reminder-notifications">
<h2>Reminder notifications<a class="headerlink" href="#reminder-notifications" title="Link to this heading"></a></h2>
<p>Nextcloud handles sending notifications for events.</p>
<p>Nextcloud currently handles two types of reminder notifications: Built-in Nextcloud notifications and
email notifications. For the emails to be send, you’ll need a configured email server.
See <a class="reference internal" href="../configuration_server/email_configuration.html"><span class="doc">Email</span></a>.</p>
<p>Make sure the “Send notifications for events” and the “Enable notifications for events via push” are activated in the admin setting groupware section for this feature to work.</p>
<section id="background-jobs">
<h3>Background jobs<a class="headerlink" href="#background-jobs" title="Link to this heading"></a></h3>
<p>Running background jobs can be an expensive task when there are a large number of events, reminders, event sharees and attendees. However, this needs to happen
often enough so that the notifications are sent on time. To accomplish this you should use a dedicated <code class="docutils literal notranslate"><span class="pre">occ</span></code> command that runs
more often than the standard <code class="docutils literal notranslate"><span class="pre">cron</span></code> system:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># crontab -u www-data -e</span>
<span class="o">*/</span><span class="mi">5</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">send</span><span class="o">-</span><span class="n">event</span><span class="o">-</span><span class="n">reminders</span>
</pre></div>
</div>
<p>See <a class="reference internal" href="../occ_command.html"><span class="doc">Using the occ command</span></a> section Dav commands.</p>
<p>You’ll also need to change the sending mode from <code class="docutils literal notranslate"><span class="pre">background-job</span></code> to <code class="docutils literal notranslate"><span class="pre">occ</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">sendEventRemindersMode</span> <span class="o">--</span><span class="n">value</span> <span class="n">occ</span>
</pre></div>
</div>
<p>If you don’t use this dedicated command, the reminders will just be sent as soon as possible when the background jobs run.</p>
</section>
</section>
<section id="event-alarm-types">
<h2>Event alarm types<a class="headerlink" href="#event-alarm-types" title="Link to this heading"></a></h2>
<p>Nextcloud allows users to set notification and email reminders for events. Admins can enforce one of the two options:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">calendar</span> <span class="n">forceEventAlarmType</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">EMAIL</span>
</pre></div>
</div>
<p>Allowed values are <code class="docutils literal notranslate"><span class="pre">EMAIL</span></code> (email) and <code class="docutils literal notranslate"><span class="pre">DISPLAY</span></code> (notification).</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This only enforces alarm types for events created with the Nextcloud Calendar. This setting has no influence for other connected applications.</p>
</div>
</section>
<section id="freebusy">
<h2>FreeBusy<a class="headerlink" href="#freebusy" title="Link to this heading"></a></h2>
<p>When logged-in, Nextcloud can return FreeBusy information for all users of the instance, to know when they are available so that you can schedule an event at the right time.
If you don’t wish for users to have this capability, you can disable FreeBusy for the whole instance with the following setting:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">disableFreeBusy</span> <span class="o">--</span><span class="n">value</span> <span class="n">yes</span>
</pre></div>
</div>
</section>
<section id="subscriptions">
<h2>Subscriptions<a class="headerlink" href="#subscriptions" title="Link to this heading"></a></h2>
<section id="custom-public-calendars">
<h3>Custom public calendars<a class="headerlink" href="#custom-public-calendars" title="Link to this heading"></a></h3>
<p>In addition to the public holiday calendars, it is possible to define your own calendar.
They act in the same way as the holiday calendars and can be configured with the following command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">calendar</span> <span class="n">publicCalendars</span> <span class="o">--</span><span class="n">value</span> <span class="s1">&#39;[{&quot;name&quot;:&quot;My custom calendar&quot;,&quot;source&quot;:&quot;http://example.com/example.ics&quot;}]&#39;</span>
</pre></div>
</div>
<p>The setting is specified as a JSON array of objects with the following options:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">name</span></code> - name of the calendar in the listing</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">source</span></code> - URL of the calendar’s ICS file</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">displayName</span></code> - optional, to overwrite the name of the subscribed calendar</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">description</span></code> - optional, description in the listing</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">authors</span></code> - optional, copyrights and so on</p></li>
</ul>
</section>
<section id="refresh-rate">
<h3>Refresh rate<a class="headerlink" href="#refresh-rate" title="Link to this heading"></a></h3>
<p>Calendar subscriptions are cached on server and refreshed periodically.
If the calendar server provides a <a class="reference external" href="https://icalendar.org/New-Properties-for-iCalendar-RFC-7986/5-7-refresh-interval-property.html">refresh interval</a>, it is respected.
Otherwise the default refresh rate is one day.</p>
<p>To set up a different default refresh rate for calendars without server side refresh rates, change the <code class="docutils literal notranslate"><span class="pre">calendarSubscriptionRefreshRate</span></code> option:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">calendarSubscriptionRefreshRate</span> <span class="o">--</span><span class="n">value</span> <span class="s2">&quot;PT6H&quot;</span>
</pre></div>
</div>
<p>Where the value is a <a class="reference external" href="https://www.php.net/manual/dateinterval.construct.php">DateInterval</a>, for instance with the above command all of the Nextcloud instance’s calendars would be refreshed every 6 hours.</p>
</section>
<section id="allow-subscriptions-on-local-network">
<h3>Allow subscriptions on local network<a class="headerlink" href="#allow-subscriptions-on-local-network" title="Link to this heading"></a></h3>
<p>Because of security issues, Nextcloud forbids subscriptions from local network hosts.
If you need to allow this, change the following parameter to:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">webcalAllowLocalAccess</span> <span class="o">--</span><span class="n">value</span> <span class="n">yes</span>
</pre></div>
</div>
</section>
</section>
<section id="trash-bin">
<h2>Trash bin<a class="headerlink" href="#trash-bin" title="Link to this heading"></a></h2>
<p>Nextcloud supports a calendar, events and tasks trash bin.</p>
<p>The default delay before objects are purged from the trash bin is 30 days. A background job runs every 6 hours to clean up expired objects.</p>
<p>To set up a different retention period, change the <code class="docutils literal notranslate"><span class="pre">calendarRetentionObligation</span></code> option:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">calendarRetentionObligation</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">2592000</span>
</pre></div>
</div>
<p>Where the value is the number of seconds for the period. Setting the value to <code class="docutils literal notranslate"><span class="pre">0</span></code> disables the trash bin.</p>
</section>
<section id="resources-and-rooms">
<h2>Resources and rooms<a class="headerlink" href="#resources-and-rooms" title="Link to this heading"></a></h2>
<p>The Nextcloud CalDAV backend supports resources and rooms. Resources and rooms can be booked for appointments, and the system will schedule them so they can only be used once at a time. Those resources and rooms have to be provided by an app that provides a backend for this.</p>
<p>Once a backend app is installed, the app typically allows admins, or even users, to define the resources, but this is subject of the specific implementation.</p>
<p>Nextcloud periodically queries all registered backends, therefore new/updated resources and rooms will show with a delay.</p>
<section id="known-backends">
<h3>Known backends<a class="headerlink" href="#known-backends" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/nextcloud/calendar_resource_management">Calendar Resource Management</a>: database backend with CLI configuration for admins</p></li>
</ul>
</section>
</section>
<section id="rate-limits">
<h2>Rate limits<a class="headerlink" href="#rate-limits" title="Link to this heading"></a></h2>
<p>Nextcloud rate limits the creation of calendars and subscriptions if too many items are created within a short time frame. The default is 10 calendars or subscriptions per hour. This can be customized as follows:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Set limit to 15 items per 30 minutes</span>
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">rateLimitCalendarCreation</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">integer</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">15</span>
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">rateLimitPeriodCalendarCreation</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">integer</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">1800</span>
</pre></div>
</div>
<p>Additionally, the maximum number of calendars and subscriptions a user may create is limited to 30 items. This can be customized too:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Allow users to create 50 calendars/subscriptions</span>
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">maximumCalendarsSubscriptions</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">integer</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">50</span>
</pre></div>
</div>
<p>or:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Allow users to create calendars/subscriptions without restriction</span>
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dav</span> <span class="n">maximumCalendarsSubscriptions</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">integer</span> <span class="o">--</span><span class="n">value</span><span class="o">=-</span><span class="mi">1</span>
</pre></div>
</div>
</section>
<section id="example-event">
<h2>Example event<a class="headerlink" href="#example-event" title="Link to this heading"></a></h2>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 32.0.0.</span></p>
</div>
<p>When a user logs in for the first time an example event is created in their personal calendar.
As an admin, you can disable the creation of the example event.
It is also possible to replace the default event with a custom one.</p>
<p>To disable the creation of the example event for new users:</p>
<ol class="arabic simple">
<li><p>Navigate to the Groupware settings in the admin settings.</p></li>
<li><p>Scroll down to the “Example content” section.</p></li>
<li><p>Disable the “Add example event …” setting with the checkbox</p></li>
</ol>
<p>To replace the built-in default event with a custom one:</p>
<ol class="arabic simple">
<li><p>Navigate to the Groupware settings in the admin settings.</p></li>
<li><p>Press the “Import calendar event” button.</p></li>
<li><p>Choose an ICS file to be imported.</p></li>
</ol>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The start and end date will be overwritten with dates in the future when a custom event
is supplied to ensure that the user sees the event.</p>
</div>
<p>It is also possible to revert to the default built-in event by pressing the “Reset to default”
button next to the import button.</p>
</section>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="index.html" class="btn btn-neutral float-left" title="Groupware" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="contacts.html" class="btn btn-neutral float-right" title="Contacts / CardDAV" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2016-2025 Nextcloud GmbH and Nextcloud contributors.</p>
  </div>

   

</footer>
        </div>
      </div>
    </section>
  </div>
  

  <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
    <span class="rst-current-version" data-toggle="rst-current-version">
      ☁️ latest
      <span class="fa fa-caret-down"></span>
    </span>
    <div class="rst-other-versions">
      <dl>
        <dt>☁️ Versions</dt>
        
        <dd style="width: 32%">
          <a href="https://docs.nextcloud.com/server/latest/admin_manual"
             
             style="color: var(--dark-link-color);"
             
          >
            latest
          </a>
        </dd>
        
        <dd style="width: 32%">
          <a href="https://docs.nextcloud.com/server/stable/admin_manual"
             
          >
            stable
          </a>
        </dd>
        
        <dd style="width: 32%">
          <a href="https://docs.nextcloud.com/server/31/admin_manual"
             
          >
            31
          </a>
        </dd>
        
        <dd style="width: 32%">
          <a href="https://docs.nextcloud.com/server/30/admin_manual"
             
          >
            30
          </a>
        </dd>
        
        <dd style="width: 32%">
          <a href="https://docs.nextcloud.com/server/29/admin_manual"
             
          >
            29
          </a>
        </dd>
        
      </dl>
    </div>
  </div>
<script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>