def move_to(self, folder_id):
    """
    :param str folder_id: The Calendar ID to where you want to move the event to.
    Moves an event to a different folder (calendar).  ::

      event = service.calendar().get_event(id='KEY HERE')
      event.move_to(folder_id='NEW CALENDAR KEY HERE')
    """
    if not folder_id:
      raise TypeError(u"You can't move an event to a non-existant folder")

    if not isinstance(folder_id, BASESTRING_TYPES):
      raise TypeError(u"folder_id must be a string")

    if not self.id:
      raise TypeError(u"You can't move an event that hasn't been created yet.")

    self.refresh_change_key()
    response_xml = self.service.send(soap_request.move_event(self, folder_id))
    new_id, new_change_key = self._parse_id_and_change_key_from_response(response_xml)
    if not new_id:
      raise ValueError(u"MoveItem returned success but requested item not moved")

    self._id = new_id
    self._change_key = new_change_key
    self.calendar_id = folder_id
    return self