nextcloud / nextcloud/calendar
Outlook invite with time one hour minus from events of timezone America/Sao_Paulo
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Steps to reproduce
- Set your server, mysql and user timezone to America/Sao_Paulo
- Create a not all day event, with 1h duration, by example and add a participant that can open invite on Outlook (or, export ics of event and open on Outlook)
- See the wrong start and end time read by Outlook besides ICS
Expected behavior
The start and end time of event must be equal on ics (mail body by example) to read by Outlook
Actual behaviour
The start and end time of event is different by 1 hour on ics (mail body by example) to read by Outlook
Calendar app version
3.3.1
CalDAV-clients used
No response
Browser
Firefox 103.0.2
Client operating system
Windows 11 Pro 22H2
Server operating system
Centos 7
Web server
Apache
Database engine version
MySQL
PHP engine version
PHP 8.0
Nextcloud version
24.0.1
Updated from an older installed version or fresh install
Updated from an older version
List of activated apps
Enabled:
- bruteforcesettings: 2.4.0
- calendar: 3.3.1
- cloud_federation_api: 1.7.0
- comments: 1.14.0
- dav: 1.22.0
- federatedfilesharing: 1.14.0
- files: 1.19.0
- files_pdfviewer: 2.5.0
- files_rightclick: 1.3.0
- files_sharing: 1.16.2
- files_trashbin: 1.14.0
- files_versions: 1.17.0
- lookup_server_connector: 1.12.0
- notifications: 2.12.0
- notify_push: 0.4.0
- oauth2: 1.12.0
- onlyoffice: 7.3.4
- privacy: 1.8.0
- provisioning_api: 1.14.0
- settings: 1.6.0
- sharebymail: 1.14.0
- spreed: 14.0.2
- tasks: 0.14.4
- text: 3.5.1
- theming: 1.15.0
- twofactor_backupcodes: 1.13.0
- user_ldap: 1.14.1
- user_status: 1.4.0
- viewer: 1.8.0
- workflowengine: 2.6.0
Disabled:
- accessibility: 1.7.0
- activity: 2.15.0
- admin_audit: 1.14.0
- circles: 22.1.1
- contacts: 4.1.1
- contactsinteraction: 1.2.0
- dashboard: 7.2.0
- encryption
- federation: 1.11.0
- files_external
- files_texteditor: 2.14.0
- files_videoplayer: 1.10.0
- firstrunwizard: 2.10.0
- logreader: 2.6.0
- nextcloud_announcements: 1.10.0
- password_policy: 1.11.0
- photos: 1.3.0
- recommendations: 1.0.0
- serverinfo: 1.11.0
- support: 1.4.0
- survey_client: 1.9.0
- systemtags: 1.14.0
- updatenotification: 1.14.0
- user_usage_report: 1.8.0
- weather_status: 1.1.0
Nextcloud configuration
{
"system": {
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"updater.secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"localhost",
"skyboxdev.skymail.com.br"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "mysql",
"version": "24.0.1.1",
"overwrite.cli.url": "https:\/\/skyboxdev.skymail.com.br",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"theme": "skymail",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***"
},
"knowledgebaseenabled": false,
"auth.webauthn.enabled": false,
"default_language": "pt_BR",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "smtp",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"skybox_url_webmail_logo": "https:\/\/webmaildev.skymail.com.br\/?_task=mai&_action=plugin.logo&_user=user@%domain%",
"ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
"mail_sendmailmode": "smtp",
"mail_smtpauthtype": "LOGIN",
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "587",
"mail_template_class": "\\OCA\\Skybox\\EMailTemplate",
"defaultapp": "files",
"ldapIgnoreNamingRules": false,
"auth.bruteforce.protection.enabled": false,
"mail_smtpauth": 1,
"mail_smtpdebug": 1,
"imap_port": 143,
"imap_host": "imap-ha.skymail.net.br",
"simpleSignUpLink.shown": false,
"loglevel": 2,
"maintenance": false,
"default_phone_region": "BR"
}
}
Web server error log
No response
Log file
No response
Browser log
No new notification data received App.vue:323
Polling interval updated to 30000 App.vue:355
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[INFO] calendar: fetching suggestions for 0 attendees
Object { app: "calendar", uid: "lucas.marin@skymail.com.br" }
ConsoleLogger.js:33:8
[DEBUG] calendar: availability of room suggestions fetched
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", results: [] }
ConsoleLogger.js:29:8
Invalid avatar url null Avatar.js:150:7469
No new notification data received App.vue:323
Polling interval updated to 30000 App.vue:355
[INFO] calendar: fetching suggestions for 1 attendees
Object { app: "calendar", uid: "lucas.marin@skymail.com.br" }
ConsoleLogger.js:33:8
XHRGEThttps://skyboxdev.skymail.com.br/ocs/v2.php/apps/user_status/api/v1/statuses/Lucas Stevanelli Marin (lucas.marin@skymail.com.br)
[HTTP/2 404 Not Found 147ms]
XHRGEThttps://skyboxdev.skymail.com.br/ocs/v2.php/apps/user_status/api/v1/statuses/Lucas Marin (lucas.marin@emailemnuvem.com.br)
[HTTP/2 404 Not Found 237ms]
[DEBUG] calendar: availability of room suggestions fetched
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", results: [] }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
[DEBUG] calendar: Option render
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", option: {…} }
ConsoleLogger.js:29:8
XHRGEThttps://skyboxdev.skymail.com.br/ocs/v2.php/apps/user_status/api/v1/statuses/Lucas Stevanelli Marin (lucas.marin@skymail.com.br)
[HTTP/2 404 Not Found 114ms]
[INFO] calendar: fetching suggestions for 1 attendees
Object { app: "calendar", uid: "lucas.marin@skymail.com.br" }
ConsoleLogger.js:33:8
XHRGEThttps://skyboxdev.skymail.com.br/ocs/v2.php/apps/user_status/api/v1/statuses/Lucas Marin (lucas.marin@emailemnuvem.com.br)
[HTTP/2 404 Not Found 194ms]
[DEBUG] calendar: availability of room suggestions fetched
Object { app: "calendar", uid: "lucas.marin@skymail.com.br", results: [] }
ConsoleLogger.js:29:8
Additional info
I don't know if this error is the malformatted DAYLIGHT instruction on ics or a Outlook bug.
If I remove the instruction bellow on .ics, the error can not be reproduced.
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
TZNAME:-02
DTSTART:20181104T000000
RDATE:20181104T000000
END:DAYLIGHT
ICS file example: from_skymailcombr-10h.txt
Please rename from .txt to .ics

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the attached from_skymailcombr-10h.txt ICS example and reproduce the event using the stated America/Sao_Paulo timezone, MySQL, and Outlook setup. Compare the DAYLIGHT block with the one-hour discrepancy reported in Outlook; done means the ICS start and end times are read correctly without removing valid timezone data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, mysql, php
- Domain
- backend, localization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100