If you can accept having SPACE filled text, then the simple bash column command will do.
But if you want exactly what you have posted, then you will need a couple of RegEx Search/Replace Actions to replaces the SPACES with dots. Maybe one of the Shell Script gurus will know how to make the bash column command use a different fill character.
Example Output
Below is just an example written in response to your request. You will need to use as an example and/or change to meet your workflow automation needs.
Do you still want the Working and Meeting to line up and let the extra stuff after that trail off to various lengths? If so, just add (.*) to the end of the regular expression and add the 3rd captured group to the end of the output, i.e.,
#!/usr/bin/python3
import re
import fileinput
entry = re.compile(r'^(.+)(Meeting|Working)(.*)$')
for line in fileinput.input():
m = entry.match(line)
if m:
print(f'{m.group(1):.<21s} {m.group(2)}{m.group(3)}')
That turns
8 - 10am Working, saw video of people with Cat filter on on video
7 - 9am Working
9 - 11am Meeting with people I hate
11 - 11:30am Meeting
11:30am - 12:30pm Meeting
12:30pm - 1pm Working
2 - 5pm Working
into
8 - 10am ............ Working, saw video of people with Cat filter on on video
7 - 9am ............. Working
9 - 11am ............ Meeting with people I hate
11 - 11:30am ........ Meeting
11:30am - 12:30pm ... Meeting
12:30pm - 1pm ....... Working
2 - 5pm ............. Working
If that's not the kind of output you want, the answer will probably be more complicated.
(If you put .* after Working and Meeting in the second capture group, there's no need for a third group, and the print line could go back to what it was. I added the third group because I thought it made the code clearer. Now I'm not sure there's any value in it.)
--------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2021/02/12 06:10
# dMod: 2021/02/12 06:37
# Appl: AppleScript
# Task: Create a Fixed-Width Table with Data 03.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Create, @Fixed_Width @Table
--------------------------------------------------------
set theData to paragraphs 2 thru -2 of "
7 - 9am Working
9 - 11am Meeting
11 - 11:30am Meeting
11:30am - 12:30pm Meeting
12:30pm - 1pm Working
2 - 5pm Working
"
property tableWidth : 29
property dotPad : "........................................"
set AppleScript's text item delimiters to {" "}
repeat with i in theData
tell i to set contents of i to (its text items 1 thru -2 as text) & space & (text 1 thru (tableWidth - 2 - ((length of (text items 1 thru -2 of i as text)) + (length of (last text item of i)))) of dotPad) & space & (its last text item)
end repeat
set AppleScript's text item delimiters to linefeed
return theData as text
--------------------------------------------------------