Expiro tracks contract renewals for agencies, freelancers and small teams.
Most tools watch the end date. That is the wrong date. A contract ending in 28 days with a 30 day notice period has already renewed itself, and the deadline that decided it passed two days ago. Expiro works out the notice deadline from the end date and the notice period, and alerts on that one.
Alerts fire 90, 60, 30 and 7 days out, on the account's own timezone rather than the server's. They go by email and browser push, or into Slack, Microsoft Teams, Discord, Telegram, Google Chat, Mattermost, Pushover, ntfy or a webhook you define. SMS is on the paid tiers. Every delivery is recorded per channel, so a Slack post that failed is visible instead of silent.
There is a renewal pipeline from upcoming through contacted and negotiating to renewed or lost, notes and comments with @mentions on a shared timeline, custom fields, contract templates, and CSV import from the spreadsheet you keep now.
Data comes out the way it went in: an ICS calendar feed, CSV and JSON export, and a REST API with scoped, hashed tokens that can expire.
Two-factor authentication, a per-account audit log and team roles. Setup takes about ten minutes. 90 day free trial, no credit card.