How to format an ICS file attached to an email that automatically sets the time zone correctly in Google Calendar so when the receiving party clicks "add to calendar" it looks like the screenshot below. (appointment set in specific time zone. New York in sample below).
We have played VTZIMEZONE. TZID.
If you want to manually get someone to click a link you can set the querystring "ctz" to value you want.
https://calendar.google.com/calendar/r/eventedit?text=Event%20Title&details=Example%20of%20some%20description.%20See%20more%20at%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F10488831%2Flink-to-add-to-google-calendar&location=123%20Some%20Place%2C%20City&dates=20200222T100000/20200222T113000&**ctz=America%2FNew_York**
Below does not work.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Appointment Reminder//EN
X-WR-TIMEZONE:America/New_york
BEGIN:VTIMEZONE
TZID:America/New_york
X-LIC-LOCATION:America/New_york
END:VTIMEZONE
BEGIN:VEVENT
UID:61bb267c4074e
DTSTART;TZID=America/New_york:20211216T180000
SEQUENCE:0
TRANSP:OPAQUE
DTEND;TZID=America/New_york:20211216T210000
DTSTAMP:20221007T192043Z
UID:575af6e9-1a52-4b12-b24c-d6057e0cca60
CREATED:20221007T192043Z
DESCRIPTION:
LOCATION:SomePlace
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
ORGANIZER;CN=Matthew
SUMMARY:Test Appointment
END:VEVENT
END:VCALENDAR
By default, Google Calendar automatically sets the timezone based on the users location (or pre-set timezone on the calendar settings) as explained here in this article:
Also, the ICS file generated by Google Calendar contains details that will tell you about its creation, the time and location of the event, who organized it and so on and so forth. Mostly, this is used for debugging/troubleshooting purposes, you can parse the information from the ICS file but it cannot automatically set event details.
Related
We need to perform calculations in SuiteScript using the values in Setup/Accounting/Finance Charge Preferences. Which record is this stored on? Specifically, we're looking for these finance charge fields:
Annual Rate
Minimum Finance Charge
Grace Period
We've tried to create saved searches in all of the obvious records but have not been able to find these fields.
Not documented but N/runtime can be used to get this info (at least in the console)
require(['N/runtime'], runtime=>{
const user = runtime.getCurrentUser();
console.log(user.getPreference({
name:'FC_GRACEPERIOD'
}));
});
You can get the field ids by clicking the field help on the Finance Charge Preferences page.
If that doesn't work to get the fields you can see if the fields are available but not documented by creating a server side script (I'd use a suitelet) to get the accounting preferences object and dump the field names.
If the config module was available client side this would be the console version:
require(['N/config'], config=>{
const conf = config.load({type:'accountingpreferences'});
conf.getFields().forEach(f=>console.log(f));
});
I'm learning how to use Nodemailer to send an Email to an Outlook account, and already sent some mail successfully. And also sucessfully sent an attachment of an Outlook Event invitation using .ics file.
But then I realized an Invitation attached in my Email has a Title using the Email Subject instead of SUMMARY field in .ics file below:
BEGIN:VCALENDAR
PRODID:Calendar
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Japan
BEGIN:STANDARD
DTSTART:19390101T000000
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
TZNAME:JST
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER:Mailto:toransu_home#exmaple.com
UID:00112015050#exmaple.com
CLASS:PUBLIC
DESCRIPTION:This is an event description.
DTSTAMP;TZID=Japan:20191216T152657
DTSTART;TZID=Japan:20191226
DTEND;TZID=Japan:20191228
LOCATION:[MiềnNam]HCM
SUMMARY: This is an event Title
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
I've read that in .ics file, SUMMARY field is Event's title. But I don't know why Calendar event's title display as Email's subject instead of event's title(SUMMARY). However, if I leave Email subject empty, event's title will display normally (using SUMMARY field in .ics file.)
Anyone know why ? Or is it suppose to be like that with Outlook?
Thank you very much!
I recently was able to get management to stop using poorly built monthly calendar DOC files and to start using SharePoint calendars to keep try of events and so forth. Gives them searchable records and allows me to do actual programming based on events and injecting events into SharePoint programmatically when needed.
The problem is that they dont have a good way to print events because the print function from the browser is garbage. But when you link the calendar to Outlook it is well formatted but if a day has more than 4 events it just adds "X more events" below. Thus making the events hidden from a printed copy.
Do you have a suggestion for management being able to print monthly view calendars and show all events on a busy calendar?
Thanks!
The Calendar Printing Assistant might help you here. Its an official addon for Outlook that specializes in printing your calendar in Outlook.
https://www.microsoft.com/en-ca/download/details.aspx?id=16645
I am finding it difficult to understand how ics file works in lotus notes. Invitation works precisely as defined whereas in the cancellation event nothing happens.
Say for example, when I import an ics file 2 calendar entries, then the entries are created as expected.
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
ORGANIZER:CN=Chintan Jayesh Parekh/O=main
DTSTART:20150504T140000
DTEND:20150504T150000
LOCATION:Test - 3
SUMMARY;LANGUAGE=en-us:Test - 3
DESCRIPTION;LANGUAGE=en-us:bvnvn
UID:00EDF2741C3E857965257E39002A2900
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
ORGANIZER:CN=Chintan Jayesh Parekh/O=main
DTSTART:20150505T140000
DTEND:20150505T150000
LOCATION:Test - 3
SUMMARY;LANGUAGE=en-us:Test - 3
DESCRIPTION;LANGUAGE=en-us:bvnvn
UID:11EDF2741C3E857965257E39002A2911
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
However, when I try to delete the same calendar entries, using the following ICS file, nothing happens:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:CANCEL
BEGIN:VEVENT
ORGANIZER:CN=Chintan Jayesh Parekh/O=main
DTSTART:20150504T140000
DTEND:20150504T150000
LOCATION:Test - 3
SUMMARY;LANGUAGE=en-us:Test - 3
DESCRIPTION;LANGUAGE=en-us:bvnvn
STATUS:CANCELLED
UID:00EDF2741C3E857965257E39002A2900
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
ORGANIZER:CN=Chintan Jayesh Parekh/O=main
DTSTART:20150505T140000
DTEND:20150505T150000
LOCATION:Test - 3
SUMMARY;LANGUAGE=en-us:Test - 3
DESCRIPTION;LANGUAGE=en-us:bvnvn
STATUS:CANCELLED
UID:11EDF2741C3E857965257E39002A2911
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
The only difference here between the 2 ics files is the method and the status. I have tried the same thing on a google calendar and it simply deletes the appointments after the second import, however, nothing seems to happen when we do so in lotus notes. Is there any field we are suppose to set specially for notes so as to delete the entries?
Any help would really be appreciated.
Not sure whether it will solve your problem but:
In all of the above, you are missing a DTSTAMP property, with a datetime in UTC corresponding to the date where that particular version of the event was created/modified. And of course, the DTSTAMP for the cancelled version shall be later in time than the original one.
In your cancelled events, you are also missing a SEQUENCE property (with a value greater than the one of the original event). See https://www.rfc-editor.org/rfc/rfc5546#section-3.2.5 .
Finally I found the solution.
As #arnaudq pointed out I was not following the structure correctly.
It had something to do with the naming structure of the organizer field specifically in Notes (since it worked well on google calendar and few other application I tried with).
//Wrong Version
ORGANIZER:CN=Chintan Jayesh Parekh/O=main
//Corrected Version
ORGANIZER;CN=Chintan Jayesh Parekh/O=main:mailto:CN=Chintan Jayesh Parekh/O=main
Hope it is useful to someone facing the same problem.
I've been jacking around with iCal and email and through some fiddling, I've managed to get gmail to recognize that I do, in fact, have an iCal file embedded in the message. So it looks something like this:
This is accomplished by adding a third portion to the multipart email that looks something like:
--B_ALT_51b091604704b
Content-Type: text/calendar; method=REQUEST charset=utf-8
Content-Transfer-Encoding: 7bit
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My Company LLC//My Reminder System//EN
BEGIN:VEVENT
UID:2201#example.com
DTSTAMP:20130606T134048Z
ORGANIZER;CN="Robb Nixon":MAILTO:robb.nixon#motorsolutions.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
TRUE;CN=Robb Nixon;X-NUM-GUESTS=0:mailto:robb.nixon#motorsolutions.com
DTSTART:20130608T120000Z
DTEND:20130608T130000Z
SUMMARY:Follow-Up: Allan Chappell ("New Template")
DESCRIPTION:Subject Line: "New Template"\nDate Sent: "June 6\, 2013 # 8:40
AM CDT\nRecipients:\n TO: Allan Chappell (------------------)\,\n \n
Email Copy:\n\nDear Allan\,\n\nAn Introduction\n\nMy Body\n\nNext Steps\n\n
Robb Nixon\nWeb Developer\nSalve Solutions\nmotorsolutions.com\n\n\n\n
SEQUENCE:0
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
Note, this is an example with some of the values changed... my real invite follows the folding rules to the letter. Also note that my gmail email address would be in the place of robb.nixon#motorsolutions.com as well, so in theory gmail should know that I am the organizer of the event.
When someone sends me an invite via gmail, I instead get the following:
Notice that it has "Going? Yes Maybe No" and the item is automatically added to my calendar. as it arrives to my email without having to hit the "Add to Calendar".
Does anyone know what I'm missing to make this happen for my iCal files? Or is it a Gmail thing where they recognize it's from them and go ahead and automatically add it to your calendar.
Your iCalendar stream is missing a METHOD:REQUEST property in the VCALENDAR object (i.e. below the PRODID but before the BEGIN:VEVENT.
Gmail may also get confused by the fact that you are also the organizer of this meeting.