---
title: Release 24.1.0
description: New release of Actual.
date: 2024-01-06T10:00
slug: release-24.1.0
tags: [announcement, release]
hide_table_of_contents: false
authors: MatissJanis
---

The release has the following notable improvements:

- Mobile split transactions
- Ability to set max occurrences (or end date) for schedules
- (Experimental) custom report enhancements (please report bugs/feedback [here](https://github.com/actualbudget/actual/issues/1918))

<!--truncate-->

**Docker tag: 24.1.0**

### Actual

Version: v24.1.0

#### Features

- [#1899](https://github.com/actualbudget/actual/pull/1899) Add end date/max occurrences field to schedules, useful for things like installments — thanks @jfdoming
- [#2068](https://github.com/actualbudget/actual/pull/2068) Mobile split transactions — thanks @joel-jeremy

#### Enhancements

- [#1906](https://github.com/actualbudget/actual/pull/1906) Add support for automatic theme switching based on system theme — thanks @spezzino
- [#1964](https://github.com/actualbudget/actual/pull/1964) Category and group menu/modal in the mobile budget page to manage categories/groups and their notes. — thanks @joel-jeremy
- [#1988](https://github.com/actualbudget/actual/pull/1988) Data loading performance improvements for custom reports — thanks @carkom
- [#2046](https://github.com/actualbudget/actual/pull/2046) Adding typescript to custom report files and small functional changes. — thanks @carkom
- [#2062](https://github.com/actualbudget/actual/pull/2062) Adds a property to the returned items in the API for category and categoryGroup to inform if it is hidden. — thanks @iOSLife
- [#2067](https://github.com/actualbudget/actual/pull/2067) Adding types for future typescript changes. — thanks @carkom
- [#2069](https://github.com/actualbudget/actual/pull/2069) Updating variable naming for custom reports page. — thanks @carkom
- [#2073](https://github.com/actualbudget/actual/pull/2073) Migrate tooltips.js to typescript — thanks @IzStriker
- [#2078](https://github.com/actualbudget/actual/pull/2078) Enable Legend for custom reports. — thanks @carkom
- [#2080](https://github.com/actualbudget/actual/pull/2080) Add live/static choice for date filters. — thanks @carkom
- [#2082](https://github.com/actualbudget/actual/pull/2082) Add left and right margin to modals. — thanks @joel-jeremy
- [#2094](https://github.com/actualbudget/actual/pull/2094) Custom reports: Convert the view options (legend/summary/labels) to global preferences that apply to all graphs. — thanks @carkom
- [#2098](https://github.com/actualbudget/actual/pull/2098) Changing the view and functions for donut graph in custom reports. — thanks @carkom

#### Bugfix

- [#2002](https://github.com/actualbudget/actual/pull/2002) Prevent deleted categories blocking creation of new categories with the same name. — thanks @kymckay
- [#2008](https://github.com/actualbudget/actual/pull/2008) Fix filter Amount formatting issue — thanks @vishnukaushik
- [#2031](https://github.com/actualbudget/actual/pull/2031) Fix bulk edit field modal in desktop — thanks @joel-jeremy
- [#2085](https://github.com/actualbudget/actual/pull/2085) Realign and fix header/totals row for table graph in custom reports — thanks @carkom
- [#2092](https://github.com/actualbudget/actual/pull/2092) Fix background color when pinning sidebar (Issue [#2089](https://github.com/actualbudget/actual/issues/2089)) — thanks @HansiWursti
- [#2093](https://github.com/actualbudget/actual/pull/2093) Fix missing divider bar issue [#1878](https://github.com/actualbudget/actual/issues/1878) — thanks @HansiWursti
- [#2096](https://github.com/actualbudget/actual/pull/2096) Fix category spending report (experimental) not loading [#1981](https://github.com/actualbudget/actual/issues/1981) — thanks @MatissJanis
- [#2099](https://github.com/actualbudget/actual/pull/2099) [Goals]: Fix over budget condition with using apply instead of overwrite — thanks @youngcw
- [#2100](https://github.com/actualbudget/actual/pull/2100) Goals: Don't run templates on non-hidden categories inside of hidden groups — thanks @youngcw
- [#2125](https://github.com/actualbudget/actual/pull/2125) Goals: Negate schedule amount to budget if income — thanks @mk-french
- [#2127](https://github.com/actualbudget/actual/pull/2127) Fix update transaction API bug — thanks @mk-french
- [#2140](https://github.com/actualbudget/actual/pull/2140) Fix imported transactions overriding reconciled (locked) transaction data — thanks @MatissJanis
- [#2141](https://github.com/actualbudget/actual/pull/2141) Fix filtering in rules page: apply the filter on the full data set instead of the limited (paginated) data set. — thanks @MatissJanis & @jasonmichalski
- [#2166](https://github.com/actualbudget/actual/pull/2166) Fix mobile transaction page amount input bug on iOS. — thanks @joel-jeremy

#### Maintenance

- [#1991](https://github.com/actualbudget/actual/pull/1991) Add some initial api tests for budgets and accounts — thanks @twk3
- [#1993](https://github.com/actualbudget/actual/pull/1993) Use Page component for mobile pages — thanks @joel-jeremy
- [#2004](https://github.com/actualbudget/actual/pull/2004) Convert BudgetTotals, GoCardlessLink, Import, WelcomeScreen components to Typescript. — thanks @MikesGlitch
- [#2005](https://github.com/actualbudget/actual/pull/2005) Maintenance: Update CashFlow.js to use typescript — thanks @lucasboebel
- [#2007](https://github.com/actualbudget/actual/pull/2007) Migrating the DateRange and UseReport files to typescript — thanks @ameekSinghUniversityAcc
- [#2009](https://github.com/actualbudget/actual/pull/2009) Migrating the util.js and chartTheme.js files to typescript — thanks @ghosetuhin
- [#2022](https://github.com/actualbudget/actual/pull/2022) Refactored `FixedSizeList` to TypeScript — thanks @MatissJanis
- [#2023](https://github.com/actualbudget/actual/pull/2023) Added more strict typings to `utils.ts` and some of its dependencies — thanks @MatissJanis
- [#2025](https://github.com/actualbudget/actual/pull/2025) Adding aria-labels to some buttons for greater accessibility — thanks @MikesGlitch
- [#2029](https://github.com/actualbudget/actual/pull/2029) Enable `react/no-children-prop` rule and fix the issues — thanks @MatissJanis
- [#2032](https://github.com/actualbudget/actual/pull/2032) Apply eslint prefer-const rule to loot-core server files. — thanks @joel-jeremy
- [#2033](https://github.com/actualbudget/actual/pull/2033) Apply ESLint prefer-const on components folder part 1 — thanks @joel-jeremy
- [#2034](https://github.com/actualbudget/actual/pull/2034) Apply ESLint prefer-const on components folder part 2 — thanks @joel-jeremy
- [#2036](https://github.com/actualbudget/actual/pull/2036) Add api tests for categories and category groups — thanks @twk3
- [#2048](https://github.com/actualbudget/actual/pull/2048) Fixes and updates to dark theme colors. — thanks @carkom
- [#2064](https://github.com/actualbudget/actual/pull/2064) Cleanup older unused version of react-router — thanks @twk3
- [#2065](https://github.com/actualbudget/actual/pull/2065) Fixing TypeScript issues when enabling `strictFunctionTypes`. — thanks @MatissJanis
- [#2066](https://github.com/actualbudget/actual/pull/2066) Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.2). — thanks @MatissJanis
- [#2070](https://github.com/actualbudget/actual/pull/2070) Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.3). — thanks @MatissJanis
- [#2074](https://github.com/actualbudget/actual/pull/2074) ci: add helpful bot comments if CI jobs fail. — thanks @MatissJanis
- [#2101](https://github.com/actualbudget/actual/pull/2101) Apply eslint filename extensions for jsx. — thanks @twk3
- [#2111](https://github.com/actualbudget/actual/pull/2111) eslint: disallow unnecessary curly braces — thanks @MatissJanis
- [#2112](https://github.com/actualbudget/actual/pull/2112) TypeScript: moving `DeleteFile` component to TS — thanks @MatissJanis
- [#2113](https://github.com/actualbudget/actual/pull/2113) Enable prefer-const ESLint rule project-wide — thanks @joel-jeremy

### Actual Server

Version: 24.1.0

#### Maintenance

- [#292](https://github.com/actualbudget/actual-server/pull/292) docs: updated the GoCardless integration instructions — thanks @MatissJanis
