Daily
Schedule study sessions around your calendar until the exam
Your syllabus topics are turned into study sessions placed in your free time, all finished before the exam date.
- Runs
- Daily
- Apps
- Google Calendar, Google Sheets
- AI
- Yes, uses the built-in AI allowance
- Access
- Sheet edit; Calendar read+write
Send this to your assistant
Create a ClickRuntime automation: read my syllabus sheet and schedule study sessions in my free calendar slots until the exam date.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A student working part-time has an exam in six weeks and a syllabus of twenty topics. She knows she should spread the revision out, but her shifts change every week, and planning around them feels like a job in itself. So revision gets left until the last fortnight.
This automation builds the plan for her. It reads her topics, finds the gaps in her calendar and books study sessions into them, so each topic has a set time well before the exam.
What you get out of it
Revision spread out, not crammed
Sessions are placed across the weeks before the exam, which is how material actually sticks.
Fits around your real week
Only free slots are used, so study time never clashes with work shifts, lectures or plans already in the calendar.
Harder topics get more time
Topics you mark as difficult get longer or extra sessions, so the plan reflects where you need the most help.
A plan you can see
Each session sits in your calendar with the topic in the title, so you always know what to study next.
How it works
What happens, step by step
ClickRuntime reads the topics and exam date from your syllabus sheet.
It skips topics already marked as scheduled.
It finds the free time in your Google Calendar between now and the exam.
AI spreads the topics across those free slots, giving harder topics more time.
It books each study session in your calendar and marks the topic as scheduled in the sheet.
Before it runs live
- Connect Google Calendar
- Connect your Google Sheets account and pick the spreadsheets it may use
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Google Calendar and Google Sheets steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, ai
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
creds = Credentials(credentials.connection("google", "work"))
sheet = build("sheets", "v4", credentials=creds, cache_discovery=False).spreadsheets().values()
rows = sheet.get(spreadsheetId=SHEET_ID, range="Syllabus!A2:D").execute().get("values", [])
todo = [(i, r) for i, r in enumerate(rows, start=2) if len(r) < 4 or r[3] != "Scheduled"]
if not todo:
return {"scheduled": 0}
exam = rows[0][1]
cal = build("calendar", "v3", credentials=creds, cache_discovery=False)
busy = cal.freebusy().query(body={"timeMin": datetime.now(timezone.utc).isoformat(), "timeMax": f"{exam}T00:00:00Z",
"items": [{"id": "primary"}]}).execute()["calendars"]["primary"]["busy"]
schema = {"type": "object", "properties": {"sessions": {"type": "array", "items": {"type": "object", "properties": {
"topic": {"type": "string"}, "start": {"type": "string"}, "end": {"type": "string"}}}}}}
plan = ai.generate([f"Plan 1-2 hour study sessions between 08:00 and 21:00 before {exam}, avoiding these busy times, "
"harder topics get more time. Use ISO times.", str(busy), str([r for _, r in todo])],
json_schema=schema, max_output_tokens=2000).json["sessions"]
for s in plan:
cal.events().insert(calendarId="primary", body={"summary": f"Study: {s['topic']}",
"start": {"dateTime": s["start"]}, "end": {"dateTime": s["end"]}}).execute()
for i, _ in todo:
sheet.update(spreadsheetId=SHEET_ID, range=f"Syllabus!D{i}", valueInputOption="RAW", body={"values": [["Scheduled"]]}).execute()
return {"scheduled": len(plan)}FAQ
Common questions
What do I need in the syllabus sheet?
What if my calendar changes after the plan is made?
Can I limit study to certain hours?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Turn your week's calendar into a timesheet by client
Every Friday your calendar events are sorted by client or project and written to your timesheet sheet with the hours for each.
See how it worksSchedule backlog refinement meetings from your sheet
Before each sprint, the top backlog items are picked from your sheet and refinement meetings are put in the team's calendars.
See how it worksPut birthdays, anniversaries and probation dates on the calendar
Birthdays, work anniversaries and probation end dates from your employee sheet appear as calendar events ahead of time.
See how it worksKeep exploring
Set up “Schedule study sessions around your calendar until the exam” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.