AFcal is a tool for setting up monthly and yearly reminders that can be accessed via a single RSS feed. It works great with services that allow RSS feeds as triggers to execute recurring actions like n8n, IFTTT and Zapier.
- Use as trigger for creating a card on a kanban board for manual NAS backups
- Low-priority tasks at home (like cleaning your washing machine filter every January 1st and June 1st)
- Reminders for manually backing up family photos to an external drive
- Quarterly meetings with your accountant to keep your business running smoothly
- Self host-able
- Available in German (default language) and English
- Manage reminders via responsive backend interface
- Enable/disable reminders via GET parameters
- Add reminders to groups for better organization
- Add attributes to reminders
- Saves data to JSON file
- Common web server with PHP support
- Set your dashboard language in inc/globals.php
- Copy files to web server
Access the script via index.php
to get the RSS feed. To add, remove, enable or disable reminders, use the dashboard. Overdue reminders get restarted automatically when the feed is accessed and will be displayed immediately afterwards.
The dashboard lists all existing reminders and allows you to enable/disable them. Reminders only appear in the RSS feed when they are enabled. To enable/disable reminders via GET parameters, use dashboard.php?start=reminder-id
or dashboard.php?stop=reminder-id
.
To add/remove reminders, use the Edit list
button, which opens a form with the following fields:
ID: A unique ID for your reminder, used for the timestamp filename and as the item description in the RSS feed. Only regular english letters, numbers and hyphens recommended.
Title: The RSS item title.
Interval: Two types of reminder intervals are supported.
- Monthly: Use the syntax
Monthly
+[day number of month]
. Always use a two-digit number (likeMonthly04
for the 4th day of every month). - Yearly: Use the syntax
[month number]-[day number]
. Always use two-digit numbers (like02-06
for February 6th or11-25
for November 25th).
Group: An advanced feature for users with many reminders. Use it to handle reminders with different priorities efficiently.
- All: For reminders with both low and high priority.
- Essential: For reminders with high priority at home, such as trash routines.
- Sabbatical: For reminders with high priority on long trips, such as health routines.
Groups can be useful for the control system that gets triggered by the RSS feed. You could, for example, set up a Global Timeout Status variable that helps to exclude RSS items based on their reminder group when you're on vacation at home or traveling around the world.
Note: Group values do not affect the visibility of RSS feed items.
Attributes: A hidden feature that can be used to add custom data to reminders. Possible use cases include attaching a status/label to specific reminders or mark certain ones as processed.
To set an attribute, use dashboard.php?id=reminder-id&attribute=attribute-data
. If an attribute was already set before it will be overwritten.
The data will be saved to the timestamps
folder in a reminder-id_attributes.txt
file.
Note: Attributes get reset when a reminder is started, restarted or stopped.
- UI improvement: Redesign overall look and feel
- UI improvement: Add interval picker to edit form
- UI improvement: Validate ID syntax while typing into edit form
- Expose group for each item in RSS feed
- Allow users to add custom groups
- Allow users to hide advanced features if not required to declutter UI
- If you plan to handle sensitive data with this tool on a publicly accessible server, consider hardening your system using at least htaccess restrictions.
- AFcal comes from AFRAZ and calendar since it behaves like a calendar for reminders.