Scheduled transaction

I was wondering how can I schedule a monthly incoming transaction initiated in a foreign currency (euro) with a currency exchange on the day of transfer.
The transfer happens in euro, the bank account receives the amount in $.
I know how to create a schedule, however I couldn’t find a way to include the foreign currency for the automatic exchange.
Any help is much appreciated.

How do you enter the transaction normally (without the schedule?) I don’t think you can specify the currency in a transaction - it assumes the currency of the relevant account(s).
I have not tried this myself, but if the scheduled transaction is a transfer between accounts with different currencies, the conversion should be done with the most recent price known at the time.
Perhaps you need an account in EUR to receive the (fixed amount?) deposit, then a separate transaction for the transfer to your USD account. Yes, it’s an extra account and two scheduled transactions, but I can’t think of any easier way.
If someone else has a better idea, please let us know.

A scheduled transaction can be entered just like a regular transaction. So it depends on which currencies the respective accounts are denominated in as @ostroffjh has pointed out. If the income is in €, then create an income category and use € as its currency. Your account that receives the money is denominated in $. Creating the scheduled transaction should ask you for the exchange rate. Enter a feasible rate.

Unfortunately, this exchange rate may not be the one that is used when the transaction actually is executed. AFAIR, KMyMoney, when entering the schedule, currently simply takes the transaction and enters it without the possibility of changing the exchange rate. That maybe a feature to be added.

Workaround (I have not verified if that works): proceed as outlined above then edit the transaction in the $ account. Adjust the amount and the exchange rate editor will be shown again. Adjust the exchange rate or € amount and save the transaction. In case the $ amount is already correct, simply bump it by a penny, modify the exchange rate, revert the penny change and adjust the exchange rate again.

Just for clarification… when I’m entering a manual transaction, I know what the $$$ amount is that has been deposited in the account even though every month the same Euro amount has been transferred by the payer (at least for 12 consecutive months).
However I want to use a scheduled transaction on the last day of each month. Here the same, the payer pays the same amount in Euro each month. The amount credited to the bank account changes every month due to the daily exchange rate.
IMHO, the schedule transaction should be defined in the foreign currency and the exchange should happen at the moment of the transfer. A short test showed when I’m entering the transaction for a $$$ account together with a ‘Euro’ category, it assumes the ‘incoming’ amount is in $$$. That might be correct for a manual transaction (I see the amount on the account statement), however, for a scheduled transaction, the known amount is the foreign currency and the receiving amount (in $$$) is a variable. My vision would be… the scheduled transaction is in the foreign currency and the received amount is in $$$, with conversion using the exchange rate of that day. Does that make sense???

It makes sense, but I don’t think it is currently possible. (I still
have some testing to do.) I see two different issues here. First, when
a scheduled transaction involves a currency conversion, it uses the rate
implied by the amounts entered when the schedule was created, since it
always uses the same two amounts. Even if the transaction is in EUR,
you would still need to adjust the $$$ amount. What I think you want is
for it to use the most recent conversion rate it knows about at the
time, which would be that day, if you updated rates daily. It might be
worth filing a wishlist bug to be sure this doesn’t get forgotten as a

Second, since for now you always have to correct the $$$ amount, it’s
just the extra work of correcting the EUR amount and also adjusting the
$$$ to use the current rate. Based on a separate problem I’ve been
having, I’m actually trying to figure out which currency a transaction
is based on when it does involve a currency conversion. My guess (which
is only that so far) is that it is based on the currency of the main
account used when the transaction is created. I believe that a
“regular” (savings, checking, …) account will always take precedence
over a category for that purpose. IF I confirm that, I might file a
separate wishlist to allow the user to choose.

Actually, as I understand your problem, you would need both enhancements
to get things to work as you want.

Now, have I made sense?

See this commit. It should solve the problem.

I’m now trying to write a description of the feature @ipwizard added, and find all my attempts too confusing, probably because I don’t fully understand what is being done.
The schedule has only one of the three needed values needed to enter the transaction: the amount in the currency, normally that of the account. When entering the schedule you used to need to specify one of the other two values - the conversion rate or the value in the category’s currency. So, if you check the “Do not change amount of category but modify exchange rate of transaction” does this simply mean that the amount specified in the schedule is actually in the currency of the category instead of in the currency of the account? When the schedule is entered, you still need to specify either the exchange rate or the amount in the other currency.
If I’m wrong, then I would appreciate an example of what happens when you do and do not check the box.

How can I get the changes (commit 42f5f1c2) to test it for my scenario?
Do I have to apply a patch or can I download a new version with these changes?
Please advise.

You could certainly build your own version from git master branch, or you could use the appimage from the BEST Personal Finance Manager for FREE Users, full stop. | KMyMoney. Use the link at the bottom as the commit was only made to master branch and not backported to the 5.1 branch.
If you build your own, going from the head of master branch will include the commit. I do not know if a patch just containing that commit will apply cleanly to any older tarball.

with respect I can not agree with you on the following points:

  1. when a scheduled transaction with an amount which is known in the foreign currency occurs, the system should retrieve the exchange rate on that day when it’s entered into the ledger. It never should be needed to change the foreign currency since this is defined in the scheduled transaction and will not change (as long as the schedule doesn’t change). As a compromise, the $$ amount of the transfer into the main account , which is in $$$, can be changed based on the exchange rate of the specific day. But why do I have prices in my list to retrieve the daily price of a currency if it cannot do that.
  2. I do not agree with the statement that the currency of the main account has precedence over the currency of a category which is the foundation of the schedule transaction. In short, The currency of the main account is the currency in which the payment/transfer is received. The currency of the category is defining the foreign currency in which the transfer is initiated. Therefore the exchange rate between EUR and $$$ is needed.
    I’m hoping this make sense and helps to clarify the subject.
    I understand there may be different opinions about some details of this subject.