code: def make_eventrule(date_rule, time_rule, cal, half_days=True):
      
      _check_if_not_called(date_rule)
      _check_if_not_called(time_rule)
  
      if half_days:
          inner_rule = date_rule & time_rule
      else:
          inner_rule = date_rule & time_rule & NotHalfDay()
  
      opd = OncePerDay(rule=inner_rule)
      # This is where a scheduled function's rule is associated with a calendar.
      opd.cal = cal
      return opd
docs: Constructs an event rule from the factory api.