Aunque la importación de sesiones al plugin Attendance de Moodle presenta errores, aquí va un truco para quien le pueda servir de ayuda.
Por defecto, el plugin Attendance de Moodle dispone de la opción para importar sesiones de forma masiva a los cursos. Para llevar a cabo esta acción debemos dirigirnos a Administración->Plugins->Attendance->Importar Sesiones

Para llevar a cabo la importación de sesiones en Moodle, debemos construir un archivo csv con los siguientes campos:
- shortname: Contiene el nombre corto del curso en Moodle
- description: Contiene el nombre largo o ‘Fullname‘ del curso de Moodle seguido del número de sesión a la que haga referencia.
- date: Contiene la fecha en la que se lleva a cabo la sesión. En nuestro caso hablamos de una sesión por día
- starttime: Contiene la hora de inicio de la sesión. Por lo general este campo se refiere a la hora de comienzo de la clase.
- endtime: Contiene la hora de fin de la sesión. Al contrario que el campo anterior, este campo se refiere a la hora de finalización de una clase o sesión.
Por ejemplo, para subir las sesiones de dos cursos ya configurados en Moodle, un ejemplo de archivo csv para cargar sesiones al plugin Attendance podría ser como sigue:

Por supuesto el rango de fechas que se define para definir las sesiones de los cursos, no puede exceder las fechas de inicio y fin configuradas para esos cursos, una vez se crean en Moodle.
¿Cómo generar archivo CSV para importar sesiones al plugin Attendance de Moodle?
Para generar el archivo csv se necesita un archivo Excel con la lista de cursos que hayan sido subidos previamente a Moodle. El archivo de carga de cursos puede servir y debe tener el siguiente formato:

La siguiente macro de Excel, genera el archivo csv de carga de sesiones, a partir del archivo Excel para subir los cursos a Moodle. Dado que no necesitamos el campo ‘category’, antes de ejecutar la macro, conviene eliminarlo
Sub crearSesiones()
Dim r As Long
Dim numdias As Integer
Dim startD As Date, endd As Date, AuxDate As Date
Dim startT As Date, endT As Date
Dim shortname As String, fullname As String
Dim pos As Integer
For r = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
shortname = Cells(r, "A")
fullname = Cells(r, "B")
startD = CDate(Range("C" & r).Value)
endd = CDate(Range("D" & r).Value)
AuxDate = endd
startT = CDate(Range("E" & r).Value)
endT = CDate(Range("F" & r).Value)
If startD <> endd Then
numdias = WorksheetFunction.Days(endd, startD)
Rows(r + 1).Resize(numdias).Insert
pos = numdias
For i = r + numdias To r Step -1
Cells(i, "C") = DateAdd("h", 8, endd)
Cells(i, "D") = DateAdd("h", 14, endd)
Cells(i, "A") = shortname
Cells(i, "B") = fullname & " S" & pos
Cells(i, "E") = startT
Cells(i, "F") = endT
startT = DateAdd("s", 1, startT)
endT = DateAdd("s", 1, endT)
endd = endd - 1
pos = pos - 1
Next i
End If
Next r
End Sub
El resultado de ejecutar la macro, devuelve lo siguiente:

Es importante tener en cuenta que al generar el archivo, los campos starttime , endtime y fullname deben incrementarse, de lo contrario, al cargar las sesiones dará error.
CARGA MASIVA DE SESIONES A LOS CURSOS DE MOODLE
Una vez tenemos nuestor archivo generado, procedemos a cargarlo. Para ello debemos mapear cada campo correctamente. Esto se hace a través del plugin Attendance, tal y como muestra la siguiente captura:
