以下のコードを貼り付けました。コードの意図を説明すると、会議室をブロックして使用予約できないようにすることです。これは、ブロック アウトされ、1 週間前に予約する必要がある小さな「ハドル ルーム」です。
とにかく、ここに私が以下のコードで遭遇している問題があります。1月1日からコードを実行すると、コードが実行され、3月の途中でイベントの作成が停止します。これが月の初めに正確に発生した場合、その時点から簡単に開始できるため、問題にはなりません。もう一度、または月のスペルが間違っていると仮定します。しかし、それは3月18日まで予約を作成します. また、これを再起動して、4 月の初めからブロックされた予約を作成するように設定したところ、12 月 8 日になりました。
私の最初の推測では、31 日を含まない月を処理するようにコードを再フォーマットする必要があると思いますが、存在しない日は単にエラーをスローし、欠落が続くと想定し、短い月である 2 月を通過しました。 .
考えただけでも、Google Scripting の経験が豊富な人なら、私が行っていることのアイデアや欠陥に気付くかもしれません。助けてくれてありがとう
function blockReservations(){
var roomcalendar = CalendarApp.getCalendarById('company.com_12458546525839392d898932@resource.calendar.google.com');
//for(var z=2014;z<=2020;z++){
//var year = z;
var year = '2014'; //This Line May be used in place of the above for loop to specify a specific year
for(var x=4;x<=12;x++)
{
if(x==1) var month = 'January';
else if(x==2) var month = 'February';
else if(x==3) var month = 'March';
else if(x==4) var month = 'April';
else if(x==5) var month = 'May';
else if(x==6) var month = 'June';
else if(x==7) var month = 'July';
else if(x==8) var month = 'August';
else if(x==9) var month = 'September';
else if(x==10) var month = 'October';
else if(x==11) var month = 'November';
else if(x==12) var month = 'December';
else month = 'null';
//var month = 'July'; //This Line May be used in place of the above for loop to specify a specific year
for(var y=1;y<=31;y++)
{
var date = y;
var startDateString = month + ' ' + date + ', ' + year +' 00:00:00';
var endDateString = month + ' ' + date + ', ' + year +' 24:00:00';
var event = roomcalendar.createEvent('Time Blocked', new Date(startDateString), new Date(endDateString));
}
}
// }
}