'cancel_activity' Command
1) If no activities with specified key field values exist in the system the command is rejected.
2) If an activity with specified key field values exists in the system:
2a) activity properties and fields (not inventory) are updated by the 'update_appointment' command
2b) activity is canceled
2c) all duplicating activities are deleted
3) If existing activity is not-scheduled and 'date' field is not defined:
3a) if the resource for the current day is valid, the activity is rescheduled to the current date and then canceled
3b) if the resource is not working or not valid for the current day and fallback resource is specified and valid – the activity is moved to the fallback resource, rescheduled to the current date and then canceled
3c) if the resource is not working or not valid for the current day and fallback resource is not specified or is invalid, the command is rejected and the activity is not canceled.