# Recurrence end\_date\_time timezone

**URL:** <https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581>\
**Category:** API and Webhooks\
**Created:** [August 7, 2020, 10:28pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581 "2020-08-07T22:28:15Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![csotelo](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/csotelo/32/10713_2.png) [@csotelo](https://devforum.zoom.us/u/csotelo)\
**Post date:** [August 7, 2020, 10:28pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/1 "2020-08-07T22:28:15Z")

</div>

**Description**  
I have the following code to create recurrence meetings from 14/08/2020 (Lima time) to 28/08/2020 each 7 days… so I hope 3 created meetings (14/08/2020, 21/08/2020 and 28/08/2020) :

> $response = $this-\>client-\>request(‘POST’, ‘/v2/users/me/meetings’, [  
> “headers” =\> [  
> “Authorization” =\> “Bearer $accessToken”  
> ],  
> ‘json’ =\> [  
> “topic” =\> “Borrar Recurrencia”,  
> “type” =\> 8,  
> “start\_time” =\> ‘2020-08-14T21:30:00’,  
> “timezone” =\> “America/Lima”,  
> “duration” =\> 30,  
> “password” =\> substr(base64\_encode(date(‘HisYmd’)), 0, 8),  
> “recurrence” =\> [  
> “type” =\> 1,  
> “repeat\_interval” =\> 7,  
> “end\_date\_time” =\> ‘2020-08-28T23:59:59’,  
> ]  
> ],  
> ]);
> 
> ```
> $data = json_decode($response->getBody(), true);
> return $data;
> 
> ```

But this only create **one** meeting: 14/08/2020

**Error**  
And the response is this:

> Array ( [uuid] =\> … [id] =\> \*\*\*\*\*\*\*\*\*\*\* [host\_id] =\> … [topic] =\> Borrar Recurrencia [type] =\> 8 [status] =\> waiting [timezone] =\> America/Lima [created\_at] =\> 2020-08-07T22:06:10Z [start\_url] =\> … [join\_url] =\> h… [password] =\> … [h323\_password] =\> … [pstn\_password] =\> … [encrypted\_password] =\> … [occurrences] =\> Array ( [0] =\> Array ( [occurrence\_id] =\> 1597458600000 [start\_time] =\> 2020-08-15T02:30:00Z [duration] =\> 30 [status] =\> available ) ) [settings] =\> Array ( [host\_video] =\> [participant\_video] =\> [cn\_meeting] =\> [in\_meeting] =\> [join\_before\_host] =\> [mute\_upon\_entry] =\> 1 [watermark] =\> [use\_pmi] =\> [approval\_type] =\> 2 [audio] =\> both [auto\_recording] =\> none [enforce\_login] =\> [enforce\_login\_domains] =\> [alternative\_hosts] =\> [close\_registration] =\> [registrants\_confirmation\_email] =\> 1 [waiting\_room] =\> 1 [request\_permission\_to\_unmute\_participants] =\> [global\_dial\_in\_countries] =\> Array ( [0] =\> US ) [global\_dial\_in\_numbers] =\> Array ( [0] =\> Array ( [country\_name] =\> US [number] =\> +1 9294362866 [type] =\> toll [country] =\> US ) [1] =\> Array ( [country\_name] =\> US [number] =\> +1 2532158782 [type] =\> toll [country] =\> US ) [2] =\> Array ( [country\_name] =\> US [number] =\> +1 3017158592 [type] =\> toll [country] =\> US ) [3] =\> Array ( [country\_name] =\> US [number] =\> +1 3126266799 [type] =\> toll [country] =\> US ) [4] =\> Array ( [country\_name] =\> US [number] =\> +1 3462487799 [type] =\> toll [country] =\> US ) [5] =\> Array ( [country\_name] =\> US [number] =\> +1 6699006833 [type] =\> toll [country] =\> US ) ) [registrants\_email\_notification] =\> 1 [meeting\_authentication] =\> ) [recurrence] =\> Array ( [type] =\> 1 [repeat\_interval] =\> 7 [end\_date\_time] =\> 2020-08-15T03:06:00Z ) )

**Which App Type (OAuth / Chatbot / JWT / Webhook)?**  
OAuth

**How To Reproduce (If applicable)**  
Steps to reproduce the behavior:  
2. See error

**Screenshots (If applicable)**

 ![Screen Shot 2020-08-07 at 5.24.11 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/7/7443b35daf1eb2d596ada72e90741999910e193c.png)

**Additional context**  
I’ve tested the following timezone:

> ‘json’ =\> [  
> “topic” =\> “Borrar Recurrencia”,  
> “type” =\> 8,  
> “start\_time” =\> ‘2020-08-14T21:30:00Z’,  
> “timezone” =\> “America/Lima”,  
> “duration” =\> 30,  
> “password” =\> substr(base64\_encode(date(‘HisYmd’)), 0, 8),  
> “recurrence” =\> [  
> “type” =\> 1,  
> “repeat\_interval” =\> 7,  
> “end\_date\_time” =\> ‘2020-08-28T23:59:59Z’,  
> ]  
> ],

With the “Z” at the final, it generates the 3 meetings but with 4:30PM, no 9:30PM … why?

Regards

\*This post has been edited to remove any meeting / webinar IDs

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 10, 2020, 7:14am UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/2 "2020-08-10T07:14:23Z")

</div>

Hey @csotelo,

Can you please share the response body in full JSON format so I can debug?

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![csotelo](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/csotelo/32/10713_2.png) [@csotelo](https://devforum.zoom.us/u/csotelo)\
**Post date:** [August 10, 2020, 1:50pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/3 "2020-08-10T13:50:40Z")

</div>

Hi Tommy,

With these parameters:

```
$response = $this->client->request('POST', '/v2/users/me/meetings', [
                "headers" => [
                    "Authorization" => "Bearer $accessToken"
                ],
                'json' => [
                    "topic" => $input['topic'],
                    "type" => 8,
                    "start_time" => '2020-08-14T21:30:00',
					"timezone" => "America/Lima",
                    "duration" => $input['duration'], // 30 mins
                    "password" => substr(base64_encode(date('HisYmd')), 0, 8),
					"recurrence" => [
						"type" => 1,
						"repeat_interval" => 7,
						"end_date_time" => '2020-08-28T23:59:59',
                    ]
                ],
            ]);

```

This is the JSON response:

> {“uuid”:“JtZqCnTASG6Lwr/ukNkf0Q==”,“id”:\*\*\*\*\*\*\*\*\*\*\*,“host\_id”:“Bp4nGKo7SqWwCxnBhGvHrw”,“topic”:“Borrar Recurrencia”,“type”:8,“status”:“waiting”,“timezone”:“America/Lima”,“created\_at”:“2020-08-10T13:45:29Z”,“start\_url”:“https://sansilvestre-edu-pe.zoom.us/s/99990011850?zak=eyJ6bV9za20iOiJ6bV9vMm0iLCJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJjbGllbnQiLCJ1aWQiOiJCcDRuR0tvN1NxV3dDeG5CaEd2SHJ3IiwiaXNzIjoid2ViIiwic3R5IjoxLCJ3Y2QiOiJhdzEiLCJjbHQiOjAsInN0ayI6ImpsOXVRZG5USmhXLWt1bDFsb2lDbHhPNHlFR3FsbWhwcUJ5eVl5LUpVWFkuRWdJQUFBRnoySjV6cGdBQUhDQWdNbVZUUW1obFowSXdhMUJMUW1rMFNFVnVRbWRqVFhwVWJtdzBZV0ZhVWtzQURETkRRa0YxYjJsWlV6TnpQUU5oZHpFIiwiZXhwIjoxNTk3MDc0MzI5LCJpYXQiOjE1OTcwNjcxMjksImFpZCI6IllOQTRsLWp5U0VXLXVaQ3hjTzAzN1EiLCJjaWQiOiIifQ.9IYscT21g2UHpTapJBI0jCxRY7J9FqKgxEWii\_fqVMQ”,“join\_url”:“https://sansilvestre-edu-pe.zoom.us/j/99990011850?pwd=b0hQNGFmd0dyT1pFSTZDZ0lIWEVCZz09”,“password”:“MDg0NTI5”,“h323\_password”:“17266990”,“pstn\_password”:“17266990”,“encrypted\_password”:“b0hQNGFmd0dyT1pFSTZDZ0lIWEVCZz09”,“occurrences”:[{“occurrence\_id”:“1597458600000”,“start\_time”:“2020-08-15T02:30:00Z”,“duration”:30,“status”:“available”}],“settings”:{“host\_video”:false,“participant\_video”:false,“cn\_meeting”:false,“in\_meeting”:false,“join\_before\_host”:false,“mute\_upon\_entry”:true,“watermark”:false,“use\_pmi”:false,“approval\_type”:2,“audio”:“both”,“auto\_recording”:“none”,“enforce\_login”:false,“enforce\_login\_domains”:“”,“alternative\_hosts”:“”,“close\_registration”:false,“registrants\_confirmation\_email”:true,“waiting\_room”:true,“request\_permission\_to\_unmute\_participants”:false,“global\_dial\_in\_countries”:[“US”],“global\_dial\_in\_numbers”:[{“country\_name”:“US”,“number”:“+1 2532158782”,“type”:“toll”,“country”:“US”},{“country\_name”:“US”,“number”:“+1 3017158592”,“type”:“toll”,“country”:“US”},{“country\_name”:“US”,“number”:“+1 3126266799”,“type”:“toll”,“country”:“US”},{“country\_name”:“US”,“number”:“+1 3462487799”,“type”:“toll”,“country”:“US”},{“country\_name”:“US”,“number”:“+1 6699006833”,“type”:“toll”,“country”:“US”},{“country\_name”:“US”,“number”:“+1 9294362866”,“type”:“toll”,“country”:“US”}],“registrants\_email\_notification”:true,“meeting\_authentication”:false},“recurrence”:{“type”:1,“repeat\_interval”:7,“end\_date\_time”:“2020-08-17T18:45:00Z”}}

\*This post has been edited to remove any meeting / webinar IDs

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 10, 2020, 10:08pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/4 "2020-08-10T22:08:38Z")

</div>

Hey @csotelo,

I just tested without setting the timezone and with the `Z` at the end of the start\_time and end\_date\_time and it worked. You can convert GMT time to Peru time here: [https://www.google.com/search?q=gmt+time+to+peru](https://www.google.com/search?q=gmt+time+to+peru)

Let me know if this creates 3 occurrences on the dates you want:

```json
{
  "topic":"Recurring Test",
  "type":8,
  "start_time":"2020-08-14T21:30:00Z",
  "duration":30,
  "recurrence": {
    "type": 1,
    "repeat_interval": 7,
    "end_date_time": "2020-08-28T23:59:59Z"
  }
}

```

There might be a bug with the setting the timezone, I will ask our engineering team to look into this.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![csotelo](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/csotelo/32/10713_2.png) [@csotelo](https://devforum.zoom.us/u/csotelo)\
**Post date:** [August 12, 2020, 2:26am UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/5 "2020-08-12T02:26:36Z")

</div>

Thank you, works converting America/Lima time to GMT explicitly.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 12, 2020, 6:30am UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/6 "2020-08-12T06:30:18Z")

</div>

You are welcome! 🙂

Thanks for building with Zoom!

-Tommy

---

<div class="post-metadata">

**Author:** ![AVJeff](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@AVJeff](https://devforum.zoom.us/u/AVJeff)\
**Post date:** [August 28, 2020, 6:30pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/7 "2020-08-28T18:30:28Z")

</div>

> [@tommy](#):
>
> There might be a bug with the setting the timezone, I will ask our engineering team to look into this.

Hi @tommy,  
I am running into this same issue. If we create a recurring meeting in the America/New York timezone that starts at 20:00 or later, the last occurrence is not created on the day of the end\_date\_time field. Did you find anything with the engineering team on this?  
Thank you,  
Jeff.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 2, 2020, 5:50pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/8 "2020-09-02T17:50:14Z")

</div>

Hey @AVJeff,

Can you please share your request body JSON and your expected occurrence date output so I can debug?

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![AVJeff](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@AVJeff](https://devforum.zoom.us/u/AVJeff)\
**Post date:** [September 3, 2020, 12:21pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/9 "2020-09-03T12:21:46Z")

</div>

Hi @tommy,  
If you send the following JSON, you will find that it creates a recurring meeting with 12 occurrences, the last one on December 2. However, if you then edit that meeting in the normal Zoom web site, don’t change anything, and then simply hit Save, it will change to the desired 13 occurrences with the last one on December 9. There is an example meeting ID on my account if you can see that.

> {“topic”:“ZOOM-5001H-WEB Wed Lectures”,“type”:8,“start\_time”:“2020-09-10T20:00:00”,“duration”:50,“timezone”:“America/New\_York”,“recurrence”:{“type”:2,“repeat\_interval”:1,“weekly\_days”:“4”,“end\_date\_time”:“2020-12-09T23:59:59Z”},“settings”:{“host\_video”:true,“participant\_video”:false,“join\_before\_host”:false,“mute\_upon\_entry”:true,“auto\_recording”:“cloud”}}

I’m wondering, since the end\_date\_time field has to be in UTC according to the [documentation](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate), how do I create a recurring meeting with the API in Eastern Time that creates all the appropriate occurrences and doesn’t require me to go into the web site and edit/save that meeting to get the last occurrence to appear?  
Thanks for looking into this for us!  
Take care,  
Jeff.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [September 8, 2020, 5:50pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/10 "2020-09-08T17:50:07Z")

</div>

Hi @AVJeff,

Thanks for providing that JSON sample and clarifying the steps to reproduce. I’ve gone ahead and shared this with our Engineering team so that they can take a closer look. I’ll be in touch shortly! (ZOOM-194477)

Best,  
Will

---

<div class="post-metadata">

**Author:** ![AVJeff](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@AVJeff](https://devforum.zoom.us/u/AVJeff)\
**Post date:** [September 8, 2020, 5:57pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/11 "2020-09-08T17:57:45Z")

</div>

Thank you, @will.zoom!

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [September 10, 2020, 5:34pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/12 "2020-09-10T17:34:02Z")

</div>

@AVJeff No problem—I hope to have an update for you shortly!

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [September 17, 2020, 1:29pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/13 "2020-09-17T13:29:28Z")

</div>

Hi @AVJeff,

I heard back from our team on this, and they were able to clarify that the API uses UTC time, while the web portal converts this to local time client side, which is why you’re seeing this slight difference.

For example, the ‘end\_date\_time’ gets converted to the local time (example for America/New\_York), (i.e., ‘2020-12-09T23:59:59Z’ -\> ‘2020-12-09T18:59:59’, so it wouldn’t include December 9th in this example).

I hope this helps to clarify!

Best,  
Will

---

<div class="post-metadata">

**Author:** ![AVJeff](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@AVJeff](https://devforum.zoom.us/u/AVJeff)\
**Post date:** [September 17, 2020, 3:37pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/14 "2020-09-17T15:37:50Z")

</div>

Thanks, @will.zoom. That does clarify the issue. It sounds like the only fix would be to roll the UTC end\_date\_time to the next day if the start time is after 17:00.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [September 18, 2020, 5:57pm UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/15 "2020-09-18T17:57:41Z")

</div>

Hey @AVJeff,

Glad we were able to clarify—your suggestion sounds like a reasonable solution to me, for your use case!

Best,  
Will

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [October 19, 2020, 3:57am UTC](https://devforum.zoom.us/t/recurrence-end-date-time-timezone/26581/16 "2020-10-19T03:57:42Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
