Aktualisierungsintervall von abonnierten Kalendern

Hallo zusammen,

wenn ich es richtig verstehe, kann ich seit Nextcloud 17.0.4 das Aktualisierungsintervall von abonnierten Kalendern ändern. Diese steht wohl per Standardeinstellung auf 1 Woche.

In der Datei “RefreshWebcalJob.php” im Verzeichnis “/apps/dav/lib/BackgroundJob/” findet sich dazu der Eintrag:

// if no refresh rate was configured, just refresh once a week
** $defaultRefreshRate = $this->config->getAppValue(‘dav’, ‘calendarSubscriptionRefreshRate’, ‘P1W’);**
** $refreshRate = $subscription[RefreshWebcalService::REFRESH_RATE] ?? $defaultRefreshRate;**

Ich nehme an, der Eintrag “P1W” steht für “Periodically 1 Week”???

Es geht mir um einen abonnierten Kalender, den ich über die Nextcloud-Kalenderoberfläche abonniert habe. Dieser Kalender soll jetzt nicht bloß einmal in der Woche, sondern z.B. alle 30 Minuten oder einmal die Stunde aktualisiert werden.

Wo kann ich denn diese Einstellungen für das Aktualisierungsintervall vornehmen? Trage ich in der o.g. Datei/Zeile statt “P1W” dann “P30M” (Periodically 30 Minutes) oder “P1H” (Periodically 1 Hour) ein? Ich habe das mal getestet, aber ich glaube, das waren nicht die richtigen Variablen. Oder die Einstellungen werden gar nicht dort vorgenommen?

Ich wäre euch sehr dankbar, wenn mir hierzu jemand weiterhelfen oder Tipps geben könnte.

Viele Grüße
Julix

Mit der Suchfunktion dieses Forums bis Du doch vertraut, oder?

1 Like

occ config:app:set dav calendarSubscriptionRefreshRate %value%

Das funktioniert leider nicht. Wegen Webhosting muss ich es über die OCC-App lösen, und gebe ich dort den o. a. Befehl ein, erscheint diese Meldung:

Wahrscheinlich muss ein Wert, anstatt %value% angegeben werden? Aber was genau wäre dann anstatt %value% anzugeben, wenn man z.B. die stündliche Aktualisierung möchte?

Julix

EDIT:

Wenn ich

config:app:set dav calendarSubscriptionRefreshRate --value=“15”

verwende (15 für ein Intervall von 15 Minuten) wird das akzeptiert. Allerdings erscheint unter

config:list
weiterhin der Eintrag
“dav”: {


“calendarSubscriptionRefreshRate”: null,

Sehr wahrscheinlich stimmt dann mein Value-String (–value=“15”) auch nicht?

Gemäß der folgenden Beschreibung, sollten folgende Intervalle möglich sein:

https://www.php.net/manual/de/dateinterval.construct.php

"P1W"   -> once every week
"P1M"   -> once every month
"PT1H"  -> once every hour
"PT30M" -> once every 30 minutes
...

Somit würde ich es z.B. mit folgendem Befehl versuchen:

occ config:app:set dav calendarSubscriptionRefreshRate --value=“PT30M”

occ config:app:set dav calendarSubscriptionRefreshRate --value=“PT30M”

Vielen Dank, j-ed, der Wert wurde jedenfalls schon mal übernommen.

Unter config:list bleibt es allerdings beim Eintrag

“dav”: {
“calendarSubscriptionRefreshRate”: null,

Aber vielleicht muss/soll sich dort gar nichts ändern?

Dise Frage kann ich Dir nicht beantworten. Was wirft denn der folgende Befehl aus:

occ config:app:get dav calendarSubscriptionRefreshRate

Da passiert gar nichts bzw. es wird nichts ausgegeben:

1

Ich kann Dir nicht sagen, ob dies eine Besonderheit der OCCweb-App ist, aber ich kann problemlos einen Wert setzen und mir diesen im Anschluss auch wieder anzeigen lassen:

> ./occ config:app:set dav calendarSubscriptionRefreshRate --value "PT1H"
Config value calendarSubscriptionRefreshRate for app dav set to PT1H

> ./occ config:app:get dav calendarSubscriptionRefreshRate
PT1H

Hast Du zwischendurch einmal versucht die OCCweb-App zu shließen und wieder zu öffnen?

Das = ist das Problem:

Falsch: --value="PT30M"

Richtig: --value "PT30M"

Bei mir haben beide Varianten funktioniert, obwohl gemäß der Hilfe nur die Zweite zulässig ist.

1 Like

Also der Befehl wird angenommen:

Allerdings unter Eingabe von

onfig:app:get dav calendarSubscriptionRefreshRate

weiterhin eine leere Ausgabe.

Auch der Eintrag unter config:list

“dav”: {
“buildCalendarReminderIndex”: “yes”,
“buildCalendarSearchIndex”: “yes”,
"calendarSubscriptionRefreshRate": null,
“chunks_migrated”: “1”,
“enabled”: “yes”,
“installed_version”: “1.13.0”,
“regeneratedBirthdayCalendarsForYearFix”: “yes”,
“types”: “filesystem”
},

steht weiterhin auf “null”.

Ich habe es mal getestet, eine Aktualisierung des abonnierten Kalenders findet in meinem Nextcloud-Kalender nicht statt.

Womöglich liegt es vielleicht an der OCC Web App.

Kann ich den Value-Wert nicht auch direkt in einer bestimmten Datei eintragen? Wäre das die "RefreshWebcalJob.php” im Verzeichnis “/apps/dav/lib/BackgroundJob/”? Und dort dann einfach den Standardwert “P1W” mit meinem Wert austauschen?

Da es über OCC Web offensichtlich nicht funktioniert, würde ich den Eintrag “PT30M” gerne direkt in der entsprechenden Datei vornehmen. Ich weiß allerdings nicht, in welcher Datei und an welcher Stelle dort.

Es gibt ja die eingangs erwähnte Datei “RefreshWebcalJob.php” im Verzeichnis “/apps/dav/lib/BackgroundJob/” und dort den Eintrag

// if no refresh rate was configured, just refresh once a week
$defaultRefreshRate = $this->config->getAppValue('dav', 
'calendarSubscriptionRefreshRate', 'P1W');
$refreshRate = $subscription[RefreshWebcalService::REFRESH_RATE] ??
$defaultRefreshRate;

Ist das die richtige Datei und die richtige Passage? Wenn ja, wo trage ich dann den Wert “PT30M” ein? Oder erfolgt das an ganz anderer Stelle?

Wie die Überschrift vermuten lässt, sollte dies der Ort sein an welchem der zu verwendende Standardwert gesetzt wird, wenn keine Einstellungen manuell vorgenommen wurde. In diesem Fall würde ich die Einstellung “P1W” durch “PT30M” ersetzen.

Ok, vielen Dank.

Ich habe das mal geändert:

Alt:

Blockquote
// if no refresh rate was configured, just refresh once a week
$defaultRefreshRate = $this->config->getAppValue(‘dav’,
‘calendarSubscriptionRefreshRate’, 'P1W’);
$refreshRate = $subscription[RefreshWebcalService::REFRESH_RATE] ??
$defaultRefreshRate;

Neu:

// if no refresh rate was configured, just refresh once a week
$defaultRefreshRate = $this->config->getAppValue(‘dav’,
‘calendarSubscriptionRefreshRate’, ‘PT30M’);
$refreshRate = $subscription[RefreshWebcalService::REFRESH_RATE] ??
$defaultRefreshRate;

Mal sehen, ob das was bringt.

Im Changelog und dem Verweis auf die Anleitung findet sich leider (immer noch) nichts.

Ist zwar nun etwas her, suchende werden dieses Thema aber finden…

Bei mir in Version 20 funktionieren die Befehle (in älteren Versionen schon) nicht und sie werden mit einem Fehler quittiert. Die Syntax scheint geändert: deswegen hier eine aktualisierte Version der Befehle (ich benutze SSH mit root zugriff):

occ config:app:set --value “PT30M” dav calendarSubscriptionRefreshRate

occ config:app:get dav calendarSubscriptionRefreshRate

da ich mit anderen Berechtingungen arbeiten muss und PHP eigens aufrufe hier noch der vollständige Befehl:

sudo -u username php occ config:app:set --value “PT30M” dav calendarSubscriptionRefreshRate

Gruß
Rabbit

Wäre es nicht schön, wenn Du z.B. einen Screenshot von dem Befehl und der angezeigten Fehlermeldung postest, sodass man weiß welcher Fehler angezeigt wird?

Natürlich kann ich, hab es nur für nicht wichtig erachtet… :wink:

occ-error1

PRÄZISE Informationen sind immer wichtig :wink:

Das beschriebene Problem kann ich auf meinem Server mit Nextcloud 20.0.7. nicht nachvollziehen. Da Du jedoch die üblichen Informationen über Deine Installationsumgebung und die eingesetzen Software-Versionen nicht bereit gestellt hast sehe ich mich außer Stande die Problemursache weiter einzukreisen. Vielleicht hilft Dir aber folgendes Posting weiter, was ebenfalls auf die angezeigte Fehlermeldung eingeht (Tant G. kennt sicherlich noch mehr Treffer):

Na, dann möchte ich die Informationen auch noch nachliefern… :slight_smile:

  • Proxmox VM
  • Ressourcen sind ausreichend zugeteilt :wink:
  • Betriebssystem Ubuntu Linux 20.10
  • Nextcloud Version 20.0.7
  • Apache version 2.4.46
  • PHP Version 7.4.9
  • DB MySQL version 8.0.23

Läuft hinter einer Firewall, mit einem reverse-proxy, up-to-date, mit meiner standard Webserver-Config …
Verhalten sonst ist alles normal.

Da es sich um einen occ-Befehl (Config) handelt, würde ich am ehesten dort die Ursache vermuten, da er wie auf dem Bild beschrieben eine eindeutige Syntax verlangt, die eben anders ist als die in den “alten” Posts.

er verlangt die Syntax mein bild:

config:app:set --value VALUE

Wobei die Syntax in dem Post von Julix9 auch verlangt wurde, warum er das damals gefuttert hatte, ist mir unklar. In einer anderen Installation mit einer veralteten nextcloud 14.0.7 (schande auf mein Haupt, updates mag er aber nicht…) hat er den Befehl in der Syntax:

config:app:set --value VALUE

genommen.