# 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](https://html-pdf.com/templates/report) 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](https://html-pdf.com/login). You get 100 free pages once, with no card.

## Step by step with n8n

1. **Schedule.** Add a **Schedule Trigger**, for example every Monday at 7:00.
2. **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.
3. **Build the agenda.** Add a **Code** node that groups events by day and turns them into rows.
4. **Make the PDF.** Add an **HTTP Request** node. Method `POST`, URL `https://html-pdf.com/v1/pdf`, header `Authorization` with `Bearer hp_live_...`, and a JSON body like the one below. Set the response format to **File**.
5. **Deliver.** Add **Gmail** to email it, or **Google Drive** to save it.

```json
{
  "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](https://html-pdf.com/guides/n8n) shows each node setting.

## Step by step with Make

1. Set the scenario to run weekly.
2. Add **Google Calendar → Search Events** for the date range you want.
3. Add a **Text aggregator** that builds one line per event.
4. Add **HTTP → Make a request** posting to `https://html-pdf.com/v1/pdf`, with `"response": "url"` in the body.
5. Email the link or upload the file. The [Make guide](https://html-pdf.com/guides/make) 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](https://html-pdf.com/guides/zapier).

## Code path for developers

In Google Apps Script, attached to your Google account, the whole thing fits in one function.

```js
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](https://html-pdf.com/pdf-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](https://html-pdf.com/templates/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.
