Here is a Python script that I think does what you want. I don't know much about the .geo file format. Maybe someone else can help with that. I think it is not necessary to intersect the cylinders with planes first since the intersection of the two cylinders will be finite.
Code:
from netgen.csg import *
cyl1 = Cylinder(Pnt(0, 0, -10), Pnt(0,0,10), 4)
cyl2 = Cylinder(Pnt(-10, 0, 0), Pnt(10,0,0), 5)
cutcone2 = cyl1 * cyl2
geo = CSGeometry()
geo.Add(cutcone2)
mesh = geo.GenerateMesh(maxh=.5)