How to Add a Calendar Invite to a Gmail Email

The short answer
In Gmail compose, click the calendar icon in the toolbar: choose Offer times you're free to propose several slots, or Create an event to attach a fixed invite recipients can RSVP to. Neither attaches a real .ics file — for that, add the person as a guest in Google Calendar instead, which emails them one automatically.
How to add a calendar invite to a Gmail email: propose times, attach a live event, or share a booking link — and when to use each.
On this page
If you're looking for how to add a calendar invite to a Gmail email, the honest answer is that Gmail gives you three separate tools, not one, and they solve different problems. You can propose a handful of times and let the recipient pick one, attach an actual event with a fixed date, or hand over a link to your open slots so someone else does the picking.
Which one you want depends on what you already know. If you haven't agreed on a time yet, propose times. If the meeting is locked in, attach the event. If you'd rather skip the back-and-forth entirely, send a booking link instead.
This guide walks through all three, plus the one thing Gmail genuinely can't do from its compose window: attach a raw .ics file. Every step below is checked against Gmail and Google Calendar's own help pages, because the calendar icon in Gmail has moved and changed shape more than once.
Before you start#
A few things decide which of the three methods below will actually work for you.
- Sign in to the Gmail account you're sending from — the calendar tools use your primary Google Calendar, not any account you're forwarding on behalf of.
- Offer times you're free only works for one-to-one meetings. Add a second recipient and Gmail expects you to use Create an event instead.
- The Calendar icon in compose is a Gmail-for-web feature. The Gmail mobile app doesn't show the same insert options — there's a workaround further down.
- If you need a downloadable .ics file rather than a live Gmail card, that step happens in Google Calendar itself, not in the compose window. Gmail doesn't attach raw calendar files directly.
- Have the recipient's email address ready either way — Gmail pre-fills invitees from your To: line, but Calendar guest status is what actually triggers an invitation.
Propose meeting times instead of picking one#
Use this when you haven't settled on a time and don't want five separate emails to get there. Google calls the feature Offer times you're free, and it turns your open calendar into a set of clickable buttons.
- 1
Open the calendar icon
Start a new message, or open a reply. In the compose toolbar, click the calendar-shaped icon. If it isn't visible, click More options first — some browser widths hide it behind the overflow menu.
- 2
Choose Offer times you're free
Pick this option rather than Create an event. It opens Google Calendar's scheduling panel directly over your primary calendar, showing your existing commitments.
- 3
Set a duration and pick slots
Choose how long the meeting should run, then click open blocks across as many days as you want to offer. Spread options across a full week if nothing lines up sooner.
- 4
Add a title and confirm
Click Next, name the meeting, and add a video-call link or location if you need one. Click Add to email to drop the proposed times into your draft.
- 5
Send it
The recipient gets clickable time options inside the email itself. Whichever slot they pick creates the event and adds it to both calendars — no separate confirmation round-trip needed.
The fork happens the moment you decide what you already know: a time, a fixed event, or nothing but the shape of your calendar. Everything from here is just carrying out that choice.

Attach a live event to the email#
Use Create an event when the date and time are already agreed and you just want the invite to travel with the message, with RSVP built in.
- 1
Open the calendar icon and choose Create an event
Same icon as the proposed-times flow, different option. Gmail opens an event-creation panel on the right side of the compose window.
- 2
Check the pre-filled details
Gmail carries your subject line into the event title and adds your recipients as invitees automatically. Adjust the date, time, and location before saving anything.
- 3
Save the event
Saving inserts an event summary card into the body of your draft. The recipient sees the date, time, and a Yes, No, or Maybe response, all without leaving the email.
- 4
Or build it from a message you received
To create an event from someone else's email instead of a new draft, open the message, click More above it, and choose Create event. Google Calendar opens with the sender and subject already filled in — confirm the details and save.
Get an actual .ics file to the recipient#
This is the one search intent Gmail's compose window genuinely can't satisfy on its own. There is no button that attaches a raw .ics file to a message you're writing — Gmail's calendar tools insert live cards, not files, and neither Gmail nor Calendar's own help pages describe one.
- 1
Add the recipient as a Calendar guest instead
Open or create the event in Google Calendar, not Gmail, and add their email address to the guest list. Calendar sends its own invitation email, and that message carries an invite.ics attachment automatically.
- 2
Or forward one you already received
If someone sent you an event with a .ics file attached and you need to relay it, forward that original message. The attachment travels with it exactly as it arrived.
- 3
Skip trying to detach and reattach it
There's no reliable way to pull an .ics out of one Gmail message and attach it to a fresh one through the interface — treat forwarding as the method, not a workaround.
Share a bookable link instead#
This is the right tool when you'd rather not schedule anything yourself. Google Calendar's booking pages — officially Appointment schedules — turn your open hours into a link someone else can book directly.
- 1
Create a booking page in Google Calendar
In Google Calendar, set up an Appointment schedule and mark the hours you're actually free. This lives separately from any single event on your calendar.
- 2
Insert it from Gmail compose
Back in a draft, click the same calendar icon and choose your booking page from the list instead of creating a new event. Gmail drops the link straight into the message.
- 3
Send it and let them pick
The recipient clicks through to your page and books an open slot themselves. You get a confirmation once they do — no back-and-forth required on your end.
One Google limit worth knowing
Platform differences#
The same request behaves differently depending on where you're sending from and who's on the other end. This is the version worth checking before you promise someone a working RSVP button.
| What you're doing | Gmail (web) | Gmail (Android/iOS app) | Recipient outside Gmail |
|---|---|---|---|
| Propose meeting times | Calendar icon → Offer times you're free, one-to-one only | Not available in compose — open the Calendar app instead | Gets clickable time options by email; no Google account needed to pick one |
| Attach a live event | Calendar icon → Create an event, or More → Create event on a received message | Can view and RSVP to an existing invite, but can't insert one from compose | Sees event details as text; RSVP buttons may not render outside Gmail |
| Send a real .ics file | No compose button — add the person as a Calendar guest instead | Same workaround, done from the Calendar app | Opens natively in Outlook, Apple Mail, or any app that reads iCalendar files |
| Share a booking link | Calendar icon → your saved booking page | Copy the link from the Calendar app and paste it in manually | Just a URL — works in any inbox on any device |
What to do when it doesn't work#
Most failures here trace back to one of a handful of causes, and none of them mean you did something wrong with the email itself.
- No calendar icon in the compose toolbar: you're likely in Basic HTML view, on an older browser, or on a work account where an admin turned off Calendar's smart features. Switch to Standard view and check with your admin if it's a managed account.
- Offer times you're free is missing or grayed out: check your recipient count first — the feature only works for one-to-one meetings. Drop it to a single recipient or switch to Create an event.
- The recipient says they can't RSVP: some mail clients and corporate security gateways strip interactive HTML entirely. Fall back to a plain invite by adding them as a Calendar guest, which always sends a working .ics.
- The event shows on your calendar but the other person got nothing: you created the event without adding them as a guest. Being on the email thread isn't the same as being invited.
- An .ics attachment won't open on their end: that's usually a setting on their device, not a problem with your email — a downloaded .ics needs a calendar app registered to handle the file type.
Recipients aren't the same as guests
A faster way#
Every step above is a decision you make fresh each time a scheduling email lands: propose, attach, or link. AI Emaily's agent reads the thread, recognizes a scheduling request, and drafts the calendar action that fits it — proposed times pulled from your real availability, not a guess, or the booking link you already use.
In Copilot mode nothing sends until you approve it; gated Autopilot rules can let routine cases go through on their own, with a full undo and audit trail behind every action. It works the same way across Gmail, Outlook, and IMAP accounts in one inbox. See how it handles scheduling on the AI email assistant page. We build AI Emaily.
Frequently asked
See it in AI Emaily
Keep reading
Sources

Written by
Nafiul HasanNafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.