Primefaces schedule listar eventos

Boa dia pessoal,
Eu sou novato em primefaces e estou tentando utilizar um componente chamado Schedule, um calendário.
O que eu já fiz foi o seguinte, quando eu clico em qualquer data na tela ele abre um “dialog” contendo alguns campos como titulo e descrição, quando eu clico no botão salvar do Dialog ele salva as informações no banco e fica essa marca “azul na data 26” conforme a imagem abaixo na data que selecionei. Eu gostaria que ao invés de aparecer essa marca azul aparecesse o Titulo do evento que criei e que quando eu desse F5 ele não desaparece da tela, gostaria que ele continuasse lá para que o usuário saiba que existe um evento marcado para aquele dia.

Segue abaixo a tela e meu código.

Desde já agradeço,
imagem da tela

abaixo segue meu método de listar as agendas no DAO.


public ScheduleModel pegarAgendas(String pNome,Date pDate1,Date pDate2)   {

       ScheduleModel agendas = new LazyScheduleModel();
        Conexao conexao = new Conexao();

        Connection conn = conexao.getConnection();
        List<Agenda> lstAgenda = new ArrayList<Agenda>();
        PreparedStatement ps = null;
        try {
            ps = conn.prepareStatement("SELECT * FROM sgm_agenda");

        } catch (SQLException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

        ResultSet rs = null;
        try {
            rs = ps.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        Agenda agenda = new Agenda();
        try {
            while(rs.next()) {

                agenda.setTitulo(rs.getString("titulo"));
                agenda.setDescricao(rs.getString("descricao"));
                agenda.setDataInicio(rs.getDate("dataInicio"));
                agenda.setDataFim(rs.getDate("dataFim"));
                lstAgenda.add(agenda);


            }
            ps.close();
            conn.close();

        } catch (SQLException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println("passou pelo DAO LISTA");
        return agendas;
    }

e aqui meu controller.

@ManagedBean
@ViewScoped
public class AgendaController implements Serializable {

    private ScheduleModel eventModel;

    private ScheduleModel lazyEventModel;

    private ScheduleEvent event = new DefaultScheduleEvent();

    private boolean diaTodo;

    private List<Agenda> listaAgenda = new ArrayList<Agenda>(); 

    private Agenda agenda;

    AgendaDAO agendaDAO = new AgendaDAO();

    @PostConstruct
    public void init() {
        eventModel = new DefaultScheduleModel();
        eventModel.addEvent(new DefaultScheduleEvent("Champions League Match", previousDay8Pm(), previousDay11Pm()));
        eventModel.addEvent(new DefaultScheduleEvent("Birthday Party", today1Pm(), today6Pm()));
        eventModel.addEvent(new DefaultScheduleEvent("Breakfast at Tiffanys", nextDay9Am(), nextDay11Am()));
        eventModel.addEvent(new DefaultScheduleEvent("Plant the new garden stuff", theDayAfter3Pm(), fourDaysLater3pm())); 


        agenda = new Agenda();
        diaTodo = agenda.isDiaTodo();

        lazyEventModel = new LazyScheduleModel() {

            @Override
            public void loadEvents(Date start, Date end) {
                Date random = getRandomDate(start);
                addEvent(new DefaultScheduleEvent("Lazy Event 1", random, random));

                random = getRandomDate(start);
                addEvent(new DefaultScheduleEvent("Lazy Event 2", random, random));
            }  
        };
    }

    public Date getRandomDate(Date base) {
        Calendar date = Calendar.getInstance();
        date.setTime(base);
        date.add(Calendar.DATE, ((int) (Math.random()*30)) + 1);    //set random day of month

        return date.getTime();
    }

    public Date getInitialDate() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(calendar.get(Calendar.YEAR), Calendar.FEBRUARY, calendar.get(Calendar.DATE), 0, 0, 0);

        return calendar.getTime();
    }

    public void listarAgendaController() {
        AgendaService agendaService = new AgendaService();
        agendaService.listarAgendas(agenda);

    }

    //Metodo adiciona agenda no banco
    public void salvarAgenda() {

        AgendaService agendaService = new AgendaService();

        try {
             agendaService.salvar(agenda);
             System.out.println("Agenda salva com sucesso.");
        } catch (Exception e) {
            System.out.println("Erro ao salvar agenda.");
        }


    }



    //gets e sets 
    public ScheduleModel getEventModel() {
        return eventModel;
    }

    public ScheduleModel getLazyEventModel() {
        return lazyEventModel;
    }

    private Calendar today() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), 0, 0, 0);

        return calendar;
    }

    private Date previousDay8Pm() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.PM);
        t.set(Calendar.DATE, t.get(Calendar.DATE) - 1);
        t.set(Calendar.HOUR, 8);

        return t.getTime();
    }

    private Date previousDay11Pm() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.PM);
        t.set(Calendar.DATE, t.get(Calendar.DATE) - 1);
        t.set(Calendar.HOUR, 11);

        return t.getTime();
    }

    private Date today1Pm() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.PM);
        t.set(Calendar.HOUR, 1);

        return t.getTime();
    }

    private Date theDayAfter3Pm() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.DATE, t.get(Calendar.DATE) + 2);    
        t.set(Calendar.AM_PM, Calendar.PM);
        t.set(Calendar.HOUR, 3);

        return t.getTime();
    }

    private Date today6Pm() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.PM);
        t.set(Calendar.HOUR, 6);

        return t.getTime();
    }

    private Date nextDay9Am() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.AM);
        t.set(Calendar.DATE, t.get(Calendar.DATE) + 1);
        t.set(Calendar.HOUR, 9);

        return t.getTime();
    }

    private Date nextDay11Am() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.AM);
        t.set(Calendar.DATE, t.get(Calendar.DATE) + 1);
        t.set(Calendar.HOUR, 11);

        return t.getTime();
    }

    private Date fourDaysLater3pm() {
        Calendar t = (Calendar) today().clone();
        t.set(Calendar.AM_PM, Calendar.PM);
        t.set(Calendar.DATE, t.get(Calendar.DATE) + 4);
        t.set(Calendar.HOUR, 3);

        return t.getTime();
    }

    public ScheduleEvent getEvent() {
        return event;
    }

    public void setEvent(ScheduleEvent event) {

        this.event = event;
    }

    public void addEvent(ActionEvent actionEvent) {
        if(event.getId() == null){
            eventModel.addEvent(event);

            salvarAgenda();
        }else {
            eventModel.updateEvent(event);

        event = new DefaultScheduleEvent();
    }}

    public void onEventSelect(SelectEvent selectEvent) {
        event = (ScheduleEvent) selectEvent.getObject();
    }

    public void onDateSelect(SelectEvent selectEvent) {
        event = new DefaultScheduleEvent("", (Date) selectEvent.getObject(), (Date) selectEvent.getObject());
    }

    public void onEventMove(ScheduleEntryMoveEvent event) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event moved", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta());

        addMessage(message);
    }

    public void onEventResize(ScheduleEntryResizeEvent event) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event resized", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta());

        addMessage(message);
    }

    private void addMessage(FacesMessage message) {
        FacesContext.getCurrentInstance().addMessage(null, message);
    }

    public Agenda getAgenda() {
        return agenda;
    }

    public void setAgenda(Agenda agenda) {
        this.agenda = agenda;
    }

    public AgendaDAO getAgendaDAO() {
        return agendaDAO;
    }

    public void setAgendaDAO(AgendaDAO agendaDAO) {
        this.agendaDAO = agendaDAO;
    }


}

eu fiz uma modificação no seguinte metodo:

 public void onDateSelect(SelectEvent selectEvent) {
        agenda = new Agenda();
        System.out.println("DATA SELECT" + agenda.getTitulo());
       
        //aqui
        event = new DefaultScheduleEvent(agenda.getTitulo(), (Date) selectEvent.getObject(), (Date) selectEvent.getObject());
        
        
        agenda.setDataInicio(event.getStartDate());
        agenda.setDataFim(event.getEndDate());
         System.out.println(agenda.getTitulo());
         
    }

agora ao invés da barra azul ele ta mostrando null ! bom pelo menos é uma mudança agora preciso descobrir porque está vindo nullo