If you manage dozens of domains, you quickly lose track of renewal dates. Keeping a spreadsheet works, but is error-prone. DomainReminder solves this: the script retrieves all renewal dates via the TransIP API and puts them directly into Apple Calendar as reminders - 14 days before the expiry date.
The full code is on GitHub: github.com/siekman-io/domainreminder

What does the script do?
- Retrieves all domains from your TransIP account via the API
- Creates a calendar event for each domain at 14 days before the renewal date
- Saves the corresponding cancellation command in the appointment notes
- Automatically syncs via iCloud to all your Apple devices
- If you run the script again, appointments are updated with current dates
Requirements
- Mac with macOS
- Python (preinstalled on macOS)
jq- command-line JSON parser- TransIP API access (private key)
install jq
brew install jq
Don't have Homebrew yet? Install it first:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Installation
Clone the repository:
git clone https://github.com/siekman-io/domainreminder.git
cd domainreminder
Save your TransIP private key:
nano ~/.ssh/transip
Paste the private key from your TransIP control panel here (My account → API → Generate keys).
Set your calendar name:
nano ~/domainreminder/vars
Adjust the variable CALENDAR to the name of the calendar in Apple Calendar where the appointments should go, e.g. Domains.
Use
Give the scripts execution rights and run it:
chmod +x domainreminder.sh cancel.sh
./domainreminder.sh
The script runs through all your domains and creates an appointment each. Open Apple Calendar and you will see all the renewal dates conveniently arranged.
Cancel domain
The notes of each calendar appointment contain the cancellation command. You can also call it directly:
~/domainreminder/cancel.sh yourdomain.com
This sends the termination via the TransIP API - no manual login required.
Automate via cron
If you want to run the script automatically twice a year, add a cron job:
crontab -e
0 9 1 1,7 * cd ~/domainreminder && ./domainreminder.sh
This runs the script on 1 January and 1 July at 09:00.
Does DomainReminder also work with registrars other than TransIP?
No, the script specifically uses the TransIP API. For other registrars, you would have to modify the API calls.
How often should I run the script?
Twice a year is sufficient - the reminders are then updated with the current renewal dates. You can also set it up as a cron job.
What exactly does cancel.sh do?
cancel.sh sends a cancellation request for a domain via the TransIP API. The command is also stored in the notes of the calendar appointment.
Lees het origineel in het Nederlands
← Lees in het Nederlands