Every weekday morning, reads the calls booked on your calendar for today and sends you one written-up message in Telegram.
UsesGoogle Meet
OpenAI
Telegram
A written-up plan of your day in Telegram
telegramChatId to blank.Set telegramChatId to blank.whatToNote to blank.Set whatToNote to blank.maxMeetings to 12.Set maxMeetings to 12.today.Get today's date and save it as today.utcStamp to the current date and time formatted as an ISO 8601 timestamp in UTC truncated to 19 charactersZ.Set utcStamp to the current date and time formatted as an ISO 8601 timestamp in UTC truncated to 19 charactersZ.localStamp to the current date and time formatted as an ISO 8601 timestamp truncated to 19 charactersZ.Set localStamp to the current date and time formatted as an ISO 8601 timestamp truncated to 19 charactersZ.utcStamp to localStamp and save it as minutesFromUtc.Count the minutes from utcStamp to localStamp and save it as minutesFromUtc.todayT00:00:00Z by 0 minus minutesFromUtc minutes and save it as dayStart.Move todayT00:00:00Z by 0 minus minutesFromUtc minutes and save it as dayStart.todayT23:59:59Z by 0 minus minutesFromUtc minutes and save it as dayEnd.Move todayT23:59:59Z by 0 minus minutesFromUtc minutes and save it as dayEnd.meetings to an empty list.Set meetings to an empty list.calendarErrorIf a step below fails, save the error as calendarErrorTry
meetings to the meetings from the Google Meet “List meetings” step.Change meetings to the meetings from the Google Meet “List meetings” step.On error
calendarError as text.Stop and report a problem: Your calendar could not be read, so no reminder was sent: calendarError as text.sections to an empty list.Set sections to an empty list.written to 0.Set written to 0.skipped to 0.Set skipped to 0.meeting in meetings:For each meeting in meetings:written is greater than or equal to maxMeetings multiplied by 1If written is greater than or equal to maxMeetings multiplied by 1Yes
No
No steps
title to blank.Set title to blank.titleMissingIf a step below fails, save the error as titleMissingTry
meeting.title and save it as title.Trim meeting.title and save it as title.On error
title to blank.Change title to blank.title is nullIf title is nullYes
title to blank.Change title to blank.No
No steps
title is emptyIf title is emptyYes
title to Untitled meeting.Change title to Untitled meeting.No
No steps
startsAt to blank.Set startsAt to blank.startMissingIf a step below fails, save the error as startMissingTry
meeting.start and save it as startsAt.Trim meeting.start and save it as startsAt.On error
startsAt to blank.Change startsAt to blank.startsAt is nullIf startsAt is nullYes
startsAt to blank.Change startsAt to blank.No
No steps
startsAt is emptyIf startsAt is emptyYes
skipped.Add 1 to skipped.No
No steps
clock to All day.Set clock to All day.startsAt contains TIf startsAt contains TYes
startsAt split by T to 5 characters and save it as clock.Shorten the last item of startsAt split by T to 5 characters and save it as clock.No
No steps
guests to blank.Set guests to blank.guestsMissingIf a step below fails, save the error as guestsMissingTry
meeting.attendees with , and save it as guests.Join meeting.attendees with , and save it as guests.On error
guests to blank.Change guests to blank.meetingFacts to Title: titleSet meetingFacts to Title: title
Starts: startsAt
Guests: guests.notePrompt to You are writing one line of preparation for a meeting that is already scheduled. Reply with a single sentence of at most 25 words and nothing else.Set notePrompt to You are writing one line of preparation for a meeting that is already scheduled. Reply with a single sentence of at most 25 words and nothing else.
Do not state any time, date, duration, price, count or other figure. The reminder already carries the time, and a figure you supply cannot be checked. If you have nothing useful to add, reply with the single word none.
What the reader wants called out:
whatToNote
The meeting:
meetingFacts.note to blank.Set note to blank.noteErrorIf a step below fails, save the error as noteErrorTry
note.Trim the response text from the OpenAI “Ask OpenAI” step and save it as note.On error
noteError as text.Show in the output: No preparation line for '@title': noteError as text.note to blank.Change note to blank.note in lowercase is noneIf note in lowercase is noneYes
note to blank.Change note to blank.No
No steps
note to 220 characters and save it as note.Shorten note to 220 characters and save it as note.note and save it as noteFigures.Extract all matches from note and save it as noteFigures.meetingFacts and save it as factFigures.Extract all matches from meetingFacts and save it as factFigures.noteIsSourced to true.Set noteIsSourced to true.noteFigure in noteFigures:For each noteFigure in noteFigures:factFigures doesn't contain noteFigureIf factFigures doesn't contain noteFigureYes
noteIsSourced to false.Change noteIsSourced to false.No
No steps
noteIsSourced is noIf noteIsSourced is noYes
note to blank.Change note to blank.No
No steps
section to clock title.Set section to clock title.guests isn't emptyIf guests isn't emptyYes
section to sectionChange section to section
With: guests.No
No steps
note isn't emptyIf note isn't emptyYes
section to sectionChange section to section
note.No
No steps
section to the end of sections and save it as sections.Add section to the end of sections and save it as sections.written.Add 1 to written.message to blank.Set message to blank.sections is emptyIf sections is emptyYes
message to Nothing booked for today.Change message to Nothing booked for today.No
message to Your day, todayChange message to Your day, today
sections joined by a blank line.skipped is greater than 0If skipped is greater than 0Yes
message to messageChange message to message
Left out: skipped as text calendar entries with no start time.No
No steps
message to 3900 characters and save it as message.Shorten message to 3900 characters and save it as message.message is blankIf message is blankYes
No
No steps
telegramChatId.Send a message to chat telegramChatId.message