#!/bin/bash set -e . ~/.cadaver_cals tempdir=$(mktemp -d) tempdir=$(readlink -f "$tempdir") trap "/bin/rm -f \"$tempdir\"/*.ics; rmdir \"$tempdir\"" QUIT INT EXIT for ics in "$@"; do bevents=($(grep -n BEGIN:VEVENT "$file" | cut -d: -f1)) eevents=($(grep -n END:VEVENT "$file" | cut -d: -f1)) ehead=${bevents[0]} let "ehead -= 1" bfoot=$(wc -l < $file) let "bfoot -= ${eevents[-1]}" for (( i=0; i < ${#bevents[@]}; i++)); do head -n $ehead "$file" > "$file"-$i.ics sed -n ${bevents[$i]},${eevents[$i]}p "$file" >> "$file"-$i.ics tail -n $bfoot "$file" >> "$file"-$i.ics done done (cd "$tempdir"; cadaver $CADAVER_CAL << EOC mput *.ics exit EOC rm *.ics; ) rmdir $tempdir; trap - QUIT INT EXIT