code: func (c *Client) GetEvent(url string) (*EventResponse, *Response, error) {
  
  	r, err := c.NewRequest("GET", url, nil)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	r.Header.Set("Accept", "application/vnd.eventstore.atom+json")
  
  	var b bytes.Buffer
  	resp, err := c.Do(r, &b)
  	if err != nil {
  		return nil, resp, err
  	}
  
  	if b.String() == "{}" {
  		return nil, resp, nil
  	}
  	var raw json.RawMessage
  	er := &EventAtomResponse{Content: &raw}
  	err = json.NewDecoder(bytes.NewReader(b.Bytes())).Decode(er)
  	if err == io.EOF {
  		return nil, resp, nil
  	}
  
  	if err != nil {
  		return nil, resp, err
  	}
  
  	var d json.RawMessage
  	var m json.RawMessage
  	ev := &Event{Data: &d, MetaData: &m}
  
  	err = json.Unmarshal(raw, ev)
  	if err == io.EOF {
  		err = nil
  	}
  	if err != nil {
  		return nil, resp, err
  	}
  
  	e := EventResponse{}
  	e.Title = er.Title
  	e.ID = er.ID
  	e.Updated = er.Updated
  	e.Summary = er.Summary
  	e.Event = ev
  
  	return &e, resp, nil
  }
docs: // GetEvent reads a single event from the eventstore.
  //
  // The event response will be nil in an error case.
  // *Response may be nil if an error occurs before the http request. Otherwise
  // it will contain the raw http response and status.
  // If an error occurs during the http request an *ErrorResponse will be returned
  // as the error. The *ErrorResponse will contain the raw http response and status
  // and a description of the error.