Yes, but the question was if it was correct to assume she could cancel it after the December-payment. So it wasn't clear cancellations take effect immediately.
I edited my previous reaction. When cancelling NS Flex altogether, it will be switched to Basic instantly.
After that, you have one month to remove it from your card at a machine (which is not necessary because there are no costs anymore).
Just switch to Basic after you don’t need it anymore, subscription costs for unused days in January will be reimbursed.
Would it be correct to assume that I then need to cancel the subscription after I payed at the end of December to not pay at the end of January?
No. Cancellations are processed immediately. You need to cancel it (or switch to Flex Basis) after your last journey. If you already paid for a full month, you'll get a refund for the unused period.
Welcome to the NS Community!
Cancelling NS Flex can be done at any moment, via https://www.ns.nl/nsflex/webshop#/online-opzeggen/tijdelijk-stopzetten (in Dutch), in that case you can remove NS Flex from your card at a machine after cancelling, (e.g. before departing from Schiphol Airport).
Alternatively, switch NS Flex to Basic and no costs will incur anymore. When coming back to NL, you can switch it back on.
In both cases, unused days ontil your monthly Flex invoice date will be reimbursed.