Skip to content

Instantly share code, notes, and snippets.

@conrjac
Forked from douglascayers/vCalendarPage.html
Created August 9, 2018 08:37
Show Gist options
  • Save conrjac/7b06bcdefe87232e5163a8c63cf2eb8a to your computer and use it in GitHub Desktop.
Save conrjac/7b06bcdefe87232e5163a8c63cf2eb8a to your computer and use it in GitHub Desktop.
Create .ics Calendar Event in Visualforce
<!--
Simple proof-of-concept to create a .ics calendar event with visualforce.
Inspired by Natalie Regier @gnatrae
This example uses url parameters to set the details of event.
You could create a custom button that invokes this page, like:
https://<your-salesforce-domain>/apex/vCalendarPage?start={!TEXT(Obj.StartDate__c)}&end={!TEXT(Obj.EndDate__c)}&subject=Event from Visualforce&description=This .ics event created with visualforce&location=The Cloud
An example with literal values you can copy & paste in your browser:
https://<your-salesforce-domain>/apex/vCalendarPage?start=20140524T140000&end=20140524T153000&subject=Event from Visualforce&description=This .ics event created with visualforce&location=The Cloud
-->
<apex:page title="event.ics" contentType="text/calendar" cache="false">
BEGIN:VCALENDAR
VERSION:2.0
PRODID::-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTAMP;TZID=GMT:<apex:outputText value="{!SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($CurrentPage.parameters.start,':',''),'-',''),' ','T')}"/>
UID:<apex:outputText value="{!SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($CurrentPage.parameters.start,':',''),'-',''),' ','')}"/>-1@salesforce.com
DTSTART;TZID=GMT:<apex:outputText value="{!SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($CurrentPage.parameters.start,':',''),'-',''),' ','T')}"/>
DTEND;TZID=GMT:<apex:outputText value="{!SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($CurrentPage.parameters.end,':',''),'-',''),' ','T')}"/>
SUMMARY:<apex:outputText value="{!$CurrentPage.parameters.subject}"/>
DESCRIPTION:<apex:outputText value="{!$CurrentPage.parameters.description}"/>
LOCATION:<apex:outputText value="{!$CurrentPage.parameters.location}"/>
END:VEVENT
END:VCALENDAR
</apex:page>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment