How to import a CSV file to Google Calendar

I had a lot of trouble with this recently, so hope this helps. Google is pretty strict with the CSV files it imports.

First off open Excel. On the top line of your file, you want to have the following headers:

Subject, Start Date, Start Time, End Date, End Time, All Day Event, Reminder On/Off, Reminder Date, Reminder Time, Meeting Organizer, Description, Location, Private

Every event (every row in Excel) needs to have a Subject, Start Date, and Start Time. The other headers are optional and you can mix and match them as much as you please. Here is a complete sample I uploaded today.

Subject, Start Date, Start Time, End Date, End Time, Private, All Day Event, Location
Ramsay Shield, 7/26/2008, 7:00 PM,, 9:00 PM, FALSE,, TBC
Training, 7/27/2008, 12:00 PM,, TRUE, FALSE,

Highlight every time under Start Time, End Time, and Reminder Time, click “Format Cells,” then “Time,” then “1:30 PM.” Highlight every date under Start Date, End Date, Reminder Date, click “Format Cells,” then “Date,” then “3/14/2001.”
You need to do both of those things for Google to recognize your file.

Private, All Day Event, Reminder On/Off – type True or False in the relevant space. If you leave them blank Google Calendar will use the default settings for these events (for privacy, it will make the event private or public depending on whether the calendar is private or public). If there isn’t any info after Start Date & Start Time, Google assumes the event is one hour long. Make sure also that the only data on the spreadsheet is events – otherwise Google will return an error.

Once you’re done click File –> Save As, then click down at the bottom where it says “Microsoft Office Excel Notebook” for file type, and change it to CSV (Comma Separated Value) format. Then you’re ready to upload to Google!

On a separate note, if you upload the same CSV file twice, Google will create duplicates of your events rather than replace the first set. There’s no “Remove duplicates” button either – you have to do it manually, or erase the whole calendar and start again.


90 thoughts on “How to import a CSV file to Google Calendar

  1. Sandy Trevor

    Thanks — I struggled with this a long time until I found your helpful directions, and got my Outlook 2000 calendar uploaded to Google.

  2. Steve

    Thanks for this – I have been trying this for months. Wanted to publish some fixtures & found it much easier to create in Excel.

  3. mmcgown

    Nice work, Kevin!

    It seems like such a simple thing, but apparently many people can’t quite get this to work. You’ve explained it well. Thanks!

  4. Nikki Goodson

    A question for you:
    Have you had any success putting any info in the “Meeting Organizer” field? I was hoping that I could actually create an event with a different organizer than myself – so that I could click easily through to be able to email them and such. But I can’t figure out the correct format to get it to actually import any info from that field.

  5. Dave Shmeallor

    your advice is a piece of crap
    it takes way too f***ing long to do
    i was looking for a quick way to do this s**t
    your way sucks elephant testicles
    if you really want to give advice make sure it is good before you go and waste people’s precious time!!
    this is crap i tell you, crap!
    thank you for reading!!!

    1. George

      You’re lame Dave. I knocked out an 84 item list in less than half an hour with these very helpful instructions. They were very simple instructions Thank-you Kevin for a very helpful post.

    2. shaetm

      It’s pretty obvious Dave doesn’t understand automation in Excel (and isn’t willing to learn it which is a shame for him)…
      This article was SO helpful, thank you for taking the time to create it – like many others here I have been trying for ages to do this, got it first time after reading your instructions!

  6. Eric Veltman

    Hello Kevin,

    Thanks for the helpful instruction! I first tried importing a calendar CSV in more or less random format. I expected a ‘mapping wizard’ in Google Calendar, but apparently something like that is not yet available there, so when I imported the incorrectly formatted file, it just said ‘Google Calender is unavailable’ (or something like that).

    After applying your instructions (a little different in OpenOffice), the import went fine. Your blog post saved me a lot of time.

    Best regards,


  7. Floor

    Great…! And thanks!
    But does anyone know if it is possible to delete current items in the calendar (all), and upload automatically a new versions. The idea is to publish a public agenda with available training class room seats.

  8. Lance

    Thanks so much for this article Kevin. Like the others, I struggled with this import initially, wondering why Google Calendar was failing to take the values from my CSV file. After following your advice, the import worked perfectly. Nice work.

  9. walter

    Your Instructions worked perfectly, I just imported a 4000 event list that i was able to take out of sharepoint with your directions.

  10. Valerie

    Thank you, thank you!! These directions were spot on. I had been working on this for the past week with no luck & no other website tutorial had the answers. Thank you for posting this information.

  11. E. Whalen

    once all events in a CSV file have successfully been imported into google calendar is there a “one-click” way to clear those events from your google calendar without clearing the entire thing?

    I.E. is there any “undo” or am I going to have to go through and delete EVERY event contained in the CSV file i imported.

    background info:
    I am trying to export (sync) my birthday calendar from Facebook to my google calendar. Of course rather than doing this the simple way of syncing the two by URL (an option in Google calendar) – I downloaded some stupid Facebook “Birthday calendar App.” By way of this app i exported my birthday calendar from facebook to a CSV file. I then imported the CSV file into Google Calendar. Now EVERY birthday event in Google Calendar has a pop-up reminder set. I just dont want 15 birthday reminders popping up on my Blackberry every morning (being as how I sync google calendar to my BB calendar).


  12. Rohan

    dude, thanks a bunch… even google’s own help is useless on this front. and the error you get when the file is formatted wrong is completely unrelated.

  13. Sanja

    What about repeating events, i tried something like this (wild guess) but this doesn’t work,of course!
    Subject,Start Date,Start Time,End Time,Repeats,Ends
    test test,01/09/09,06:17:00 AM,06:32:00 AM,Yearly,Never

    I can’t beleive google folks are not able to publish full list of supported fields!

    1. Ryan

      Same Question. Once uploaded the events will run all day until end day. I am looking to add events that repeat once a week. Even after I upload the file then try to make the changes in the calender it doesn’t take. My calender becomes useless unless I can repeat them weekly instead of a constant event. Any thoughts anyone?

  14. stevehu

    Thank you for sharing the information. It is quite helpful.

    Since I need to send event reminders to other guests by emails, I am wondering if we could add different guests’ emails in the CSV file to import to Google Calendar. For the CSV headers, there are Reminder On/Off, Reminder Date, and Reminder Time, but I don’t see the header for entering emails. Will it be possible to import multiple guests’ emails?

    Thank you.

  15. Jen

    Hi! Does anyone know how to “not” put a start time in? I have a lot of items to add and am using it more as a “task” list. I would rather not have the “8 AM” included. Any ideas on how to get rid of that but still use the file upload?

  16. JOhn Huie

    Hello, how do I enter an all day event? THanks for this site, it’s great! I just need help w/ an all day thing, thanks!

  17. J

    Thanks a lot. Unsuccessfully tried so many times to upload a CSV to my google calendar before I came across this post.

  18. josh

    Every time o try to upload the file I get an error . failed to import events empty uploaded file . I followed all the formating guide linesi.m prettygood with Excel and would love to be able to importmy work schedule this way.

  19. Desmond

    Thanks Kevin! Your guide saves me a lot time trying to import my Sharepoint calendar into Google.

    Just a check, do you happen to know what is the field type/length of the “Description” in G Calendar?

    My Description field did not get imported.

  20. Pingback: Integrate airline schedule with google docs? - Airline Pilot Central Forums

  21. Jean Miele

    Thank you. Thank you. Thank you. Thank you. Thank you. Thank you so much! Incredibly frustrating that this is, indeed, the best solution I found in many hours of research and testing. You are a gentleman and a scholar for coming up with it – and sharing. Reformatting the dates and times made all the difference. Amazing that this solution works over YEARS, as attested to by the timespan of the comments.

  22. Guillermo

    Hi Fellows,
    I was doing the import of the calendar event and now is working fine, but the only I cann’t doit is the Repeat Option.
    See my example to make the Import:
    “Asunto””Fecha de comienzo””Comienzo””Fecha de finalización””Finalización””Todo el día””Reminder on/off””Reminder Date”
    “SidiaBB””7/2/2011″”09:00:00 a.m.””7/2/2011″”10:00:00 a.m.””Falso””Falso””7/2/2011”

    Do you have any idea if we can insert any field to fill the option Repeat in the above example?


  23. Edward

    Thank you! I got my calendar uploaded, but have a question. The times in the excel document were changed when uploaded. It looks like google recognized the times in my excel file as pacific time instead of Eastern. Any ideas???

  24. RoxAnn

    google calendar…..
    got my csv to import – yeah
    how can I change the height & width? when printing, it is cutting off the bottom of the ys, gs…anything that hange below the line. my html will not save, even after I click on save.

  25. MyName

    Thank you. Just formatting the time and date correctly made it work.
    BTW, I love the guy who hated your instructions because there was apparently too much reading for him. I wonder who does his work normally…

  26. Pingback: iSpeculate » Excel to gCal

  27. Gluepack

    Yes, thanks, but… here we are two years on and there is still no simple way of doing it. Surely a wiz at Google must have figured out by now how we can copy all (or a subset) of this year’s events to next year without having to export, change and import.

  28. Rosie

    Thanks so much! This was helpful…and after an hour of trying various other fixes, it did the trick in just a few minutes!

  29. Dexter

    Thanks, this was much much faster than last year where I manually entered my timetable into Google Calendar >_>
    Great instructions. For those from the UK though, format cells containing dates into the respective UK formats.

  30. Bryce Cramer

    I found one very easy workaround to this ridiculous problem.

    1. Create a new blank Calendar in MS Outlook (such as in a Personal Folder)
    2. Import your CSV file into Outlook.
    3. Export your Calendar to a new CSV


  31. Pingback: Brian Homrich

  32. convoyk

    This is great! But everything uploads except the reminder… I’ve tried setting Reminder On/Off to both TRUE and FALSE – no luck either way. Any suggestions?

  33. Santiago

    Excelent post! i need some help with text including commas. I´ve tried writing between quotation marks but Google Calendar doesn´t recognize it.

  34. Kerion

    Very good post, I only have one question. I am trying to put my work schedule through excel on to my gmail calendar and in turn it will sync with my iphone, however. I put all of the information in correctly but in my calendar it is not sperating the times, it just has my start time no end time. Is there a way to seprate the fields correclty or am I doing something wrong?

  35. Shane

    Thanks a million Kevin. Seriously great work. Has saved me so much time. Pretty amazing that this is still being used almost five years after you uploaded. You’ve really helped a lot of people with this.

  36. Attila

    Thanks Kevin, your instructions worked well with a usual calendar. But what about “appointment slots”? How can we import them from a CSV? What columns/fields do I need to use? Thanks

  37. Andra

    Hello i am kavin, its my first occasion to commenting anywhere, when i
    read this paragraph i thought i could also create comment due to
    this brilliant piece of writing.

  38. Norman Marshall

    I have a csv file of some 400 entries. If I cut this down to 9 entries it uploads fine. Anything more than 9 and it refuses the whole lot. Any ideas anyone?

  39. Anita Tigner

    Is the one hour long event time that is assumed by Google the reason my multiple day events are one day short. For instance when I have subject, start date, start time, end date, end time, all day event Anita request off, 12/21/2014,,12/25/2014,,True
    It is imported into Google with Start date of 12/21/2014 and end Date of 12/24/2014 (all day event). IT’S ONE DAY SHORT?? Any advise? I am using a Google form spreadsheet results converted to CVS file in order to import into Google Calendar.

    1. Sarah

      I am experiencing the same problem Anita is, where Google Calendar shortens my multiple-day events by one day. (e.g. 12/21/2014 – 12/25/2014 ends up being 12/21/2014 – 12/24/2014.)

      Any help would be appreciated!

  40. Andreas

    Thanks for the article. Works pretty fine except the thing with the reminders. And google does not help either :(
    There was only a workaround: preset your default reminder setting in the google calendar option than do the import and then set the default reminder back to what you usually want…
    Thank for any other experience to get the reminder setting within the csv sheet.

  41. John


    I have a created an excel where when I add a person and put a date then the event series gets created for various activities.
    Name DOJ Event 1 Event 2 Event 3 Event 4 Event 5 Event 6 Event 7 Event 8 Event 9
    John 06-Jul-15 8-Jul-2015 5-Aug-2015 9-Jul-2015 11-Jul-2015 10-Aug-2015 20-Aug-2015 9-Oct-2015 14-Oct-2015 2-Jan-2016
    Peter 06-Jul-15 8-Jul-2015 5-Aug-2015 9-Jul-2015 11-Jul-2015 10-Aug-2015 20-Aug-2015 9-Oct-2015 14-Oct-2015 2-Jan-2016
    Cathy 13-Jul-15 15-Jul-2015 12-Aug-2015 16-Jul-2015 18-Jul-2015 17-Aug-2015 27-Aug-2015 16-Oct-2015 21-Oct-2015 9-Jan-2016
    Ray 13-Jul-15 15-Jul-2015 12-Aug-2015 16-Jul-2015 18-Jul-2015 17-Aug-2015 27-Aug-2015 16-Oct-2015 21-Oct-2015 9-Jan-2016

    But i want to create these multiple dates within a row into multiple events in multiple rows, so that I can import it onto Google calendar.

    For e.g. if I want to convert all events of John into multiple rows for each event, then it has to be in below format so that I can import it into Google calendar,

    Subject Start Date End Date All day event Reminder on/off Reminder Date Reminder Time
    John:Event 1 8-Jul-15 8-Jul-15 TRUE TRUE 7-Jul-15 12:00:00 PM
    John:Event 2 5-Aug-15 5-Aug-15 TRUE TRUE 4-Aug-15 12:00:00 PM
    John:Event 3 9-Jul-15 9-Jul-15 TRUE TRUE 8-Jul-15 12:00:00 PM
    John:Event 4 11-Jul-15 11-Jul-15 TRUE TRUE 10-Jul-15 12:00:00 PM
    John:Event 5 10-Aug-15 10-Aug-15 TRUE TRUE 9-Aug-15 12:00:00 PM
    John:Event 6 20-Aug-15 20-Aug-15 TRUE TRUE 19-Aug-15 12:00:00 PM
    John:Event 7 9-Oct-15 9-Oct-15 TRUE TRUE 8-Oct-15 12:00:00 PM
    John:Event 8 14-Oct-15 14-Oct-15 TRUE TRUE 13-Oct-15 12:00:00 PM
    John:Event 9 2-Jan-16 2-Jan-16 TRUE TRUE 1-Jan-16 12:00:00 PM

    I cannot use transpose as I have some fields for creating the .ics format

    Can anyone help.

  42. Richard

    I have spend a whole evening struggling until I found that Excel saved my CSV files with a semicolon instead of a comma. No matter which CSV format I chose. I ended up editing the saved CSV file with Wordpad to replace every ; with ,
    Hurrah! Succes.
    Thanks Kevin

    1. Andreas

      Richard: There ist a way to tell Excel which character it should use between the values: Within your control panel / Clock, Language and Region / Region / Formats / additional settings => “List separator”.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s