Scriptable-IOSWidgets

πŸ“… Class Schedule Viewer

Scriptable Widget Size Data Source Schedule Type Theme Status Last Updated

Schedule Widget

A powerful iOS widget built with Scriptable that displays your university or high school class schedule directly from a public Google Sheet.

It dynamically adapts to the day of the week, highlights the current or upcoming class, and supports a weekly overview.

Designed to bring clarity to your dayβ€”at a glance.

✨ Features

πŸ“‚ Google Sheet Format

The Sheet should be published to the web as a CSV file.

Required Columns

Your CSV must contain the following headers:

| Day | Start | End | Title | Type | Section | Building | Location | |—–|β€”β€”-|—–|β€”β€”-|β€”β€”|β€”β€”β€”|β€”β€”β€”-|β€”β€”β€”-|

Example row:

Day Start End Title Type Section Building Location
1 10:00 11:30 CPS109 Lecture 011 VIC 105

Where Day is:

πŸ”— How to Get Your Google Sheets CSV URL

  1. Open your Google Sheet
  2. Click on File > Share > Publish to web
  3. Choose Comma-separated values (.csv) and the correct sheet/tab
  4. Copy the generated link

It will look like this:

https://docs.google.com/spreadsheets/d/e/.../pub?output=csv

Paste it into your script by replacing the value of SHEET_URL.

const SHEET_URL = "https://docs.google.com/spreadsheets/d/e/your-url-here/pub?output=csv";

πŸ“ Widget Sizes and Modes

Default Mode

Shows classes for today based on current system time.

Full View Mode

Shows the entire week’s schedule in grid format.
Set the parameter:

full view

Simulate Specific Day or Time

To test future days or class times:

test mon 10:30

View Other Days

To view the schedule for a specific day:

get tue

βš™οΈ Widget Parameters

Use any of the following:

Parameter Purpose
full view Show weekly grid
test tue 11:00 Simulate time + weekday
get wed Show Wednesday’s classes
(empty) Show today’s schedule (default)

🎨 Gradient Themes

Each day of the week has its own background theme, defined in the code as:

const gradientThemes = {
  monday: ["#0f2027", "#203a43"],
  tuesday: ["#2c3e50", "#4ca1af"],
  ...
};

Feel free to modify these for your aesthetic preference.

πŸ“Έ Screenshot

Small Widget

Medium Widget

large Widget

πŸ§ͺ Development Tips

πŸ™Œ Feedback

Have questions or want help customizing it? DM me on Instagram or email me at rushiofficial1205@gmail.com.

Widgets shouldn’t be limited to timersβ€”I’d love to build tools that help you passively learn, reflect, or stay organized. If you have a unique concept in mind, I’d love to collaborate.

πŸ“œ License

This project is licensed under the MIT License.

Feel free to fork, build upon, and remix with attribution.

##

Enjoy using this widget ~ RP