All-day and multi-day Google Calendar™ events from Google Sheets™
For holidays, school breaks and travel dates, use dates without times. In EventFill, End date is the last day you want included. Leave it empty for a single-day event.
Set up the rows in EventFill
Install EventFill and open Extensions > EventFill > Open EventFill. On a blank sheet, Create a new event sheet makes a separate tab with headers and date/time formats ready. It creates no Calendar events. Enter your own rows below the headers:
| Title | Start date | Start time | End date | End time | Days included |
|---|---|---|---|---|---|
| School closed | 2026-10-30 | October 30 only | |||
| School break | 2026-10-30 | 2026-11-01 | October 30, October 31 and November 1 |
Use real date-only cells, or ISO text such as 2026-10-30. Keep both time columns empty. If a
date cell also contains a time, simply hiding that time with a date display format does not
remove it; replace the value with a date only.
- Click Use the current sheet after entering the rows.
- Check the Title, Start date and End date mappings; leave the time mappings on their empty columns, or choose None.
- Pick the destination calendar and click Check rows. Fix any reported errors before adding. Checking creates no events and uses none of your free allowance.
- Click Add to Calendar. Each row becomes one event; the school break is one continuous three-day event, including the weekend, rather than three separate entries.
One day needs no end date, and the same start/end date also means one day. An end date before
the start is an error. Do not enter 23:59 to mean all-day: a date with times is a timed event.
EventFill is free for 50 events a day, counting sheet-to-calendar and calendar-to-sheet work. New Pro purchases remove that cap for $9 once/account, with no subscription or renewal; Google service limits still apply. Existing subscriptions/trials keep their billing terms. Once rows have linked Calendar event cells, edit those rows and rerun to the same calendar to update their events. Keep the links with their rows when sorting. An unlinked row makes a new event; copying a linked row also copies its event ID, so it still targets the original event.
Why another tool may show the following day as the end
Google’s Calendar API stores an event’s end as exclusive. For the school break above, the stored dates are October 30 to November 2: it stops before November 2 begins, so November 1 is included.
EventFill performs that conversion for all-day rows. Enter November 1 in its End date column, not November 2. Its Calendar-to-Sheet import converts back to the last included date too. This rule is for EventFill’s sheet columns; another import format may use different headers or rules.
A free CSV option for a one-off list
Google Calendar also imports CSV files without an add-on. For a list of single-day dates, make a separate sheet using Google’s English headers:
Subject,Start Date,All Day Event
School closed,10/30/2026,True
Download that tab with File > Download > Comma Separated Values (.csv). On a computer, open Google Calendar’s Settings > Import & export, select the file and destination calendar, then click Import. Google’s CSV import instructions cover the date format, optional end dates and other fields. These headers differ from EventFill’s; do not export its starter tab unchanged and expect CSV import to map it.
CSV is useful for a fixed list. Later sheet edits do not update those imported events. For a schedule you maintain in the sheet, EventFill keeps each row linked to its event.
For timed schedules, see creating Calendar events from a Sheet.