<p>It looks like the case that when I delete an Argo cron workflow with <code>argo cron delete</code>, all the previous workflows (completed as well as still running ones) will also be deleted based on my observation. I'm not totally sure though and I haven't found a more detailed doc than <a href="https://argoproj.github.io/argo/cli/argo_cron_delete/" rel="nofollow noreferrer">https://argoproj.github.io/argo/cli/argo_cron_delete/</a>.</p>
<p>What if I'd like to keep all the history workflows when e.g. updating the frequency of a cron workflow, e.g. to run every Monday instead of every day? What would be the recommended way to do such an update?</p>

zyxue
<p>To add to Michael's answer:</p>
<p><code>CronWorkflows</code> are <em>owners</em> of all the <code>Workflows</code> they spawn, so how their respective <code>Workflows</code> are deleted when the parent <code>CronWorkflow</code> is deleted is governed by <a href="https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/" rel="nofollow noreferrer">Kubernetes' Garbage Collection policies</a>. Argo does not delete the child <code>Workflows</code> of a <code>CronWorkflow</code> when the latter is deleted, Kuebrnetes does. You can see the Kubernetes doc for more options on how to manage this.</p>
<p>(Edit: adding more info)</p>
<p>For example, to delete a <code>CronWorkflow</code> while leaving its children <code>Workflows</code> intact, you can run:</p>
<pre><code>kubectl delete cwf my-cwf --cascade=false
</code></pre>
<p>Source: I developed the <code>CronWorkflow</code> feature.</p>
