Four weeks. You started with count_emails and ended with morning_report — an automation you could run before your first coffee. Which chain felt most useful?
email_to_task. I ran it and a task appeared in Google Tasks two seconds later. That was the moment it clicked.
That is exactly the click. One question before the quiz — what made Week 4 different from the rest?
The data flows across API boundaries. Read here, transform in Python, write there. It's the same skeleton as every prior week, just wired together.
That is the whole track. The bridge pattern, the nested .get, the fan-out, the defensive guards — every function this week reused patterns from weeks 1 through 3. Let the quiz surface any gaps.
This week you chained APIs across applications:
email_to_task(max_results) — Gmail + Tasks; guard empty inbox, slice title, insert tasklog_emails_to_sheet(max_results, id) — Gmail + Sheets; loop-append every snippet as a rowcalendar_to_sheet(query, id) — Calendar + Sheets; nested .get for start.dateTimefull_inbox_triage(max_results) — Gmail + Tasks + Calendar; fan-out with per-destination countersmorning_report() — Gmail + Calendar; two reads, one dictCore moves: chaining, nested .get, per-destination counters, defensive early returns.
Create a free account to get started. Paid plans unlock all tracks.
Four weeks. You started with count_emails and ended with morning_report — an automation you could run before your first coffee. Which chain felt most useful?
email_to_task. I ran it and a task appeared in Google Tasks two seconds later. That was the moment it clicked.
That is exactly the click. One question before the quiz — what made Week 4 different from the rest?
The data flows across API boundaries. Read here, transform in Python, write there. It's the same skeleton as every prior week, just wired together.
That is the whole track. The bridge pattern, the nested .get, the fan-out, the defensive guards — every function this week reused patterns from weeks 1 through 3. Let the quiz surface any gaps.
This week you chained APIs across applications:
email_to_task(max_results) — Gmail + Tasks; guard empty inbox, slice title, insert tasklog_emails_to_sheet(max_results, id) — Gmail + Sheets; loop-append every snippet as a rowcalendar_to_sheet(query, id) — Calendar + Sheets; nested .get for start.dateTimefull_inbox_triage(max_results) — Gmail + Tasks + Calendar; fan-out with per-destination countersmorning_report() — Gmail + Calendar; two reads, one dictCore moves: chaining, nested .get, per-destination counters, defensive early returns.