code: def unschedule_events(self, events, lambda_arn=None, lambda_name=None, excluded_source_services=None):
          excluded_source_services = excluded_source_services or []
          
          self._clear_policy(lambda_name)
  
          rule_names = self.get_event_rule_names_for_lambda(lambda_arn=lambda_arn)
          for rule_name in rule_names:
              self.delete_rule(rule_name)
              print('Unscheduled ' + rule_name + '.')
  
          non_cwe = [e for e in events if 'event_source' in e]
          for event in non_cwe:
              # TODO: This WILL miss non CW events that have been deployed but changed names. Figure out a way to remove
              # them no matter what.
              # These are non CWE event sources.
              function = event['function']
              name = event.get('name', function)
              event_source = event.get('event_source', function)
              service = self.service_from_arn(event_source['arn'])
              # DynamoDB and Kinesis streams take quite a while to setup after they are created and do not need to be
              # re-scheduled when a new Lambda function is deployed. Therefore, they should not be removed during zappa
              # update or zappa schedule.
              if service not in excluded_source_services:
                  remove_event_source(
                      event_source,
                      lambda_arn,
                      function,
                      self.boto_session
                  )
                  print("Removed event {}{}.".format(
                          name,
                          " ({})".format(str(event_source['events'])) if 'events' in event_source else '')
                  )
docs: Given a list of events, unschedule these CloudWatch Events.
  
          'events' is a list of dictionaries, where the dict must contains the string
          of a 'function' and the string of the event 'expression', and an optional 'name' and 'description'.