Turn your Google Calendar into a printable PDF
Google Calendar to PDF with your own layout. Make a weekly agenda, daily schedule or event list as a PDF automatically with n8n, Make or Zapier.
Quick answer. On a schedule, n8n, Make or Zapier pulls your upcoming events from Google Calendar. The events go into an agenda template, html-pdf.com turns it into a PDF, and the PDF lands in your inbox or a shared folder.
What you'll build
A Monday morning PDF with the week ahead. A daily room schedule to print and pin on the door. A list of every client meeting last month, ready to attach to an invoice or timesheet.
Google Calendar's print option works for a quick copy. This approach gives you your own layout, can combine several calendars, and runs by itself on a schedule.
What you need
- A Google account with the calendars you want to include.
- n8n, Make or Zapier. n8n and Make are easiest because they can fetch many events at once.
- A design. The report template is a good start for an agenda. A template is a ready made page design, so you only change the text.
- An API key from html-pdf.com. You get 100 free pages once, with no card.
Step by step with n8n
- Schedule. Add a Schedule Trigger, for example every Monday at 7:00.
- Get events. Add a Google Calendar node with Event → Get Many. Pick the calendar and set the start and end to cover the next 7 days.
- Build the agenda. Add a Code node that groups events by day and turns them into rows.
- Make the PDF. Add an HTTP Request node. Method
POST, URLhttps://html-pdf.com/v1/pdf, headerAuthorizationwithBearer hp_live_..., and a JSON body like the one below. Set the response format to File. - Deliver. Add Gmail to email it, or Google Drive to save it.
{
"html": "<h1>Week of 12 Oct 2026</h1><h3>Monday</h3><p>09:00 Team standup</p><p>14:00 Call with Acme</p><h3>Tuesday</h3><p>11:00 Dentist</p>",
"format": "A4",
"filename": "agenda-2026-10-12.pdf"
}
The n8n guide shows each node setting.
Step by step with Make
- Set the scenario to run weekly.
- Add Google Calendar → Search Events for the date range you want.
- Add a Text aggregator that builds one line per event.
- Add HTTP → Make a request posting to
https://html-pdf.com/v1/pdf, with"response": "url"in the body. - Email the link or upload the file. The Make guide has the details.
With Zapier
Use Schedule by Zapier as the trigger and Google Calendar → Find Events to search for events, then Webhooks by Zapier → Custom Request to make the PDF. Zapier searches may return only a limited number of events, so this suits short daily schedules best. See the Zapier guide.
Code path for developers
In Google Apps Script, attached to your Google account, the whole thing fits in one function.
function weeklyAgendaPdf() {
const start = new Date();
const end = new Date(start.getTime() + 7 * 864e5);
const events = CalendarApp.getDefaultCalendar().getEvents(start, end);
const rows = events.map(e =>
`<tr><td>${Utilities.formatDate(e.getStartTime(), Session.getScriptTimeZone(), "EEE d MMM HH:mm")}</td><td>${e.getTitle()}</td></tr>`
).join("");
const res = UrlFetchApp.fetch("https://html-pdf.com/v1/pdf", {
method: "post",
contentType: "application/json",
headers: { Authorization: "Bearer " + PropertiesService.getScriptProperties().getProperty("HTML_PDF_KEY") },
payload: JSON.stringify({ html: `<h1>This week</h1><table>${rows}</table>`, format: "A4" }),
});
GmailApp.sendEmail(Session.getActiveUser().getEmail(), "Your agenda", "Attached.",
{ attachments: [res.getBlob().setName("agenda.pdf")] });
}
Add a weekly time trigger in Apps Script and it runs by itself.
Ask your AI agent
Connect the html-pdf.com MCP server to an assistant that can read your calendar.
Look at my Google Calendar for next week and use html-pdf to make a one page A4 agenda. One column per weekday, meetings in bold, and a notes box at the bottom.
FAQ
Can I print a Google Calendar month view?
This approach builds the page from your events, so you can make a month grid, but you design it in the template. For a quick printed view, Google Calendar's own print option is simpler.
Can I include several calendars?
Yes. Fetch events from each calendar, merge them in the Code node or aggregator, and add a color per calendar.
Can I make a PDF for a single event?
Yes. Use the new event trigger in Zapier or n8n and fill a template like the event ticket with the event details.
How much does it cost?
A one page weekly agenda uses one credit. You get 100 free pages once, then packs start at $10 for 1,000 pages.
