Overview
The financial calendar shows aggregated daily summaries for all your properties. Instead of individual events, each day displays up to 4 compact indicators:
Total payments received on this day — rent and utility payments combined. Click to see the list of individual payments.
Total charges billed on this day — utility charges, rental charges, and penalties. Click for a breakdown.
Count of non-financial events: counter readings, documents, contracts, violations. Click to see the full list.
Total outstanding debt as of end of day, across all properties. Red means debt, green means overpayment. Click for a detailed breakdown by property with separate utility and rental sections.
Balance Details (Σ)
Clicking Σ opens a detailed balance report for the selected date. The report is split into two sections:
Shows each property with: opening debt, charges added today (+▼), payments received today (−▲), and closing balance (Σ). Click on +▼ or −▲ values to expand and see individual documents with links.
Same structure as utilities but for rental charges. Rental payments are tracked separately based on payment-to-charge linking.
All amounts are automatically converted to your currency using current exchange rates.
Navigation
- Use ‹ › arrows to navigate between months
- Use month and year dropdowns for quick navigation
- Switch between Month and List views
- Click the filter icon to show/hide property filter for multi-property accounts
- Week numbers are displayed on the left side
Mobile View
On mobile devices: weekends are hidden (Mon-Fri only), amounts shown without currency symbols, balance popup uses compact card layout.
API Endpoints
Calendar data is available through the REST API for integration with external systems.
GET
/api/v1/calendar/events?start=2026-02-01&end=2026-03-01
Returns all calendar events for the authenticated user within a date range.
start — Start date (ISO 8601)end — End date (ISO 8601)property_id — Optional property filterResponse example
[
{
"id": "charge-42",
"title": "14.27 €",
"start": "2026-02-01",
"allDay": true,
"backgroundColor": "#e53935",
"textColor": "#fff",
"extendedProps": {
"type": "charge_with_counter",
"eventTypeName": "Expense Charge",
"property": "My Apartment",
"propertyId": 12,
"amount": "14.27",
"currency": "€",
"expenseTypeName": "Electricity",
"url": "/properties/12/charges/42"
}
},
{
"id": "payment-15",
"title": "500.00 €",
"start": "2026-02-05",
"allDay": true,
"backgroundColor": "#27ae60",
"textColor": "#fff",
"extendedProps": {
"type": "payment",
"eventTypeName": "Payment",
"property": "My Apartment",
"propertyId": 12,
"amount": "500.00",
"currency": "€",
"url": "/properties/12/payments/15"
}
}
]
GET
/api/v1/calendar/event-types
Returns available event types with colors and icons.
Response example
[
{"type": "charge_with_counter", "color": "#e53935", "label": "Expense Charge"},
{"type": "rental_charge", "color": "#9c27b0", "label": "Rental Charge"},
{"type": "payment", "color": "#27ae60", "label": "Payment"},
{"type": "counter_reading_due", "color": "#ffa726", "label": "Reading Due"},
{"type": "document", "color": "#7f8c8d", "label": "Document"}
]
GET
/api/v1/calendar/daily-balances?start=2026-02-01&end=2026-02-28
Returns starting balance + daily deltas for computing running cumulative balance. All amounts in user currency.
Response example
{
"startBalance": -28159.58,
"dailyDeltas": {"2026-02-01": -656.43, "2026-02-02": 2282.16},
"dayCharges": {"2026-02-01": 688.63},
"dayPaid": {"2026-02-01": 32.20},
"rangeStart": "2026-02-01",
"rangeEnd": "2026-02-28",
"currency": "€"
}
GET
/api/v1/calendar/balance?date=2026-02-01
Detailed balance per property on a date: utilities and rental separately, with drill-down items (individual documents).
Response example
{
"properties": [{
"propertyName": "My Apartment",
"utilityDebtBefore": 1338.51,
"utilityChargedDay": 14.27,
"utilityPaidDay": 10.40,
"utilityDebt": 1342.38,
"utilityDayItems": [
{"label": "Electricity", "desc": "Monthly", "amount": 14.27, "url": "/properties/12/charges/42"}
],
"rentalDebt": 486.18,
"totalDebt": 1828.56
}],
"currency": "€"
}
GET
/api/v1/calendar/charges?date=2026-02-01
Returns only charges (expense, rental, penalties) for a specific date.
Response example
[
{
"id": "charge-42",
"title": "14.27 €",
"start": "2026-02-01",
"allDay": true,
"backgroundColor": "#e53935",
"textColor": "#fff",
"extendedProps": {
"type": "charge_with_counter",
"eventTypeName": "Начисление расходов",
"property": "Квартира на Хрещатику",
"propertyId": 12,
"amount": "14.27",
"currency": "€",
"expenseTypeName": "Электричество",
"url": "/properties/12/charges/42"
}
},
{
"id": "rental-7",
"title": "486.18 €",
"start": "2026-02-01",
"allDay": true,
"backgroundColor": "#9c27b0",
"textColor": "#fff",
"extendedProps": {
"type": "rental_charge",
"eventTypeName": "Начисление аренды",
"property": "Квартира на Хрещатику",
"propertyId": 12,
"amount": "486.18",
"currency": "€",
"url": "/properties/12/rental-charges/7"
}
}
]
GET
/api/v1/calendar/payments?date=2026-02-01
Returns only payments (income, refunds, compensations) for a specific date.
Response example
[
{
"id": "payment-15",
"title": "500.00 €",
"start": "2026-02-01",
"allDay": true,
"backgroundColor": "#27ae60",
"textColor": "#fff",
"extendedProps": {
"type": "payment",
"eventTypeName": "Платёж",
"property": "Квартира на Хрещатику",
"propertyId": 12,
"amount": "500.00",
"currency": "€",
"url": "/properties/12/payments/15"
}
},
{
"id": "compensation-3",
"title": "50.00 €",
"start": "2026-02-01",
"allDay": true,
"backgroundColor": "#16a085",
"textColor": "#fff",
"extendedProps": {
"type": "repair_compensation",
"eventTypeName": "Компенсация за ремонт",
"property": "Квартира на Хрещатику",
"propertyId": 12,
"amount": "50.00",
"currency": "€",
"url": "/properties/12/repair-compensations/3"
}
}
]
GET
/api/v1/calendar/properties
Returns properties available for calendar filtering.
Response example
[
{"id": 12, "name": "My Apartment", "address": "Kyiv, Khreschatyk 1"},
{"id": 14, "name": "Beach House", "address": "Odessa, Deribasovska 5"}
]