Contexte

Le but est d'ajouter un calendrier Google (Google Agenda) dans les calendriers d'un utilisateur Nextcloud.

Le calendrier Google restera privé et ne passera donc pas en publique.

De plus, il ne sera accessible qu'en lecture. C'est comme ça...

Attention : L'accès au calendrier ne se fera pas avec les credentials du compte mais à l'aide d'une URL secrète (A ne surtout pas diffuser).

Côté Google

  • Se connecter au compte Google à ajouter dans Nextcloud.
  • Dans la partie gauche de l'interface web, cliquer sur les 3 petits points à droite du calendrier à intégrer dans Nextcloud (1). Puis sélectionner Paramètres et partage (2).

  • Faire défiler jusqu'à la partie Intégrer l'agenda.
  • L'adresse secrète au format iCal est disponible (1). Afin de mettre cette adresse dans le presse-papier, cliquer sur l'icône "Copier" en bout de ligne (2).

En utilisant cette adresse secrète, il n'est pas obligatoire de rendre l'agenda publique. De ce fait, le calendrier Google restera privé. Attention toutefois, son accès se fait sans credentials mais uniquement en lecture seule.

Côté Nextcloud

  • Se connecter sur le compte Nextcloud qui doit bénificer de l'agenda Google et se rendre dans la section Agenda.
  • Ajouter un nouvel agenda (1). Puis, créer un nouvel abonnement par lien (2).

  • Coller l'adresse secrète récupérée précédemment. Puis, valider.

  • Un nouveau calendrier calendar.google.com a été ajouté en lecture seule. Il est possible de la renommer pour lui donner un nom plus explicite.

Taux de rafraîchissement

Le taux de rafraîchissement (refresh rate), d'une souscription à un calendrier dans Nextcloud, est d'une fois toutes les semaines par défaut.

https://docs.nextcloud.com/server/19/user_manual/pim/calendar.html

Subscriptions are refreshed every week by default. Your admin may have changed this setting.

Modifier le taux de rafraîchissement :

  • Se connecter avec un terminal en root à l'instance Nextcloud.

  • Se positionner à la racine du site Nextcloud.

    cd /var/www/nextcloud.example.com/www/ # Par exemple
  • Obtenir le propriétaire du fichier config.php.

    ls -l config/config.php
    .rw-r----- nextcloud nextcloud 1.5 KB Wed May 25 10:17:35 2022 config/config.php
  • Modifier la valeur de l'option calendarSubscriptionRefreshRate de l'application calendrier de Nextcloud à 5 minutes.

    sudo -u nextcloud php8.0 occ config:app:set dav calendarSubscriptionRefreshRate --value "PT5M"
    # Résultat :
    # Config value calendarSubscriptionRefreshRate for app dav set to PT5M

    > - Utiliser l'utilisateur étant propriétaire du fichier config .php avec la commande sudo. > - Utiliser le binaire php correspondant à la version du Nextcloud.

  • Vérifier la prise en compte.

    sudo -u nextcloud php8.0 occ config:list | grep -i calendar
    # Résultat :
    #        "calendar": {
    #            "calendarSubscriptionRefreshRate": "PT5M",

Crontab

  • Editer la crontab de l'utilisateur étant propriétaire du fichier config.php vu précédemment.

    sudo -u nextcloud crontab -e
  • Ajouter une tâche toutes les 5 minutes exécutant le script php situé à la racine du site Nextcloud.

    */5 * * * * php8.0 -f /var/www/nextcloud.example.com/www/cron.php

    > Utiliser le binaire php correspondant à la version du Nextcloud.

  • Se connecter en admin sur l'interface web de Nextcloud. Puis se rendre dans Paramètres.

  • Dans la section Administration en bas à gauche, se rendre dans Paramètres de base.

  • S'assurer que les Tâches de fond soient configurées avec Cron.

Sources