Você pode modificar seu script time.zsh para armazenar em cache o resultado em um arquivo, e cada script é chamado, testará a idade do arquivo.
CACHE_OUTPUT=/tmp/resul-cache.txt
AGE_TO_CACHE=10
if [ $(( $( stat --format=%Y $CACHE_OUTPUT ) + $AGE_TO_CACHE )) -gt $( date +%s ) && echo too old ) ] ;
then
cat $CACHE_OUTPUT
exit 0
fi
(
# where you fetch
# ...
#
) > $CACHE_OUTPUT