sig
  type t = {
    calendars : (string * GapiCalendarV3Model.FreeBusyCalendar.t) list;
    groups : (string * GapiCalendarV3Model.FreeBusyGroup.t) list;
    kind : string;
    timeMax : GapiDate.t;
    timeMin : GapiDate.t;
  }
  val calendars :
    (GapiCalendarV3Model.FreeBusyResponse.t,
     (string * GapiCalendarV3Model.FreeBusyCalendar.t) list)
    GapiLens.t
  val groups :
    (GapiCalendarV3Model.FreeBusyResponse.t,
     (string * GapiCalendarV3Model.FreeBusyGroup.t) list)
    GapiLens.t
  val kind : (GapiCalendarV3Model.FreeBusyResponse.t, string) GapiLens.t
  val timeMax :
    (GapiCalendarV3Model.FreeBusyResponse.t, GapiDate.t) GapiLens.t
  val timeMin :
    (GapiCalendarV3Model.FreeBusyResponse.t, GapiDate.t) GapiLens.t
  val empty : GapiCalendarV3Model.FreeBusyResponse.t
  val render :
    GapiCalendarV3Model.FreeBusyResponse.t -> GapiJson.json_data_model list
  val parse :
    GapiCalendarV3Model.FreeBusyResponse.t ->
    GapiJson.json_data_model -> GapiCalendarV3Model.FreeBusyResponse.t
  val to_data_model :
    GapiCalendarV3Model.FreeBusyResponse.t -> GapiJson.json_data_model
  val of_data_model :
    GapiJson.json_data_model -> GapiCalendarV3Model.FreeBusyResponse.t
end