This extension allows to trigger a notification when a date is reached:
It can be used for a Contract, a License or any object with a date.
The notification delay is configurable for each class of object. You can set a 3 months' notice on Contracts and only 30 days on Licenses for example.
Multiple notifications with different delays can be defined for a given class. Therefore, you can have a first notification 45 days before contract expiration, another one 15 days later and maybe a last notification 5 days before the deadline.
Limitation:
This extension is designed for infrequent events, when a daily notification is sufficient.