Cosmic Module

O

Qubits of DPK

March 23, 2026

Core Open Source

What This Module Is (Big Picture)

The calendar module manages recurring schedules and events used across the system.
Many banking operations depend on schedules such as:
  • loan repayment meetings
  • group meetings
  • collection schedules
  • recurring events
Instead of hardcoding schedules, the system defines them through calendar configurations.

Layman Example

A microfinance institution holds weekly group meetings every Monday.
During these meetings:
  • borrowers make loan repayments
  • loan officers collect installments
  • financial updates are discussed
Instead of manually scheduling every meeting, the system creates a recurring calendar event.
Example:
Meeting Schedule:
Every Monday
10:00 AM
Group Center
The fineract-calendar module manages these recurring schedules.

Where the Code Lives

Key Package

org.apache.fineract.infrastructure.calendar
Responsibilities include:
  • defining calendar events
  • managing recurring schedules
  • linking calendars to entities
  • calculating upcoming event dates

Core Domain Entity:

Calendar.java

Path
fineract-calendar/src/main/java/org/apache/fineract/infrastructure/calendar/domain/Calendar.java
This entity represents a recurring schedule or event calendar.

Key fields on

Calendar

Recurring Event Rules

Calendars support recurrence rules.
Examples
These rules determine when events occur.

Example Recurrence Rule

Weekly meeting:
Start Date = 1 Jan 2026
Frequency = Weekly
Day = Monday
Generated schedule:
Jan 1
Jan 8
Jan 15
Jan 22
The system automatically generates upcoming meeting dates.

Example Recurrence Calculation Code

java
QUBITS OF DPK
1public List<LocalDate> generateWeeklySchedule(LocalDate startDate, int occurrences) {
2
3    List<LocalDate> schedule = new ArrayList<>();
4
5    LocalDate currentDate = startDate;
6
7    for (int i = 0; i < occurrences; i++) {
8
9        schedule.add(currentDate);
10
11        currentDate = currentDate.plusWeeks(1);
12    }
13
14    return schedule;
15}
This generates recurring weekly dates.

Linking Calendars to Entities

Calendars can be linked to system entities.
Examples
This allows the system to track operational schedules.

API Layer

Main controller
CalendarApiResource
Example endpoints
plain text
QUBITS OF DPK
1GET  /v1/calendars
2POST /v1/calendars
3GET  /v1/calendars/{calendarId}
4PUT  /v1/calendars/{calendarId}
5DELETE /v1/calendars/{calendarId}
These APIs allow administrators to:
  • create calendar events
  • update schedules
  • retrieve calendars
  • delete calendars

Read Services

Read services retrieve calendar information.
Examples include:
  • retrieving calendar schedules
  • retrieving recurring events
  • retrieving entity-linked calendars
These services help the system determine upcoming events.

Write Services

Write services manage calendar configurations.
Responsibilities include:
  • creating calendar schedules
  • updating recurrence rules
  • linking calendars to entities
  • deleting schedules

Repository Layer

Exceptions

These ensure calendar configurations remain valid.

How It All Connects (Full Flow)

Example: Scheduling weekly loan meeting
java
QUBITS OF DPK
1Admin UI
2Create meeting schedule
34CalendarApiResource
56CalendarService
7Save recurrence rule
89Database (calendar tables)
101112System generates recurring meeting dates

Why This Module Matters

Calendars allow financial institutions to:
  • automate recurring meetings
  • schedule loan repayments
  • manage operational events
This is especially important in microfinance group lending models where meetings happen regularly.

One-Sentence Summary

fineract-calendar manages recurring schedules and events used for operational activities such as loan repayment meetings and group meetings.