FullCalendar is the most popular JavaScript calendar library, used by companies worldwide for scheduling interfaces. Oorian's wrapper brings its full power to Java developers.
Basic Calendar Setup
FcCalendar calendar = new FcCalendar();
calendar.setHeight("700px");
calendar.setInitialView(CalendarView.DAY_GRID_MONTH);
// Add events
calendar.addEvent(new FcEvent()
.setTitle("Team Meeting")
.setStart(LocalDateTime.of(2025, 5, 15, 10, 0))
.setEnd(LocalDateTime.of(2025, 5, 15, 11, 0))
.setColor("#2563eb"));
body.addElement(calendar);
Loading Events from Database
calendar.setEventSource(new FcEventSource()
{
@Override
public List<FcEvent> fetchEvents(LocalDateTime start, LocalDateTime end)
{
return eventService.findBetween(start, end)
.stream()
.map(this::toCalendarEvent)
.collect(Collectors.toList());
}
});
Handling User Interactions
// Click on a date
calendar.registerListener(this, DateClickEvent.class);
@Override
public void onEvent(DateClickEvent event)
{
LocalDate date = event.getDate();
openNewEventDialog(date);
}
// Click on an event
calendar.registerListener(this, EventClickEvent.class);
@Override
public void onEvent(EventClickEvent event)
{
String eventId = event.getEventId();
openEventDetails(eventId);
}
// Drag and drop
calendar.setEditable(true);
calendar.registerListener(this, EventDropEvent.class);
@Override
public void onEvent(EventDropEvent event)
{
String eventId = event.getEventId();
LocalDateTime newStart = event.getNewStart();
eventService.updateEventTime(eventId, newStart);
}
Different Views
// Enable view switching
calendar.setHeaderToolbar(new HeaderToolbar()
.setLeft("prev,next today")
.setCenter("title")
.setRight("dayGridMonth,timeGridWeek,timeGridDay"));
// Start with week view
calendar.setInitialView(CalendarView.TIME_GRID_WEEK);
Resource Scheduling
// Define resources (rooms, people, etc.)
calendar.addResource(new FcResource("room1", "Conference Room A"));
calendar.addResource(new FcResource("room2", "Conference Room B"));
// Events with resource assignment
calendar.addEvent(new FcEvent()
.setTitle("Project Review")
.setResourceId("room1")
.setStart(LocalDateTime.now())
.setEnd(LocalDateTime.now().plusHours(2)));
calendar.setInitialView(CalendarView.RESOURCE_TIMELINE_DAY);
Conclusion
FullCalendar integration provides a complete scheduling solution for Oorian applications. From simple date displays to complex resource scheduling, everything is configured through type-safe Java code.