let item ?id ~title ~state ?date ?enddate ?desc () =
  let i = Tdl_types.item () in
  i.item_title <- title;
  i.item_state <- state;
  (match date with None -> () | Some d -> i.item_date <- d);
  i.item_enddate <- enddate;
  i.item_desc <- desc;
  i.item_id <- id;
  i