Calendário Com Botão de Impressão e Cores de Eventos Baseados no Dia

gostaria de uma ajuda na minha aplicação, pois uso o banco mysql, sou novo na area poderiam me ajudar?

// Sempre insira registro para hoje, ontem e amanhã !

//$ontem = (date(“Y”)). “-” . (date(“m”)). “-” . (date(“d”) - 1);
$hoje = date(“Y-m-d”);
$ontem = date(‘Y-m-d’, strtotime("-1 day",strtotime($hoje)));
$amanha = date(‘Y-m-d’, strtotime("+1 day",strtotime($hoje)));

// Esta macro irá proteger o valor passado como paramenter de acordo com o banco de dados utilizado .
$ontem = sc_sql_protect($ontem, “date”);
$hoje = sc_sql_protect($hoje, “date”);
$amanha = sc_sql_protect($amanha, “date”);nb
// Valor para verificar Capturar .
if($hoje==1){

          }
          sc_lookup(ontem,"select count(*) from calendario where data_inicio = $ontem");
          sc_lookup(hoje,"select count(*) from calendario where data_inicio = $hoje");
          sc_lookup(amanhã,"select count(*) from calendario where data_inicio = $amanha");
          
        // Evento Inserir registro não tem nada ontem.

if(empty({ontem[0][0]})){

          if($this->Ini->nm_tpbanco == 'pdo_sqlsrv') {
          
          sc_exec_sql("
          SET DATEFORMAT ymd;
          insert into calendario (titulo,descricao,data_inicio,hora_inicio,data_final,hora_final,recorrencia,periodo,users) 
          values 
          ('calendario','descricao',$ontem,NULL,$ontem,NULL,'N','D','')");
          
          } else {
          
          sc_exec_sql("
          insert into calendario (titulo,descricao,data_inicio,hora_inicio,data_final,hora_final,recorrencia,periodo,users) 
          values 
          ('calendario','descricao',$ontem,NULL,$ontem,NULL,'N','D','')");
          
          }
          }

// Inserir registro calendario tem nada hoje.
if(empty({hoje[0][0]})){

          if($this->Ini->nm_tpbanco == 'pdo_sqlsrv') {
          
          sc_exec_sql("
          SET DATEFORMAT ymd;
          insert into calendario (titulo,descricao,data_inicio,hora_inicio,data_final,hora_final,recorrencia,periodo,users) 
          values 
          ('calendario','descricao',$hoje,NULL,$hoje,NULL,'N','D','')");
          
          } else {
          
          sc_exec_sql("
          insert into calendario (titulo,descricao,data_inicio,hora_inicio,data_final,hora_final,recorrencia,periodo,users)
          values 
          ('calendario','descricao',$hoje,NULL,$hoje,NULL,'N','D','')");
          
          } 
          }

// Evento Inserir registro não tem nada hoje.
if(empty({amanhã[0][0]})){

          if($this->Ini->nm_tpbanco == 'pdo_mysql') {
          
          sc_exec_sql("
          SET DATEFORMAT ymd;
           insert into calendario (titulo,descricao,data_inicio,hora_inicio,data_final,hora_final,recorrencia,periodo,users)
          values 
          ('calendario','descricao',$amanha,NULL,$amanha,NULL,'N','D','')");
          
          } else {
          
          sc_exec_sql("insert into calendario (titulo,descricao,data_inicio,hora_inicio,data_final,hora_final,recorrencia,periodo,users) values 
          ('calendario','descricao',$amanha,NULL,$amanha,NULL,'N','D','')");
          
          }
          
       }

esse é meu banco
CREATE TABLE calendario (
id int(11) NOT NULL AUTO_INCREMENT,
titulo varchar(64) DEFAULT NULL,
descricao varchar(128) DEFAULT NULL,
data_inicio date DEFAULT NULL,
hora_inicio time DEFAULT NULL,
data_final date DEFAULT NULL,
hora_final time DEFAULT NULL,
recorrencia varchar(1) DEFAULT NULL,
periodo varchar(1) DEFAULT NULL,
users varchar(10) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;