code: def events_async(key, url=None, file=None, start=None, string_content=None,
                   end=None, fix_apple=False):
      
      t = Thread(target=request_data, args=(key, url, file, string_content, start, end, fix_apple))
  
      with event_lock:
          if key not in threads:
              threads[key] = []
  
          threads[key].append(t)
  
          if not threads[key][0].is_alive():
              threads[key][0].start()
docs: Trigger an asynchronous data request.
  
      :param key: key for data source to get result later
      :param url: iCal URL
      :param file: iCal file path
      :param string_content: iCal content as string
      :param start: start date
      :param end: end date
      :param fix_apple: fix known Apple iCal issues