This directory contains the GitHub Actions workflow and script for automatically posting Utah Data Science Center events to Bluesky.
-
Schedule: The workflow runs twice a week:
- Mondays at 9:00 AM MST
- Wednesdays at 8:00 AM MST
-
Data Source: The script fetches the next upcoming event from the Utah Data Science Center Google Calendar (calendar ID:
ekol7ulqm14nv155angut2rlfo@group.calendar.google.com) -
Posting: It formats the event information into a social media-friendly message and posts it to Bluesky using the AT Protocol
To enable Bluesky posting, add the following secrets to your GitHub repository:
- Go to your repository Settings → Secrets and variables → Actions
- Add these repository secrets:
BLUESKY_USERNAME: Your Bluesky handle (e.g.,username.bsky.social)BLUESKY_PASSWORD: Your Bluesky app password (not your regular password!)
- Log in to Bluesky
- Go to Settings → App Passwords
- Create a new app password for "GitHub Actions Bot"
- Use this app password (not your regular password) as
BLUESKY_PASSWORD
GOOGLE_CALENDAR_API_KEY: If you want to use a different Google Calendar API key (the script has a fallback to the existing key)
You can manually trigger the workflow by:
- Going to the Actions tab in your repository
- Selecting "Post to Bluesky"
- Clicking "Run workflow"
bluesky-post.yml: GitHub Actions workflow definitionpost_to_bluesky.py: Python script that handles calendar fetching and Bluesky postingREADME.md: This documentation file
The bot posts messages in this format:
🔬 Join us for our next Utah Data Science Center event!
📅 [Event Title]
⏰ [Day, Month Date at Time]
📍 [Location]
[Brief description...]
🔗 More info: https://datascience.utah.edu/seminar
📅 Calendar: [Google Calendar Link]
#DataScience #Utah #AI #MachineLearning
If no upcoming events are found, it posts a generic message directing people to the website.