Non specifichi in quale giorno alle tre si cambia... facciamo che sia la domenica 
codice:
<script>
// impostazione - esempio sabato 1 maggio 2010
a_partire_da = new Date(2010,4,1); // data di inizio della rotazione
// variabile finale
sabato = a_partire_da;
// ottengo il sabato seguente superiore ad oggi
prossimo = new Date(sabato); prossimo.setDate(prossimo.getDate()+7);
oggi = new Date();
while(prossimo<oggi) {
sabato = new Date(prossimo);
prossimo.setDate(prossimo.getDate()+7);
}
// ottengo le tre della domenica successiva
scatta = new Date(sabato); scatta.setHours(27);
// e' ora di cambiare?
if (oggi>=scatta) {
sabato = prossimo;
}
// formatto la stringa di visualizzazione
visualizza = String(sabato.getDate())+" "+("Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre").split(",")[sabato.getMonth()]+" "+sabato.getFullYear();
document.write("Il prossimo evento e' il "+visualizza);
</script>
ciao