Skip to content

PacifiK2460/schedule-maker

Repository files navigation

Schedule Maker 📆

A ==simple uni schedule maker== that allows you to input your subjects and generate all possible schedules for the semester.

Every possible schedule is generated into a separate .ics file that can be imported into your calendar app or supported calendar viewer. 1


Usage: : schedule_maker[.exe] [OPTIONS] --input-file <INPUT_FILE>

Options:

-i, --input-file <INPUT_FILE> : Input file to process

-o, --output-directory <OUTPUT_DIRECTORY> : Output directory to export to (defaults to current directory) [default: .]

-h, --help : Print help

-V, --version : Print version

Example:

schedule_maker[.exe] --input-file subjects.toml --output-directory ./out/semester1

Input file format:

The input file is a TOML file that contains the following fields, where each subject is a table and the days field is an array of tables.

[[subject]]
name = "Programming"
class_id = "410P-T21B"
professor = "John Doe"
days = [
  { day = "monday", start = 11:00:00, end = 11:55:00 },
  { day = "tuesday", start = 11:00:00, end = 11:55:00 },
  { day = "thursday", start = 11:00:00, end = 11:55:00 },
  { day = "wednesday", start = 11:00:00, end = 11:55:00 },
  { day = "friday", start = 11:00:00, end = 11:55:00 },
]

Example:

[[subject]]
name = "Programming"
class_id = "410P-T21B"
professor = "John Doe"
days = [
  { day = "monday", start = 11:00:00, end = 11:55:00 },
  { day = "tuesday", start = 11:00:00, end = 11:55:00 },
  { day = "thursday", start = 11:00:00, end = 11:55:00 },
  { day = "wednesday", start = 11:00:00, end = 11:55:00 },
  { day = "friday", start = 11:00:00, end = 11:55:00 },
]

[[subject]]
name = "Programming"
class_id = "410P-T21A"
professor = "John Doe"
days = [
  { day = "monday", start = 10:00:00, end = 10:55:00 },
  { day = "tuesday", start = 10:00:00, end = 10:55:00 },
  { day = "thursday", start = 10:00:00, end = 10:55:00 },
  { day = "wednesday", start = 10:00:00, end = 10:55:00 },
  { day = "friday", start = 10:00:00, end = 10:55:00 },
]

[[subject]]
name = "Programming"
class_id = "410P-T21C"
professor = "John Doe"
days = [
  { day = "monday", start = 12:00:00, end = 12:55:00 },
  { day = "tuesday", start = 12:00:00, end = 12:55:00 },
  { day = "thursday", start = 12:00:00, end = 12:55:00 },
  { day = "wednesday", start = 12:00:00, end = 12:55:00 },
  { day = "friday", start = 12:00:00, end = 12:55:00 },
]

[[subject]]
name = "Data Structures"
class_id = "650P-T21A"
professor = "John Doe"
days = [
  { day = "monday", start = 09:00:00, end = 10:55:00 },
  { day = "tuesday", start = 09:00:00, end = 10:55:00 },
]

[[subject]]
name = "Data Structures"
class_id = "650P-T21B"
professor = "John Doe"
days = [
  { day = "monday", start = 10:00:00, end = 10:55:00 },
  { day = "tuesday", start = 10:00:00, end = 10:55:00 },
]

[[subject]]
name = "Data Structures"
class_id = "650P-T21C"
professor = "John Doe"
days = [
  { day = "monday", start = 11:00:00, end = 11:55:00 },
  { day = "tuesday", start = 11:00:00, end = 11:55:00 },
]

[[subject]]
name = "Data Structures"
class_id = "650P-T21A"
professor = "John Doe"
days = [
  { day = "monday", start = 12:00:00, end = 12:55:00 },
  { day = "tuesday", start = 12:00:00, end = 12:55:00 },
]

Footnotes

  1. I recommend this. ↩

About

Schedule Maker made in Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages