Por qué no guardas esos valores en la página que contiene los 2 iframes?
Algo así como (en la página madre)
servicio = top.servicioframe.servicios.value
top.calendario.document.formub.hola.value=servicio
Lo que pasa que si lo pones tal cual dará error porque en el momento de leerlo el navegador aún no conoce esos objetos.
Mira, hice una prueba, te la pongo a ver si te sirve de referencia:
paginamadre.html:
<script language="javascript">
function pasar()
{
servicio = top.servicioframe.document.formu.servicios.value;
top.calendario.document.formub.hola.value=servicio
}
</script>
<body>
<iframe src="a.html" name="servicioframe" width="40%"></iframe>
<iframe src="b.html" name="calendario" width="40%"></iframe><br>
<input type="button" value="dalenomas" onClick="pasar()">
</body>
página a.html
<body >
<form name="formu">
<input type="text" name="servicios" value="pepe">
</form>
página b.html
<body >
<form name="formub">
<input type="text" name="hola">
</form>
</body>
Quizás a partir de esto te pueda orientar.
Seguro hay más formas de hacerlo, a mi me salió esta :)
Suerte