Home Library Calendar

Overview

The financial calendar shows aggregated daily summaries for all your properties. Instead of individual events, each day displays up to 4 compact indicators:

Income (Paid)

Total payments received on this day — rent and utility payments combined. Click to see the list of individual payments.

Expenses (Charged)

Total charges billed on this day — utility charges, rental charges, and penalties. Click for a breakdown.

Events

Count of non-financial events: counter readings, documents, contracts, violations. Click to see the full list.

Σ
Cumulative Balance

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:

Utility

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.

Rental

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 filter
Response 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"}
]