Creates and maintains linked skeletons of Google calendar events that rigidly move around as a single unit.
After installation (see below), calendar events will be grouped into "skeletons" based on their "skeletor key".
To create a skeleton simply add skeletor: <key-name>
to an event's
description. All events with with skeletor: <key-name>
in their description
will be part of the <key-name>
skeleton.
Skeletor will automatically color skeletons
so you can easily see which ones
match. It may reuse colors if you have a lot of skeletor keys though.
When you move any event in a skeleton, all of the events in the skeleton will adjust times to fit. Unfortunately, google calendar is a bit slow to update, so you may need to count to 5 and then reload your calendar page.
You have two options:
-
Create a new event at the appropriate time and delete the old one.
-
Put it in a new skeleton by changing its skeletor key, then move it, and then change its skeletor key back to the original.
If any skeleton has turned red, there is an error with it. If you feel comfortable debugging javascript, go have fun with that. If you don't, just replace each event with a new one you create from scratch.
The most common cause of errors is moving two events in a skeleton before skeletor has had a chance to move the entire skeleton.
You should only have to do these steps once.
Go to Google User Settings and change "Google Apps Script API" to "On".
- Go to App Script Home
- Click "New Project" in the upper left.
- Rename the project from "Untitled Project" to "Skeletor" by clicking "Untitled Project" at the top.
- Replace the entire contents of
Code.gs
(which should contain an emptymyFunction
) with the contents of calendar.js. - Save the project.
-
Run the function
updateAllSkeletons()
via the small grey run button at the top center. -
Select 'Review Permissions'.
-
Select your gmail account.
-
Click the small grey "Advanced" text in the lower left, acknowledging that this is not a verified app.
-
Select the small grey text that says "Go to Skeletor (unsafe)" in the lower left.
-
Select "Allow"
At this point the app should execute, unless you already have configured events, you shouldn't see it do much, but it will bring up the console with a log for the run.
-
Select "Triggers" on the left side bar (the text won't appear until you mouse over the little alarm clock icon).
-
Select "Add Trigger" in the lower right.
-
Under "Select event source", change the selection from "Time-Driven" to "From calendar".
-
Under "Calendar owner email", put your gmail account.
-
Change "Failure notification settings" to "Notify me immediately".
-
Select "Save". This may require you to go through the permissions flow another time, and may require you to click "Save" twice.
At this point the list of triggers should contain one entry.
It should disappear and leave the rest of the skeleton unaffected.
Because it needs to read and write your calendar events to move them.
Because it is just some code a random person (me) wrote and you probably should be careful trusting strangers.
Well, yes. But that is also what an untrustworthy person would say.
Umm... that got weird quickly. Glad you like it. If you ever run into me in person, by me lunch or a coffee or something. If you don't, try to be a good person.