Ghostboard pixel

Per Skript 2 CalDAV Kalender abgleichen

Per Skript 2 CalDAV Kalender abgleichen

Ich habe aktuell nach einer Möglichkeit gesucht 2 CalDAV Kalender gegeneinander abzugleichen, so das diese immer auf dem gleichen Stand sind. Dazu habe ich ein Skript erstellt, welches das für mich erledigt.

Mit diesem Skript habe ich die Möglichkeit beispielsweise einen Nextcloud Kalender und einen Google Kalender miteinander abzugleichen, oder x beliebige CalDAV Kalender.

Das Script überprüft bei Ausführung ob eine Verbindung erfolgreich war und gibt eine dementsprechende Meldung aus. Außerdem wird geschaut ob die Kalendereinträge synchron sind oder nicht. Wenn nicht, wird synchronisiert.

#!/bin/bash
# URL der ersten CalDAV-Quelle
caldav1="https://caldav.example1.com"
# URL der zweiten CalDAV-Quelle
caldav2="https://caldav.example2.com"
# Abrufen von Kalendereinträgen von caldav1 mit cURL
entries1=$(curl --silent --fail --user username:password "$caldav1/calendar.ics")
if [ $? -eq 0 ]; then
  # Abrufen von Kalendereinträgen von caldav2 mit cURL
  entries2=$(curl --silent --fail --user username:password "$caldav2/calendar.ics")
  if [ $? -eq 0 ]; then
    # Vergleich der Einträge
    if [ "$entries1" = "$entries2" ]; then
      echo "Kalender sind bereits synchronisiert"
    else
      echo "Kalender sind nicht synchronisiert"
    fi
  else
    echo "Fehler beim Abrufen von Kalendereinträgen von caldav2"
  fi
else
  echo "Fehler beim Abrufen von Kalendereinträgen von caldav1"
fi

Das ganze könnte man nun in einem Crontab regelmäßig ausführen lassen. Davor aber chmod +x das Skript ausführbar machen.