Automated notification system that notifies bright artificial objects expected in 10 days and writes iCalendar format(.ics) file for Kyushu University Hanada Lab Pegasus Observatory.
Data provided by heavens-above, Meteoblue and SatPhotometry Library.
usage :
Subscribe this URL at calendar App.
https://github.com/kiyo-astro/SSDL-SatPass-Notification/raw/refs/heads/main/output/heavens-above/SatPass.icsPlease set auto refresh frequency of your calendar subscription LESS OFTEN than every 30 mins.
Also, you can manually download .ics file from here.
update frequency :
Orbital information is updated every 1 hour at the top of the hour, and weather information is updated daily at 00:00 UTC.
Note : Update frequency and timing are currently controlled by cron-job.
iCalendar update follows GitHub Actions workflow SSDL-SatPass-Notification-hourly.yml
update frequency :
Slack notification is sent weekly at 22:00 UTC on Sunday (07:00 JST on Monday).
Note : Update frequency and timing are currently controlled by cron-job.
Slack Notification follows GitHub Actions workflow SSDL-SatPass-Notification-weekly.yml
cron-job => GitHub Actions workflow => SSDL-SatPass-Notification.py => Slack App (SSDL SatPass Notification System)
- cron-job sets running schedule of GitHub Actions workflow
- GitHub Actions runs Python script
- SSDL-SatPass-Notification.py retrives data from heavens-above and Meteoblue, makes iCalendar format file and sends notice to Slack via Slack API.
Due to unacceptable delay of the GitHub Actions native scheduler (written in workflow files), running frequency and timing are now controlled by cron-job via GitHub PAT.
Only the repository owner can change these settings. Therefore, in the future, this repository should ideally be managed by an organization rather than an individual developer.
For further information about cron-job, please refer to this useful article (in Japansese).
The repository contributers can change some settings about notice contents at workflow files.
- Hourly iCalendar update : Edit SSDL-SatPass-Notification-hourly.yml
- Weekly Slack notice : Edit SSDL-SatPass-Notification-weekly.yml
Contributers can change :
SLACK_CHANNELSEND_NOTICEMETEOBLUE_UPDATENOTIFY_TYPETIME_WINDOWMIN_ALTMIN_DURATION
ONLY owner can change from Repository Settings > Secrets and variables > Actions > Repository secrets :
SLACK_TOKENMETEOBLUE_API_KEY
Caution : DO NOT HARDCODE ANY API KEYS (SLACK_TOKEN and METEOBLUE_API_KEY) on workflow files! The workflow files are in public!
SLACK_CHANNEL :
Slack channel ID.
Note that Slack channel ID is displayed at the bottom of Channel settings on the desktop Slack App.
SEND_NOTICE :
SEND | NOT : Send notice to Slack or not.
METEOBLUE_UPDATE :
FORCE | DAY : Force Meteoblue update at every run, or update once a day.
The option DAY is highly recommended because the number of free calls of Meteoblue API is strictly limited (about 400 times per year).
NOTIFY_TYPE :
bydate | bysat : Slack notification type.
bydate: Satellite passes is displayed by date (recommended)bysat: Satellite passes is displayed by satellites
TIME_WINDOW :
evening | morning | all : Observation time window.
evening: ONLY visible satellite passes in evening are notifiedmorning: ONLY visible satellite passes in morning are notifiedall: All visible satellite passes are notified
MIN_ALT :
Minimum highest-altitude [deg] of visible satellite passes. Value must be integer greater than 10 and less than 90.
MIN_DURATION :
Minimum duration [sec] of visible satellite passes. Value must be integer greater than 0.
SLACK_TOKEN :
Slack API token.
Note that this value is saved as Secrets of this repository and can be changed ONLY by the repository owner.
For security reason, DO NOT HARDCODE THIS VALUE ON WORKFLOW FILES!
METEOBLUE_API_KEY :
Meteoblue API key.
Note that this value is saved as Secrets of this repository and can be changed ONLY by the repository owner.
For security reason, DO NOT HARDCODE THIS VALUE ON WORKFLOW FILES!
(c) 2026 Kiyoaki Okudaira
Kyushu University Hanada Lab (SSDL)
