I am a developer for Cognito Forms.
Since February 2015 the following functionality has been made available:
In this example, I am setting the range on the Start Date field to =DateTime.Today
. It could have also been =DateTime.Today.AddDays(1)
to be tomorrow or later. Calculations are very robust and should cover most scenarios you can dream up, but you can also just enter literal dates.
![range field](https://i.stack.imgur.com/Z5i0d.jpg)
I then set the range on the End Date to be at least three days after the Start Date, but no more than seven days. Here is the calculation for the End Date minimum:
![setting end date minimum](https://i.stack.imgur.com/brkmu.jpg)
And this is how the Start Date appears on the form, with the days before today disabled:
![calendar with days disabled](https://i.stack.imgur.com/ksVpr.jpg)
And similarly for the End Date, with both minimum and maximum date restrictions based on the Start Date.
![calendar with days after disabled](https://i.stack.imgur.com/V6oC8.jpg)
The date range for the End Date automatically updates based on changes to the Start Date, so if an End Date is specified and the Start Date is later changed, validation will catch this if the user does not fix it first.
![end date validation](https://i.stack.imgur.com/TEGYQ.jpg)
Please note that range validation applies to Date, Number and Currency fields, not just the dates included in this example.
You are doing exactly what you need to do to make this work. The Require Payment option is really Require Online Credit Card Payment. If you do not connect your form to Stripe, it automatically treats all of your payment forms as invoices.
You can then select Include Receipt for confirmation emails to also include the receipt, which is really an invoice with an amount due like you would expect.
Best Answer
I am a developer at Cognito Forms.
The $1 minimum is the minimum payment amount required by Cognito Forms. This minimum amount is set to ensure that the payment amount can cover Stripe’s fees of 2.9% + $.30 as well as Cognito Forms’ 1% fee. The $.50 minimum payment required by Stripe is set to ensure their transaction fees are covered, so we needed to raise that minimum enough to cover both sets of fees.