#!/bin/bash

if [ "${#@}" -ne 3 ]; then
  echo "Aufruf:"
  echo "  ${0} Datum Beginn Titel"
  echo "  ${0} 2010-07-28 19:00 \"Jahreshauptversammlung Feuerwehr\""
  exit 1
fi

Datum="${1}"
Beginn="${2}"
Titel="${3}"

# Vorhandene Terminliste auslesen
Termine="$(google calendar list -d ${Datum} --title ${Titel})"
Termine=${Termine#*]$'\n'}$'\n'

while [ -n "${Termine}" ]; do
  t=${Termine%%$'\n'*}  # Erste Zeile aus Terminliste auslesen
  TerminTitel[${#TerminTitel[*]}]=${t%,*} # Titel auslösen

  t=${t##*,} # Titel entfernen

  b=${t%% - *} # Ende-Zeit entfernen
  TerminBeginn[${#TerminBeginn[*]}]=${b#* * } # Uhrzeit auslösen

  e=${t##* - } # Beginn-Zeit entfernen
  TerminEnde[${#TerminEnde[*]}]=${e#* * } # Uhrzeit auslösen

  Termine=${Termine#*$'\n'} # Erste Zeile aus Terminliste löschen
done

# Alle Termine löschen
y=""
for ((i=0; i < ${#TerminTitel[*]}; i++)) {
  y="${y}y"$'\n'
}
echo -n "${y}" | google calendar delete -d ${Datum} --title=${Titel} >/dev/null

# Verbleibende Termine neu anlegen
for ((i=0; i < ${#TerminTitel[*]}; i++)) {
  if [ "${Beginn#0}" != "${TerminBeginn[$i]#0}" ]; then
    google calendar add "${Datum} ${TerminBeginn[$i]}-${TerminEnde[$i]} ${TerminTitel[$i]}"
  fi
}

