code: def trigger_to_dict(trigger):
      
  
      data = OrderedDict()
  
      if isinstance(trigger, DateTrigger):
          data['trigger'] = 'date'
          data['run_date'] = trigger.run_date
      elif isinstance(trigger, IntervalTrigger):
          data['trigger'] = 'interval'
          data['start_date'] = trigger.start_date
  
          if trigger.end_date:
              data['end_date'] = trigger.end_date
  
          w, d, hh, mm, ss = extract_timedelta(trigger.interval)
  
          if w > 0:
              data['weeks'] = w
          if d > 0:
              data['days'] = d
          if hh > 0:
              data['hours'] = hh
          if mm > 0:
              data['minutes'] = mm
          if ss > 0:
              data['seconds'] = ss
      elif isinstance(trigger, CronTrigger):
          data['trigger'] = 'cron'
  
          if trigger.start_date:
              data['start_date'] = trigger.start_date
  
          if trigger.end_date:
              data['end_date'] = trigger.end_date
  
          for field in trigger.fields:
              if not field.is_default:
                  data[field.name] = str(field)
      else:
          data['trigger'] = str(trigger)
  
      return data
docs: Converts a trigger to an OrderedDict.