1

I'm fairly new to Google Apps Script and I may be missing something, but I'm trying to make a very basic script for testing purposes and literally everything I write runs twice. Absolutely no idea why. Can someone point me in the right direction for some reading I can do on this?

Right now, I'm just working with the Calendar API and getting the names of my calendars, but they always print twice. Here is the code:

function myFunction() {
  let calendars = CalendarApp.getAllCalendars();
  let haveCalendar = false;
  for(i=0;i<calendars.length;i++){
    if (calendars[i].getTitle() == "Holidays"){
      Logger.log(calendars[i].getTitle());
      haveCalendar = true;
    } else if (haveCalendar == true || calendars[i].getTitle() != "Holidays"){
      Logger.log("already have calendar");
    }
  }
}

myFunction();

The current output for this is:

already have calendar
already have calendar
Holidays
already have calendar

already have calendar
already have calendar
Holidays
already have calendar

I'm completely baffled. Any help would be greatly appreciated. Thanks in advance!

1

2 Answers 2

3

I don't recall much from Google app but i think it's because you called the function twice

remove the last line

myFunction();

and I think it should be fine. Cause their example from google as well don't call the function again

Sign up to request clarification or add additional context in comments.

3 Comments

I've never felt so dumb in my life. Thank you!
Does this mean that the entry point must be names myFunction? How does google know where to start running the script?
Thanks for pointing this out, Kelvin! @MrChadMWood The entry point will be whatever function's name you choose in the dropdown when running the function manually or whatever function you choose in the trigger.
2

Call from run button

function donothing(a = "one") {
  Logger.log(a);
}

donothing("two");

Execution log
9:06:36 PM  Notice  Execution started
9:06:36 PM  Info    two
9:06:36 PM  Info    one
9:06:37 PM  Notice  Execution completed

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.