code: def schedule_crawl_cli(spider_name, workflow_name, dont_force_crawl, kwarg):
      
      extra_kwargs = {}
      for extra_kwarg in kwarg:
          if '=' not in extra_kwarg:
              raise TypeError(
                  'Bad formatted kwarg (%s), it should be in the form:\n'
                  '    --kwarg key=value' % extra_kwarg
              )
          key, value = extra_kwarg.split('=', 1)
  
          extra_kwargs[key] = value
  
      settings = {'CRAWL_ONCE_ENABLED': False}
      if dont_force_crawl:
          settings = {}
  
      try:
          crawler_job_uid = schedule_crawl(
              spider=spider_name,
              workflow=workflow_name,
              crawler_settings=settings,
              **extra_kwargs
          )
      except ScrapydResponseError as error:
          message = str(error)
          if 'spider' in message and 'not found' in message:
              click.echo('%s' % error)
              click.echo('\n Available spiders:')
              spiders = list_spiders()
              click.echo('\n'.join(spiders))
              raise click.Abort()
          else:
              raise
  
      crawler_job = models.CrawlerJob.query.filter_by(
          job_id=crawler_job_uid
      ).one()
  
      click.echo(
          'Once the job is started, you can see the logs of the job with the '
          'command:\n'
          '    inspirehep crawler job list\n'
          '    inspirehep crawler job logs %s\n'
          '\n'
          'and for the associated workflow (it\'s job_id should be %s):\n'
          '    inspirehep crawler workflow list\n'
          % (crawler_job.id, crawler_job_uid)
      )
docs: Schedule a new crawl.
  
      Note:
          Currently the oaiharvesting is done on inspire side, before this, so
          it's not supported here yet.