#compdef cal ncal local calargs ncalargs calargs=('-3[three in a row]' '-m[Monday as first day of the week]') ncalargs=('-J[display Julian calendar]' '-e[display date of western Easter]' '-o[display date of orthodox Easter]' '-p[assume as by ncal]' '-s[country code]' '-w[print number of the week below each column]') case $service in (cal) _arguments \ "${calargs[@]}" \ '-j[display Julian days]' \ '-y[display a calendar for the current year]' \ '1:month:' \ '2:year:' ;; (ncal) _arguments \ "${ncalargs[@]}" \ '-j[display Julian days]' \ '-y[display a calendar for the current year]' \ '1:month:' \ '2:year:' ;; esac