1. Puedes crear el script en PHP, y con el crontab (en linux) o el programador de tareas (en windows) poner a ejecutar el script con el cliente de PHP ("php script_periodico.php" desde la línea de comandos)
2. Crear el script en forma de daemon (un bucle while(true)), donde esté preguntando la fecha, si esta coincide, pones a funcionar las rutinas, sino le haces una pausa (el tiempo que quieras); y lo pones a funcionar desde la linea de comandos.
Personalmente, optaría por la primera opción; es mucho más eficiente llamar a un script cuando se necesite, que tener 2 procesos (el cliente de php y el script) funcionando ininterrumpidamente cuando no se construyeron para eso (tal vez el script si, pero el php no).