<?xml version="1.0" encoding="UTF-8"?>
<chapter id="details.schedules">
<chapterinfo>
  <authorgroup>
    <author> &Roger.Lum; &Roger.Lum.mail; </author>
    <author> &Michael.T.Edwardes; &Michael.T.Edwardes.mail; </author>
    <author>
      <personname><firstname>Michael</firstname><surname>Carpino</surname></personname>
      <email>mfcarpino@gmail.com</email>
    </author>
  </authorgroup>
  <date>2019-04-01</date>
  <releaseinfo>5.0.3</releaseinfo>
</chapterinfo>

<title>Schedules</title>

<sect1 id="details.schedules.intro">
<title>Introduction</title>

<para>
  <quote>
    Schedules maintain information about transactions that occur one or more
    times over a specified period of time.
  </quote>
</para>

<para>
  Sometimes called a recurring transaction, a schedule provides a means to
  record information about a transaction that happen on a regular basis.  You 
  can schedule deposit, transfer, withdrawal, and loan transactions.  There is
  a lot of flexibility built in with scheduling transactions that include doing
  it Once, or on a basis of number of Day(s), Week(s), Half-month(s), Month(s), 
  or Year(s).
</para>

<para>
  Because you know these transactions are regularly made, whether they are
  payments made to you or payments you make to someone else, you can create a
  Schedule to record information about the recurring details to simplify and
  easily remember when the event will occur.
</para>

<para>
  Schedules can be considered to reflect money coming in or out of your accounts
  on a consistent basis.  Common uses include paychecks, taxes, insurance,
  credit cards, dues, interest, loans, mortgage, and rents.  Scheduling a
  payment like these provides for a useful reminder so you can manage expected
  future financial matters effectively.
</para>

<para>
  A schedule consists of two main parts: the transaction data and the scheduling
  data.  The scheduling data records the occurrence of the schedule, &ie;, when
  the transaction is to be entered into the ledger and how.  The transaction
  data records the normal details about the transaction.  These include options
  for Payment method, Account, Pay to/from, Category, Tags, Memo, Due date,
  Amount and status.  Along with this, you can also select additional options
  based on when to process the transaction.
</para>
</sect1>

<sect1 id="details.schedules.type">
<title>Types of schedules</title>

<para>
  There are four different types of schedules in the current version of
  &kmymoney;:
</para>

<itemizedlist>
  <listitem><para>Deposits</para></listitem>
  <listitem><para>Bills</para></listitem>
  <listitem><para>Transfers</para></listitem>
  <listitem><para>Loans</para></listitem>
</itemizedlist>

<sect2>
<title>Deposit</title>

<para>
  A Deposit is for money coming into your account, such as paychecks,
  bonuses, or interest income. 
</para>
</sect2>

<sect2>
<title>Bills/Withdrawals</title>

<para>	
  A Bill or Withdrawal is for money going out of your account, such as a
  membership, utility bill, taxes, or car registration.
</para>
</sect2>

<sect2>
<title>Transfer</title>

<para>
  A Transfer is for money going out of one account and into another,
  such as making a credit card payment from your checking account.
</para>
</sect2>

<sect2>
<title>Loans</title>

<para>
  A Loan Schedule is a special type of schedule and is created when dealing with a
  <link linkend="details.loans">Loan account</link>.
</para>
</sect2>
</sect1>

<sect1 id="details.schedules.view">
<title>The Schedules View</title>

<para>
  Open the Schedules View by clicking on the <guiicon><inlinemediaobject><imageobject>
  <imagedata fileref="schedule_view.png" format="PNG"/></imageobject></inlinemediaobject>
  </guiicon> schedule icon in the view selector.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="scheduleview.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Schedule View</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  The Schedules View consists of a view area with <guibutton>New
  Schedule</guibutton> button and <guibutton>Filter</guibutton> and
  <guilabel>Filter:</guilabel> text box above it.
</para>
	
<para>
  To create a new schedule click on the button.  For Deposit, Transfer, and Withdrawal/Bills
  schedules, &kmymoney; will display the new schedule dialog.  Loan schedules are
  handled differently, as described in the Loans section of this manual.
</para>
</sect1>

<sect1 id="details.schedules.new">
<title>The New Schedule dialog</title>
<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="newsched_numbered.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>New Schedule</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  A New Schedule dialog is now shown, prompting for the schedule and transaction
  details.  The requested data include the following:
</para>

<orderedlist numeration="upperalpha">
  <listitem><para>Schedule Name</para></listitem>
  <listitem><para>Next due date</para></listitem>
  <listitem><para>Frequency</para></listitem>
  <listitem><para>Payment method</para></listitem>
  <listitem><para>Amount</para></listitem>
  <listitem><para>Other transaction details</para></listitem>
  <listitem><para>Schedule options</para></listitem>
</orderedlist>

<sect2>
<title>Filling in the Schedule name, Frequency, and Payment information.</title>

<para>
  Enter the name of the schedule and the date of the next occurrence into their
  respective fields.  The name is how the schedule will be labelled in the
  Schedules View, and other displays.  Specify how often the schedule should
  occur, using the Frequency field and drop down list.  For example "every 6
  weeks" or "every 3 months."  If the amount varies transaction to transaction
  make sure to check the <guilabel>Estimate</guilabel> check box and you will be
  prompted for the correct amount when it is entered into the ledger.  The other
  required fields in the Payment information section include the Account and
  Category.  The remaining fields in this section are optional.
</para> 
</sect2>

<sect2>
<title>Modifying the Schedule Options section</title>
<para>
  You can choose how to handle non-processing days.  If the schedule occurs on a
  non-processing day you can choose whether to <guilabel>Do not change the
  date</guilabel>, <guilabel>Change the date to the previous processing
  day</guilabel>, or <guilabel>Change the date to the next processing
  day</guilabel>. This option is available to replicate some of the real world
  banking operational processing.  Non-processing days include weekends and
  holidays known to &kmymoney; for the region specified in the <link
  linkend="details.settings.schedules.calendar">appropriate configuration
  option</link>.
</para>

<para>
  You can also select whether or not the amount is an estimate so you'll be
  prompted to update the amount when the schedule is due. Selecting the process
  at the last day of the month allows for scheduling for irregular month-end
  date processing. By checking the box for automatically enter when the it's due
  provides for &kmymoney; to enter the transaction into the ledger without human
  intervention.  Otherwise, when the transaction is due to be entered,
  &kmymoney; will open a dialog box asking you to confirm that you want it to be
  entered.  This behavior is configurable, and more information can be found in
  the <link linkend="details.settings.schedules">Settings</link> section.
</para>

<para>
  If you know how many transactions are left or when they are due to finish,
  this information can be entered so the transactions are not entered
  indefinitely.  Checking the schedule will end box and enter either the number
  of transactions remaining or date of final transaction will end the scheduled
  transaction based on this criteria. 
</para>

<para>
  When you have entered all the necessary information click on
  <guibutton>OK</guibutton> to continue.
</para>
</sect2>

</sect1>

<sect1 id="details.schedules.edit">
<title>Editing schedules</title>

<para>
  To edit a schedule simply select the entry in the list and right click to
  bring up the context menu and select <guimenuitem>Edit scheduled transaction</guimenuitem>.  This
  will bring up a dialog similar to the Edit Schedule transaction dialog, where you can update
  the necessary data.
</para>
</sect1>

<sect1 id="details.schedules.delete">
<title>Deleting schedules</title>

<para>
  To delete a schedule simply select the entry in the list and right click to
  bring up the context menu and select <guimenuitem>Delete scheduled transaction</guimenuitem>.
</para>
</sect1>

<sect1 id="details.schedules.duplicate">
<title>Duplicating schedules</title>

<para>
  To duplicate a schedule simply select the entry in the list and right click to
  bring up the context menu and select <guimenuitem>Duplicate scheduled transaction</guimenuitem>.
</para>
</sect1>

<sect1 id="details.schedules.entering">
<title>Entering scheduled transactions</title>

<para>
  Entering a scheduled transaction means actually entering a transaction into
  the appropriate ledger, using the details specified in the schedule.
  Scheduled transactions can be entered in one of 3 different ways:
</para>

<itemizedlist>
  <listitem>
    <para>
    Manually by right clicking on the entry in the Schedules View</para>
  </listitem>

  <listitem>
    <para>
      &kmymoney; can enter them with or without your interaction upon startup
    </para>
  </listitem>
  <listitem>
    <para>
      &kmymoney; can enter them with your interaction during online banking or
      import of an electronic bank statement
    </para>
  </listitem>
</itemizedlist>

<sect2>
<title>Manually entering scheduled transactions</title>

<para>	
  You can enter a scheduled transaction manually by right clicking on the list
  entry and selecting <guimenuitem>Enter</guimenuitem> from the popup menu.
</para>
</sect2>

<sect2>
<title>Confirming the transaction to enter</title>

<para>
  After selecting either method the Enter Scheduled Transaction dialog window is
  shown prompting you with the required information that was entered when you
  created the schedule.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="enterschedule.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>		
  This information can be changed, and the changes can be applied to just this
  one instance of the schedule or to all subsequent transactions.  After
  checking that all the data is correct clicking <guibutton>OK</guibutton>
  will add the transaction to the ledger and update the next due date of the
  schedule to the next occurrence.  If you have changed any of the transaction
  data a further confirmation of what you changed will be displayed, giving you
  a final chance to accept or reject the changes.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="confirmenter.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>	
  Select what you want to do with the information presented and click
  <guibutton>OK</guibutton> or <guibutton>Cancel</guibutton>.
</para>
</sect2>

<sect2>
<title>Letting &kmymoney; enter the scheduled transaction(s) for you</title>

<para>	
  Alternatively, &kmymoney; can check which schedules are due upon startup and
  enter them for you if the appropriate option was checked when setting up the
  schedule.
</para>

<para>
  If the option was not checked then &kmymoney; will open the previously
  mentioned dialog and you can follow the steps mentioned there.  &kmymoney;
  will also open the dialog if the amount is an estimate so you can enter the
  real amount.
</para>

<para>
  You can also opt to have &kmymoney; not check which transactions are scheduled
  on startup by deselecting the option in the Settings dialog and any overdue
  transaction or transactions due 'today' will be shown in the Home view for you
  to enter manually.
</para>
</sect2>
</sect1>
</chapter>

