public async Task CreateToDoItem(string title, string priority, string status, string percentComplete, string startDate, string endDate, string notes) { string accessToken = await GetGraphAccessTokenAsync(); string fileId = await GetFileId(accessToken); int id = new Random().Next(1, 1000); var priorityString = ""; switch (priority) { case "1": priorityString = "High"; break; case "2": priorityString = "Normal"; break; case "3": priorityString = "Low"; break; } var statusString = ""; switch (status) { case "1": statusString = "Not started"; break; case "2": statusString = "In-progress"; break; case "3": statusString = "Completed"; break; } using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://graph.microsoft.com/testexcel/me/drive/items/" + fileId + "/workbook/worksheets('ToDoList')/"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); using (var request = new HttpRequestMessage(HttpMethod.Post, client.BaseAddress)) { object[,] valuesArray = new object[1, 8] { { id, title, percentComplete.ToString(), priorityString, statusString, startDate, endDate, notes } }; RequestBodyHelper requestBodyHelper = new RequestBodyHelper(); requestBodyHelper.index = null; requestBodyHelper.values = valuesArray; string postPayload = JsonConvert.SerializeObject(requestBodyHelper); request.Content = new StringContent(postPayload, System.Text.Encoding.UTF8); using (HttpResponseMessage response = await client.PostAsync("tables('ToDoList')/rows", request.Content)) { if (response.IsSuccessStatusCode) { string resultString = await response.Content.ReadAsStringAsync(); dynamic x = JsonConvert.DeserializeObject(resultString); } } } } }