@lchallen ,
It sounds like you want to remove all calendar events not tied to an assignment. If you strip the dates, then none of them would be dated, and all should be removed. Is that correct?
I copied a course using the web UI and then looked at the call that was made by Canvas. It was an API call, which is great! The call was a PUT to the Update a content migration endpoint and not an internal call.
Inside of the form data that was sent was a copy property that contained another object. This is what was part of the copy object when I checked everything but the calendar events. Rather than using copy[all_calender_events]="0", it left it out completely. Here is the payload that was sent.
{
"id":"1200036",
"workflow_state":"waiting_for_select",
"user_id":"2175488",
"copy":{
"all_course_settings":"1",
"all_syllabus_body":"1",
"all_context_modules":"1",
"all_assignments":"1",
"all_quizzes":"1",
"all_assessment_question_banks":"1",
"all_discussion_topics":"1",
"all_wiki_pages":"1",
"all_context_external_tools":"1",
"all_rubrics":"1",
"all_attachments":"1"
}
}
I have not looked into the "except" thing. It also sounds like through the API and not the web, you would send that as a POST to the Create a content migration endpoint. There may be other parameters required.
I've not messed much with content copy through the API, so hopefully this is enough to get you going in the right direction or someone else who has done it can step in with more wisdom.