!
!
!
Feedzon'Calendar'v'1'!!
Integrating'FileMaker®'Solutions'with'Google'Calendar™!!
!
!
Service!version:! 1!
!
Read!Me!revision:! 1.4!
!
Last!updated:! 19!March!2015!
!
Written!by:! ! Chaim!Bacon!
!
Copyright:! ! Feedzon!Limited!2015.!All!rights!reserved.!
!
!
!
!
!
! !
Page!2! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!2!
Changes'Log'
Version:'1.4'Updated:!19!March!2015!
!
• Improved!the!section!‘Troubleshooting!Google!Calendar!Sharing!Issues’!on!page!10.!
'
Version:'1.3'Updated:!16!March!2015!
!
• Corrected!a!typo!in!the!GetEventList!function!summary!on!page!6.!
!
Version:'1.2'Updated:!12!March!2015!
!
• Added!a!U1!error!code!to!identify!when!the!function!name!has!been!incorrectly!spelled.!
• Increased!the!number!of!Google!accounts!and!calendars!available!in!the!Business!
service!level!from!20!to!30.!
• Added!a!new!section!to!deal!with!!‘Troubleshooting!Google!Calendar!Sharing!Issues’.!
!
Version:'1.1'Updated:!10!March!2015!
!
• Please!download!the!updated!example!files:!
http://download.feedzon.com/sample_files/fmp/Calendar_Examples_v1.1.zip!
• Improved!error!codes.!Introduced!additional!30xx!codes!to!better!identify!errors!
returned!by!Google.!Also!added!4000!for!unknown!error!codes!returned!by!Google.!
Made!clarifications!to!descriptions!of!other!error!codes.!
• Explained!that!if!a!subscription!‘auto!renewal’!is!cancelled,!the!current!subscription!will!
continue!until!its!expiry!date.!
• Made!changes!to!the!‘Sharing!your!Google!Calendars’!section!to!address!problems!
reported!by!a!few!users!during!initial!setUup!
• Updated!appendices!to!reflect!Google’s!increase!in!the!calendar!service!limit!from!
100,000!to!1,000,000!queries!per!day.!!
!
Version'1.0'Released!6!March!2015!
!
' '
Page!3! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!3!
Contents'Start!Here!..................................................................................................................................!4!
Introduction!..........................................................................................................................!4!Update!for!Beta!Testers!........................................................................................................!4!Compatibility!.........................................................................................................................!5!Integration!Services!..............................................................................................................!5!Feedback!&!Support!..............................................................................................................!5!Subscription!Required!...........................................................................................................!5!HTTPS!Security!......................................................................................................................!5!Google!Data!Stored!by!Feedzon!............................................................................................!5!Features!................................................................................................................................!6!
Initial!Set!Up!..............................................................................................................................!7!Google!Apps!Accounts!..........................................................................................................!7!Google!Authorisation!............................................................................................................!8!Sharing!Your!Google!Calendars!.............................................................................................!8!Feedzon!Service!Configuration!.............................................................................................!9!Troubleshooting!Google!Calendar!Sharing!Issues!...............................................................!10!
Tips,!Date!&!Time!Formats!&!Terminology!.............................................................................!11!Important!Tip!with!‘Insert!From!URL’!.................................................................................!11!Code!for!Errors!....................................................................................................................!11!Supported!Date!&!Time!Formats!........................................................................................!12!Terminology!........................................................................................................................!12!
Syntax!......................................................................................................................................!13!Syntax!for!HTTPS!Post!in!FileMaker!13!...............................................................................!13!
Functions!&!Examples!.............................................................................................................!15!Calendars!............................................................................................................................!15!GetCalendarList!...................................................................................................................!15!InsertEvent!and!UpdateEvent!.............................................................................................!16!GetEvent!.............................................................................................................................!19!GetEventList!........................................................................................................................!20!GetInstanceList!....................................................................................................................!22!UpdateInstance!...................................................................................................................!23!RemoveInstance!..................................................................................................................!24!GetAttendeeList!..................................................................................................................!25!InsertAttendee!&!UpdateAttendee!.....................................................................................!26!RemoveAttendee!................................................................................................................!27!RemoveEvent!......................................................................................................................!28!MoveEvent!..........................................................................................................................!29!
Appendices!..............................................................................................................................!30!Time!Zones!Information!......................................................................................................!30!Time!Zone!Regions!..............................................................................................................!30!Success!&!Error!Codes!.........................................................................................................!33!Google!Calendar!Service!Limits!...........................................................................................!35!Note!about!Repeating!Events!in!FileMaker!........................................................................!35!RepeatByDay!for!Weekly!Repetitions!.................................................................................!35!Modification!Count!.............................................................................................................!35!Google!Event!Creator!Name!...............................................................................................!35!Future!Improvements!.........................................................................................................!36!
Page!4! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!4!
Start'Here!!
Introduction'Feedzon!Calendar!is!a!web!service!to!replace!and!enhance!our!previous!FMgCal!plugUin!for!
FileMaker!Pro,!enabling!you!to!integrate!your!FileMaker!solutions!with!Google!Calendar!really!
easily.!As!a!web!service!it!will!also!work!with!all!other!technologies!that!can!perform!an!HTTPS!
POST,!not!just!FileMaker.!
!
Feedzon!Calendar!is!an!easyUtoUuse!API!that!sits!between!your!FileMaker!solution!and!Google!
Calendar.!You!can!add!Feedzon!Calendar!to!your!solutions!with!as!little!as!a!single!script!step!in!a!
matter!of!minutes.!!
!
!
!
For!example,!to!add!an!all!day!event!to!your!Google!calendar,!all!you!need!is!the!following:!
!
InsertFromURL![!fieldname!;!"httpspost://api.feedzon.com/calendar/v1/InsertEvent.fz?”!&!!
“ServiceKey="!&!ServiceKey!&!!
"&CalendarId="!&!CalendarID!&!
"&StartDate="!&!StartDate!&!
"&EndDate="!&!EndDate!&!
"&Summary="!&!Summary!!
!
It’s!that!easy!!
!
Feedzon!Calendar!works!with!the!entire!FileMaker!13!product!family!including!Go,!Pro,!Server,!
WebDirect,!CWP!and!Runtime!solutions.!
!
Feedzon!Calendar!does!not!use!any!plugUins!and!does!not!require!Java!to!be!installed.!Although!
you!can!use!Feedzon!Calendar!with!FileMaker!Server!(serverUside!scripts),!you!do!not!need!FileMaker!Server.!For!example,!if!you!have!a!standalone!solution!that!uses!FileMaker!Go,!Pro!or!a!
standalone!Runtime!solution,!it!will!still!work.!The!only!thing!you!need!is!an!internet!connection.!
!
Update'for'Beta'Testers'If!you!were!involved!in!the!beta!testing!program,!please!note!that!many!changes!have!been!
implemented!since!then.!Please!update!all!your!code!to!be!compatible!with!this!release!version.!
!
Your!FileMaker!Solution!
Go,!Pro,!Server,!WebDirect,!
CWP!or!Runtime!
Google!Calendar!
Free!or!Google!Apps!Feedzon!
Calendar!
Page!5! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!5!
Compatibility'FileMaker'13:'In!FileMaker!13!we!make!use!of!the!native!‘Insert!from!URL’!script!step!using!
HTTPS!POST!(SSL).!Since!this!command!is!built!into!the!FileMaker!13!product,!Feedzon!Calendar!
is!compatible!with!the!entire!FileMaker!13!product!family.!
!
FileMaker'12'&'Earlier:'The!‘Insert!From!URL’!command!in!FileMaker!12!does!not!support!HTTPS!
(SSL)!or!‘POST’!(it!only!supports!‘GET’),!so!Feedzon!Calendar!is!not!compatible!with!FileMaker!
12’s!native!command!set.!However!FileMaker!12!and!earlier!versions!can!use!Feedzon!Calendar!
with!a!plugUin!that!supports!https!post,!including!this!free!one:!
http://www.goya.com.au/baseelements/plugin!!
'
Integration'Services'Feedzon!Calendar!is!very!easy!to!add!to!your!own!solutions,!but!we!do!offer!an!integration!
service!for!those!who!need!assistance.!Please!contact!us!for!more!information!and!a!quotation.!
!
Feedback'&'Support'We!would!love!to!hear!from!you!about!how!you’ve!used!Feedzon!Calendar.!Should!you!require!
support,[email protected].!Along!with!your!support!request,!please!
specify!whether!you’re!using!a!free!Google!account!or!a!Google!Apps!account.!
!
If!you!notice!any!errors,!inconsistencies!or!other!mistakes!in!the!service!or!this!manual,!we!would!
be!grateful!if!you!could!please!email!full!details!to!the!above!address.!
!
Subscription'Required'Feedzon!Calendar!is!a!subscription!service.!Please!visit!www.feedzon.com!for!more!details!and!
pricing.!You!can!subscribe!in!the!‘My!Subscriptions!&!Credits’!page.!Please!note!that!you!can!
cancel!your!subscription!at!any!time!by!disabling!the!‘Auto!Renew’!option.!Should!you!disable!the!
autoUrenew!option,!your!current!subscription!will!remain!live!until!the!expiry!date.!
!
HTTPS'Security'All!communication!between!your!FileMaker!solution!and!the!Feedzon!web!servers!are!encrypted,!
as!are!all!communications!between!the!Feedzon!web!servers!and!Google.!
!
Google'Data'Stored'by'Feedzon'With!the!sole!exception!of!the!items!identified!in!this!paragraph,!we!do!not!store!any!of!your!
Google!Calendar!data!on!our!servers.!All!your!data!is!provided!on!a!live!basis!by!Google!and!
requires!the!Google!Calendar!service!to!be!available!at!the!point!of!query.!The!items!we!do!store!
are:!Your!Google!developers!console!email!address,!the!p12!security!certificate!and!a!list!of!
calendar!IDs!that!you!have!enabled!in!your!Feedzon!service(s).!
! '
Page!6! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!6!
Features'The!following!features!are!supported!by!Feedzon!Calendar!v1.0!
!
GetCalendarList! Get!a!list!of!available!calendars.!
InsertEvent!Create!a!new!event.!Supports!single!and!repeating!events!
as!well!as!exceptions!from!repeating!events.!
UpdateEvent!Update!an!existing!event.!Supports!single!and!repeating!
events.!
GetEvent! Get!the!details!of!an!event.!
GetEventList!
Powerful!search!functions:!Get!a!list!of!all!events!in!the!
specified!calendar;!Get!a!list!of!events!that!match!one!or!
more!of!the!following!search!criteria:!A!text!string;!
everything!that!was!created,!updated!or!removed!since!a!
specified!date;!all!events!between!specified!dates;!Any!
combination!of!the!above.!
GetInstanceList! Get!the!list!of!instances!for!a!repeating!event.!
UpdateInstance! Update!a!specific!instance!for!a!repeating!event.!
RemoveInstance! Remove!a!specific!instance!from!a!repeating!event!
GetAttendeeList! Get!a!list!of!attendees!for!an!event.!
UpdateAttendee! Update!a!specific!attendee!for!an!event.!
InsertAttendee! Add!an!additional!attendee!to!an!event.!
RemoveAttendee! Remove!a!specific!attendee!from!an!event.!
RemoveEvent! Remove!an!entire!event.!
MoveEvent! Move!an!event!from!one!Google!Calendar!to!another.!
! '
Page!7! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!7!
Initial'Set'Up'Customers!integrating!with!a!Google!Apps!account!should!first!follow!the!instructions!below.!All!
other!customers!can!skip!to!the!Google!Authorisation!section!on!the!following!page.!
!
Not!sure!whether!you’re!using!a!Google!Apps!account!or!not?!Check!this!out:!
https://support.google.com/accounts/answer/72709?hl=en!
!
Google'Apps'Accounts'In!addition!to!support!for!free!Google!accounts,!Feedzon!Calendar!is!also!compatible!with!Google!
Apps!accounts!but!you!will!need!your!Google!Apps!account!administrator!to!allow!sharing!of!the!
calendar!with!an!email!address!that!is!not!in!your!domain.!Our!experience!shows!that!you!need!
to!do!this!prior!to!the!steps!below.!
!
Google!Apps!customers!should!first!follow!these!steps:!
!
1. See!here:!https://support.google.com/a/answer/60765?hl=en!
2. Follow!the!description!for!‘Set!calendar!sharing!options!for!new!calendars!in!your!
organisation’!
!
Please!contact!us!if!you!experience!any!issues!setting!up!Feedzon!Calendar!with!your!Google!
Apps!account.!
!
! '
Page!8! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!8!
Google!free!customers!start!here.!Google!Apps!customers!continue!here…!
!
Google'Authorisation'You’ll!need!to!authorise!your!Google!Calendar!to!communicate!with!the!Feedzon!Calendar!web!
service.!Please!watch!this!video!and!follow!the!instructions:!http://youtu.be/ZlDrO1mNO0w.!
Note!that!you!can!update,!enable!and!disable!your!security!certificate!in!the!Google!Developers!
Console!at!any!time.!If!a!current!security!certificate!is!disabled,!all!Feedzon!services!that!use!that!
certificate!will!immediately!cease!to!operate.!If!you!update!or!replace!your!certificate,!please!
remember!to!upload!the!new!certificate!to!your!Feedzon!Calendar!Service!page(s).!
!
Sharing'Your'Google'Calendars'Now!you!need!to!share!each!Google!calendar!that!you!want!to!access!
from!your!FileMaker!solutions.!You!do!not!need!to!share!all!the!
calendars!in!your!Google!account,!only!the!ones!you!want!to!make!
visible!to!your!FileMaker!solution.!Furthermore!you!can!enable!or!
disable!access!to!individual!calendars!in!the!Feedzon!Service!page,!thus!
providing!you!complete!control!over!which!users!have!access!to!which!
calendars.!For!example,!if!you!have!one!Google!account!with!10!staff!
calendars!but!you!only!want!each!staff!member!to!have!access!to!their!
own!calendar,!then!you!would!create!10!Calendar!Services!in!your!
Feedzon!account!U!each!with!it’s!own!unique!Service!Key!U!and!enable!
only!the!appropriate!staff!calendar!for!each!Service!(details!on!the!next!
page).!In!the!logUin!script!of!your!FileMaker!solution!you!would!then!
identify!the!unique!Service!Key!to!be!used!based!on!the!user!who!has!
logged!in,!automatically!limiting!access!and!providing!the!security!required.!
!
Log!into!Google!Calendar!in!your!browser,!
right!click!the!calendar!that!you!want!to!be!
available!to!your!FileMaker!solution!and!
click!‘Share!this!Calendar’.!In!the!calendar!
details!page,!paste!the!developers!console!
email!address!(A),!select!‘Make!changes!to!
events’!(B),!click!‘Add!Person’!(C)!and!
finally!click!‘Save’!(D).!!
!
!
Google!Apps!users!will!see!this!additional!
security!dialog.!
!
Some!users!have!reported!that!Google!is!
not!always!saving!the!setting,!so!we!recommend!that!you!go!back!into!the!sharing!page!and!
confirm!your!settings!were!saved.!Some!users!have!reported!that!only!‘Make!changes!AND!
manage!sharing’!works!for!them.!!
!
Finally,!repeat!these!steps!for!each!calendar!that!you!want!to!share.! '
Page!9! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!9!
Feedzon'Service'Configuration'Next!you!need!to!set!up!a!Feedzon!Calendar!service!and!tell!it!about!your!Google!authorisation.!
!
1. Sign!Up!or!log!into!your!Feedzon!account!at!www.feedzon.com.!
2. If!you!don’t!have!a!current!subscription!to!the!Feedzon!Calendar!service!please!subscribe!in!
the!‘My!Subscriptions!&!Credits’!page.!You!can!check!out!the!subscription!options!and!prices!
here:!https://feedzon.com/products/webservices/prices/!
3. In!your!Feedzon!account,!go!to!My!Services.!Click!New!Service!to!create!a!new!Calendar!
service!or!click!Edit!to!edit!an!existing!one,!as!appropriate.!The!steps!that!follow!are!for!
creating!a!new!service.!
4. Select!Service!Type!‘Calendar’.!
5. Personalise!the!Service!Name,!e.g.!‘MyCompany!Calendar’.!
6. Leave!the!Service!Status!with!the!default!setting!‘Enable!service!and!include!Service!Key’.!
7. Select!the!date!format!to!be!used.!This!must!be!the!format!used!for!dates!provided!from!your!
FileMaker!solution!to!the!API!and!will!also!be!the!format!for!returned!date!values.!If!your!
solution!is!used!internationally!with!multiple!date!formats,!you!will!need!to!create!a!separate!
service!linked!to!the!same!Google!account!with!the!appropriate!date!format!for!each!service.!
8. In!Email!Address,!paste!the!long!email!address!provided!to!you!by!the!Google!Developers!
Console.!Ensure!to!remove!any!superfluous!tab!or!space!characters!from!both!ends.!
9. Click!the!Browse!button!and!select!your!.p12!certificate!downloaded!earlier.!
10. Click!Add!Service.!11. You!now!need!to!select!which!calendars!
this!service!can!access.!Click!Edit!to!edit!
the!Calendar!service!and!in!the!lower!
section,!select!the!Enabled!check!box!for!
each!calendar!you!wish!to!use!this!service.!
Click!Save!Service!when!completed.!!
12. Please!note!that!all!subscriptions!except!the!‘Unlimited’!subscription!are!limited!to!
a!maximum!number!of!calendars!that!can!
be!enabled.!If!you!enable!more!calendars!
than!your!subscription!allows,!you!will!get!an!error!message!when!trying!to!access!the!service!
through!the!API.!!
13. Note!that!if!you!later!share!or!unshare!any!Google!calendars!and!already!have!the!Feedzon!Calendar!Service!window!open,!you!will!need!to!Save!or!Dismiss!the!Calendar!Service!window!
and!then!click!Edit!to!reopne!the!Service!window.!This!allows!the!service!to!update!the!list!of!
calendars!that!can!be!enabled!or!disabled.!
14. Copy!the!Service!Key!so!you!can!paste!it!into!your!FileMaker!solution.!
15. Click!Save!Service.!!
If!you!do!not!see!any!of!your!Google!calendars!listed!please!follow!the!troubleshooting!steps!on!
the!following!page.!
! '
Page!10! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!10!
Troubleshooting'Google'Calendar'Sharing'Issues'If!you’re!not!seeing!any!of!your!Google!calendars!listed,!try!following!these!steps.!Follow!each!
step!individually!and!then!check!the!results.!As!soon!as!you!can!see!your!Google!Calendars!listed!
in!the!Feedzon!Calendar!Service!window,!stop!following!any!further!steps.!!
1. Check!the!email!address!you’ve!used!for!the!service!is!the!
correct!Google!Developers!Console!email!address.!! !
2. Check!your!have!correctly!uploaded!your!.p12!security!
certificate.!Does!your!service!page!say!‘Certificate!is!missing’!or!‘Certificate!uploaded’?!!
3. If!the!calendar!list!shows!‘Error’!then!the!email!address!or!certificate!is!incorrect.!!
4. If!the!calendar!list!shows!‘No!calendars!available’,!then!the!connection!was!successfully!
authorised!by!Google!but!no!calendars!have!been!shared!(see!page!8).!
!
5. Close!the!Calendar!Service!window!by!clicking!Save!Service!or!Dismiss,!as!appropriate,!and!
then!click!the!Edit!button!from!the!list!of!services.!If!the!Calendar!Service!window!was!open!
whilst!you!made!changes!to!Google,!they!will!not!be!reflected!in!the!Calendar!Service!window!
until!it!is!reloaded.!!
!
6. If!you!are!still!not!seeing!any!calendars!listed,!check!whether!you’re!using!Google!Apps!and!if!
so,!that!you!followed!the!steps!shown!on!page!7.!
!
7. Temporarily!rename!your!calendar.!
!
8. Create!a!new!‘Test’!calendar!in!your!Google!account.!Share!this!with!the!Google!Developers!
Console!email!address!as!per!the!instructions!on!page!8.!Close!and!reUedit!the!Feedzon!
Calendar!Service!window!to!force!it!to!refresh.!Is!the!test!calendar!displayed?!If!so,!now!go!
and!share!one!of!your!other!calendars.!Refresh!the!Feedzon!Calendar!Service!window!again!
to!check.!If!this!works!you!can!now!delete!the!test!calendar!from!your!Google!account.!
!
9. Try!removing!the!Google!Developers!Console!email!address!from!the!sharing!page,!saving!
your!changes,!then!going!back!and!adding!it!again.!!
10. Repeat!step!8!but!without!having!deleted!the!email!address.!When!adding!the!email!address!
again!Google!will!appear!to!do!nothing!because!it!is!already!sharing!with!that!email!address.!
However!in!the!background!this!has!fixed!the!problem!in!a!few!cases.!Save!your!changes.!!
11. If!creating!a!test!account!worked!but!you!still!are!unable!to!share!your!preUexisting!calendar,!then!try!exporting!your!calendar!and!importing!the!appropriate!calendar(s)!into!new!
calendars.!Google’s!export!and!import!options!are!on!the!My!Calendars!>!!Settings!page.!!
12. Check!out!this!article:!https://support.google.com/calendar/answer/37082?hl=en!!
13. Log!out!of!Google.!Log!out!out!of!Feedzon.!Clear!your!browser!cache.!Quit!and!restart!your!browser!and!try!again.!Alternatively!try!some!of!thee!steps!in!another!browser.!
!
14. If!you’re!still!experiencing!problem,!please!call!us.!We!would!like!to!apologise!on!behalf!of!
Google!for!their!occasionally!buggy!sharing!interface!!:)!
Page!11! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!11!
Tips,'Date'&'Time'Formats'&'Terminology'!
Important'Tip'with'‘Insert'From'URL’'As!explained!below,!in!FileMaker!13!
you!will!use!the!‘Insert!From!URL’!
script!step!to!integrate!with!Feedzon!
Calendar.!This!script!step!requires!
you!to!specify!a!field!into!which!the!
results!will!go!and!that!field!must)be)on)the)current)layout!or!FileMaker!
will!return!an!error.!However,!to!
keep!your!layouts!tidy,!you!can!
position!it!beyond!the!edge!of!the!
page!that!is!visible!to!users!in!
browse!mode,!as!shown!here.!
!
The!Insert!From!URL!command!can!cause!the!script!to!lose!context!if!you!are!in!a!portal!row!or!a!
popUover!menu!when!the!command!is!run.!See!the!‘Update!Instance’!and!‘Remove!Instance’!
scripts!in!the!Get!Event!sample!file!to!see!how!to!design!your!script!to!avoid!potential!problem!
that!result!from!this!behaviour.!
!
Code'for'Errors'We!recommend!that!you!program!your!solution!to!correctly!catch!occasional!unexpected!results!
or!errors.!For!example!a!required!parameter!is!missing,!there!may!be!an!issue!with!your!service!
or!subscription!settings!or!maybe!or!if!you!have!no!internet!connection!U!then!you!may!get!an!
error!code!and!should!branch!your!code!appropriately.!Error!codes!are!listed!in!the!appendices.!
!
!
! '
Page!12! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!12!
Supported'Date'Formats'Feedzon!Calendar!supports!the!following!date!formats!for!dates!uploaded!to!the!service:!
!
dd!mm!yyyy!
mm!dd!yyyy!
yyyy!mm!dd!
!
The!separator!character!can!be!a!slash,!hyphen!or!dot,!e.g.!
!
dd/mm/yyyy,!ddUmmUyyyy!or!dd.mm.yyyy!
!
In!the!Feedzon!Calendar!service!page!you!must!specify!a!date!format!and!this!format!must!be!
used!for!all!dates!uploaded!to!the!service.!When!uploading!dates,!it!actually!doesn’t!matter!
which!separator!character!is!used!since!it!is!ignored,!e.g.!if!you!upload!a!StartDate!of!22/03/2015!
and!an!EndDate!of!23.03.2015!U!it!will!work!fine!as!long!as!dd!mm!yyyy!is!the!format!selected.!
This!allows!for!flexibility!if!some!users!manually!type!dates!with!one!separator!character!and!
other!users!use!a!different!separator!character.!Results!will!always!be!returned!in!the!selected!
format!with!the!separator!character!selected!in!the!service!page.!
!
In!our!example!files,!all!date!and!timestamp!fields!are!defined!as!text!fields!to!allow!all!our!
international!customers!to!work!with!dates!in!their!local!format!and!for!users!to!test!the!
different!date!format!settings.!
!
Supported'Time'Formats'Time!values!must!always!be!supplied!in!either!HH:MM!format!or!HH:MM:SS.!The!seconds!value!is!
ignored!when!viewing!an!event!in!your!browser!since!Google!events!do!not!support!seconds,!so!
if!you!upload!22:30:50,!it!will!be!displayed!as!22:30.!
!
Note!that!seconds!are!supported!and!required!for!search!functions!like!GetEventList!and!all!
timestamp!values.!
!
Terminology'Some!terms!are!explained!below.!
!
Summary:!Google!uses!the!name!‘summary’!for!‘title’,!so!an!Event!Summary!is!it’s!title.!
!
Etag:!Google!uses!the!terms!‘Etag’!to!refer!to!a!numeric!timestamp!conforming!to!RFC3339!
standard!U!https://www.ietf.org/rfc/rfc3339.txt.!When!an!event!is!created,!edited!or!removed,!
the!Etag!timestamp!is!updated!automatically.!If!comparing!events,!e.g.!an!event!that!was!moved!
from!one!calendar!to!another!and!you!want!to!identify!which!is!the!newer!event!having!
downloaded!both!with!the!GetEventList!function,!just!compare!the!numeric!Etag!values!U!the!
higher!value!is!the!newer!one.!
!
Page!13! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!13!
Syntax'!
Syntax'for'HTTPS'Post'in'FileMaker'13'If!you!haven’t!used!FileMaker’s!‘Insert!From!URL’!command!or!don’t!have!any!experience!
formulating!an!https!post!request,!then!you!might!find!the!syntax!slightly!unusual,!but!like!most!
things!in!FileMaker,!it’s!actually!very!easy!to!learn.!
!
Note:!Unlike!FileMaker,!all!Calendar!functions!and!parameter!names!are!Case!Sensitive,!e.g.!
GetEventList!is!correct,!whereas!geteventlist!or!GeteventList!are!incorrect!and!will!not!work.!!!
Predefined!parameter!values!such!as!‘default’,!‘private’,!‘public’,!‘free’!and!‘busy’!are!not!case!
sensitive.!!
!
In!FileMaker!a!semiUcolon!separates!calculations!parameters,!e.g.!
!
FunctionName![!parameter1!;!parameter!2!{!;!optional!parameters!}!]!
!
FileMaker’s!‘Insert!From!URL’!command!uses!the!following!URL!syntax!for!https!post,!
!
httpspost://api.feedzon.com/calendar/FunctionName?parameter1=value1¶meter2=value2!
!
These!are!also!commonly!known!as!‘value!pairs’.)All!Feedzon!functions!have!one!or!more!
required!parameters!and!some!have!optional!parameters.!If!you!don’t!wish!to!specify!a!value!for!
a!parameter,!you!can!leave!it!out!altogether!or!just!provide!the!parameter!without!a!value.!!
!
Unlike!FileMaker!functions,!parameters!can!be!specified!in!any!order,!e.g.!
!
¶meter1=value1¶meter2=value2!
is)exactly)the)same)as)¶meter2=value2¶meter1=value1!
!
Examples:!!!
These!examples!use!the!GetEventList!function.!!
• With!values!hardcoded!into!the!string:!
!
Insert!From!URL![!
"httpspost://api.feedzon.com/calendar/v1/GetEventList.fz?ServiceKey=123456789
&[email protected]”!]!
!
• With!values!stored!in!local!variables!the!above!string!would!look!like!this:!
!
Insert!From!URL![!
"httpspost://api.feedzon.com/calendar/v1/GetEventList.fz?ServiceKey="!&!
$ServiceKey!&!"&CalendarId="!&!$CalendarId!]!
Page!14! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!14!
!
• The!above!string!only!specifies!the!minimum!required!parameters!and!as!a!result!this!
command!would!download!all!events!in!the!specified!calendar.!However,!if!you!wanted!
to!only!download!events!that!had!changed!since!a!specific!time,!then!you!would!add!the!
optional!UpdateDateTime)parameter,!like!this:!
!
Insert!From!URL![!
"httpspost://api.feedzon.com/calendar/v1/GetEventList.fz?ServiceKey=123456789
&[email protected]&UpdateDateTime=23/11/2014!16:52:00"!]!
!
!
• It’s!also!perfectly!acceptable!to!provide!a!parameter!followed!by!an!empty!value,!in!which!
case!those!parameters!will!simply!be!ignored.!The!following!example!provides!the!same!
results!as!the!first!example!above!since!all!optional!parameters!have!empty!values.!
!
Insert!From!URL![!
"httpspost://api.feedzon.com/calendar/v1/GetEventList.fz?ServiceKey=123456789
&[email protected]&Find=&StartDateTime=&EndDateTime=&Sho
wCancelled="!!
!
• The!ability!to!provide!parameters!with!empty!values!enables!you!to!keep!your!scripting!
simple.!If!you!provide!for!all!parameters!in!your!scripts,!then!they!will!be!used!where!the!
parameter!has!a!value!and!ignored!where!it!doesn’t.!The!following!code!will!have!
different!values!depending!on!which!local!variables!have!values!and!doesn’t!require!you!
to!write!different!scripts!for!every!combination!of!values.!
!
Insert!From!URL![!
"httpspost://api.feedzon.com/calendar/v1/GetEventList.fz?ServiceKey="!&!
$ServiceKey!&!"&CalendarId="!&!$CalendarId!&!“&Find="!&!$Find!&!!
"&UpdateDateTime="!&!$UpdateDateTime!!&!"&StartDateTime=”!&!
$StartDateTime!&!"&EndDateTime="!&!$EndDateTime!&!"&!ShowCancelled="!&!
$ShowCancelled]!
!
Note!that!in!some!cases!you!may!need!to!provide!additional!logic!in!your!solution!to!trap!for!
user!errors.!For!example!in!the!above!script!step,!you!will!get!an!error!if!you!provide!values!
for!$UpdateDateTime!as!well!as!$StartDateTime!and!$EndDateTime.!
!
!
!
! '
Page!15! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!15!
Functions'&'Examples'
'
Calendars'You!can!download!details!of!calendars,!but!you!cannot!create,!edit!or!remove!calendars!through!
the!Feedzon!Calendar!web!service!at!this!time.!
!
GetCalendarList'Returns!a!list!of!calendars!in!this!Google!account.!
!
Function!name! GetCalendarList.fz!
Required!parameters! ServiceKey!
!
Example:!!!
Insert!From!URL![!"httpspost://api.feedzon.com/calendar/v1/GetCalendarList.fz?ServiceKey="!&!
“123456789”!]!
!
Result:!!
"0"!!
"[email protected]","1416789821562000","Work","","","Europe/London"!!
"[email protected]","1416789833639000","Personal","",
"","Europe/London"!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!each!subsequent!
line!will!contain!the!data!for!that!calendar!in!a!comma!separated!quoted!format.!!
!
The!values!represent:!
"CalenderId","CalendarEtag!","CalendarSummary","CalendarLocation","CalendarDescription",!
"CalendarTimeZone"!
!
!
!
! '
Page!16! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!16!
InsertEvent'and'UpdateEvent'Create!a!new!event!or!update!the!specified!event.'!
Function!name! InsertEvent.fz! UpdateEvent.fz!
Required!parameters! ServiceKey,!CalendarId,!StartDate,!
EndDate,!Summary!
ServiceKey,!CalendarId,!EventId,!
StartDate,!EndDate,!Summary!
Optional!parameters! StartTime,!StartTimeZone,!
EndTime,!EndTimeZone,!Location,!
Description,!Repeat,!RepeatByDay,!
RepeatEvery,!RepeatCount,!
RepeatUntil,!FreeBusy,!Visibility,!
AttendeeList!
StartTime,!StartTimeZone,!
EndTime,!EndTimeZone,!Location,!
Description,!Repeat,!RepeatByDay,!
RepeatEvery,!RepeatCount,!
RepeatUntil,!FreeBusy,!Visibility,!
Status!
!
Parameters:!
• StartDate!&!EndDate*!
• StartTime!&!EndTime,!in!HH:MM!or!HH:MM:SS!format.!
• An!‘All!Day’!event!can!be!defined!by!leaving!the!start!and!end!times!empty,!i.e.!there!is!
no!specific!parameter!to!set!as!‘all!day’.!
• StartTimeZone!&!EndTimeZone,!if!used!must!be!from!the!list!U!please!refer!to!the!
appendices.!If!not!specified,!the!default!calendar!time!zone!will!be!provided.!
• Summary!is!the!event!title,!max!1024!characters.!!
• Location,!max!1024!characters.!
• Description,!max!8192!characters.!
• Repeat!should!be!empty!for!nonUrepeating!events.!Otherwise!specify!‘daily’,!‘weekly’,!
‘monthly’!or!‘yearly’.!If!used!you!must!also!supply!additional!values!to!describe!the!
repetition.!
• RepeatByDay!is!only!used!for!weekly!repetitions!and!defines!on!which!days!of!the!week!
the!repetition!occurs.!The!format!is!x,x,x,x,x,x,x!where!x!should!be!a!1!or!a!0!and!the!
values!are!for!Sunday,!Monday,!Tuesday,!Wednesday,!Thursday,!Friday!and!Saturday!
respectively.!For!example!the!value!0,1,0,1,0,1,0!will!repeat!on!Monday,!Wednesday!
and!Friday.!Please!refer!to!the!appendices!for!additional!information.)• RepeatEvery!defines!how!often!the!repetition!occurs.!A!Daily!repeating!event!with!a!
value!of!1!will!repeat!every!day;!a!value!of!2!will!repeat!every!other!day.!If!no!value!is!
defined!for!a!repeating!event!then!a!default!of!1!is!applied.!Values!from!1!to!30.)• RepeatCount**!defines!the!number!of!times!this!event!repeats,!e.g.!10.)• RepeatUntil*)/)**!defines!the!date!until!which!this!event!repeats.)• FreeBusy!(labelled!‘ShowMeAs’!in!the!browser)!can!be!‘free’!or!‘busy’.!The!default!
‘busy’!is!used!if!unspecified.!This!parameter!is!optional!for!InsertEvent!and!required!for!
UpdateEvent.!
• Visibility!can!be!‘default’,!‘private’!or!‘public’.!If!unspecified!then!the!calendar!default!setting!will!be!applied.!
• AttendeeList)defines!one!or!more!attendees!to!be!invited!to!this!event.!Each!attendee!is!
specified!by!their!email!address.!Use!a!comma!to!separate!multiple!attendees.!Note!
that!this!parameter!only!works!with!InsertEvent!but!does!not!work!with!UpdateEvent!U!see!separate!commands!for!updating!attendees.!Note!that!emails!are!not!automatically!
sent!to!attendees,!so!you!should!do!this!through!your!own!solution.!
Page!17! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!17!
• Status!can!be!‘confirmed’!or!‘cancelled’!and!can!only!be!set!with!UpdateEvent!(logically,!
the!default!status!is!‘confirmed’!for!the!InsertEvent!command).!Changing!an!event!
status!to!‘cancelled’!is!essentially!the!same!as!using!the!RemoveEvent!command.!
!
*!All!dates!must!be!in!the!format!selected!in!the!calendar!service!page,!e.g.!dd/mm/yyyy!
**!To!create!a!perpetual!(never!ending)!event,!leave!both!RepeatCount!and!RepeatUntil!values!blank.!Where!a!value!is!used,!only!specify!one!of!these!values,!not!both.!
!
Note!that!if!you!use!the!UpdateEvent!function!with!a!blank!parameter!value,!then!any!previous!
value!will!be!overwritten,!so!although!some!parameters,!like!StartTimeZone!and!EndTimeZone,!
you!must!include!them!if!they!have!a!value.!However!the!parameters!FreeBusy,!Visibility!and!Status!will!always!retain!their!current!values!if!not!specified!in!an!UpdateEvent!function.!!
Example:'!
Insert!From!URL![!
“httpspost://api.feedzon.com/calendar/v1/InsertEvent.fz?ServiceKey=123456789&CalendarId=p
etersmith@gmailcom&StartTime=12:00:00&StartDate=26/11/2014&StartTimeZone=Europe/Lon
don&EndTime=13:00:00&EndDate=26/11/2014&EndTimeZone=Europe/London&FreeBusy=busy
&Visibility=private&Summary=Team!Meeting&Location=Meeting!Room!A&Description=Discuss!
project!progress&Repeat=&RepeatByDay=&RepeatEvery=&RepeatCount=&RepeatUntil=!
&[email protected],[email protected],[email protected]”!]!!
Note!that!the!command!lines!above!and!below!will!have!exactly!the!same!effect,!assuming!the!
default!calendar!time!zone!applies!and!considering!the!‘repeat’!values!are!all!blank:!!
Insert!From!URL![!
“httpspost://api.feedzon.com/calendar/v1/InsertEvent.fz?ServiceKey=123456789&CalendarId=p
etersmith@gmailcom&StartTime=12:00:00&StartDate=26/11/2014&EndTime=13:00:00&EndDat
e=26/11/2014&FreeBusy=busy&Visibility=private&Summary=Team!Meeting&Location=Meeting!
Room!A!&Description=Discuss!project!progress!&AttendeeList=!
[email protected],[email protected],[email protected]”!]!!
' '
Page!18! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!18!
Result:!!
"0"!
"[email protected]","ujq86q4ka8pciqhtfi5cnrp0rg","2833583979180000",!
"https://www.google.com/calendar/event?eid=YnVhZHUzNDQ3dGNlMjI4N2Vza2RxMDEycmMgY
2hhaW1iYWNvbkBt","24/11/2014!01:19:49","24/11/2014!
01:19:49","0","busy","private","confirmed"!!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!the!second!line!
will!contain!the!data!in!a!comma!separated!quoted!format.!!
The!values!represent:!
"CalendarId",!"EventId",”EventEtag","Event_HTML_Link","EventCreated","EventUpdated",!
"EventModificationCount","EventFreeBusy","EventVisibility","EventStatus"!!
EventStatus:!!
All!events!have!a!default!status!of!‘confirmed’!unless!they!have!been!‘cancelled’.!If!an!event!is!
removed!it’s!status!is!actually!updated!to!‘Cancelled’.!!
!
!
Change'Cancelled'back'to'Confirmed:!You!can!change!the!status!of!a!‘cancelled’!event!back!to!‘confirmed’!using!the!UpdateEvent!
command!as!long!as!you!still!have!the!original!EventId.!
! '
Page!19! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!19!
GetEvent'Returns!details!of!the!specified!event.'!
Function!name! GetEvent.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId!
!
Note!that!this!command!converts!any!downloaded!new!line!or!paragraph!return!characters!to!
"\n"!to!avoid!complications!with!the!GetValue!function,!as!demonstrated!in!our!example!files.!
You!will!need!to!substitute!"\n"!back!to!"¶"!to!retain!the!original!formatting!of!your!data.!This!
only!affects!the!‘Summary’,!‘Location’!and!‘Description’!and!attendee!‘comment’!values.!
!
Example:!!!
Insert!From!URL![!"httpspost://api.feedzon.com/calendar/v1/GetEvent.fz?ServiceKey="!&!
“123456789”!&!"&CalendarId="!&!“[email protected]”!&!
"&EventId="!&!62243g9l8grjab9n8orjab9p6h130ba16d236ba56t2j4dq46cq3ec236s!]!
!
Result:!!
"0"!
"[email protected]","62243g9l8grjab9n8orjab9p","2850634037070000","https://www.goo
gle.com/calendar/event?eid=OXFvdDFmZG9hdWtvZHRmo4dXRwbTBfMjAxNTAzMDJUMDgxNTA
wWiBnMzBnZDhn","Weekly!Team!Meeting","Office","Brief!Projects!
Update","02.03.2015","10:00:00","Asia/Bangkok","02.03.2015","10:30:00","Asia/Bangkok","Wee
kly","1","1,0,1,0,1,0,1","","31.12.2015","3","01.01.2015!17:05:26","01.01.2015!
17:23:38","2","busy","private","cancelled"!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!the!second!line!
will!contain!the!data!in!a!comma!separated!quoted!format.!
!
The!values!represent:!
"CalendarId","EventId","EventEtag","HTML_Link","EventSummary","EventLocation","EventDescri
ption","EventStartDate","!EventStartTime","!EventStartTimeZone","!EventEndDate","!
EventEndTime","EventEndTimeZone","EventRepeat","EventRepeatEvery","EventRepeatByDay",!
"EventRepeatCount","EventRepeatUntil","EventAttendeeCount","EventCreated",!
"EventUpdated","EventModificationCount","EventFreeBusy","EventVisibility","EventStatus"!
! '
Page!20! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!20!
GetEventList'Returns!a!list!of!events!in!the!specified!calendar.!If!you!do!not!specify!any!of!the!optional!
parameters!then!all!events!in!the!calendar!will!be!returned.'!
Function!name! GetEventList.fz!
Required!parameters! ServiceKey,!CalendarId!
Optional!parameters! Find!(text!string),!UpdateDateTime,!StartDateTime,!
EndDateTime,!ShowCancelled!
!
Note!that!this!command!converts!any!downloaded!new!line!or!paragraph!return!characters!to!
"\n"!to!avoid!complications!with!the!GetValue!function,!as!demonstrated!in!our!example!files.!
You!will!need!to!substitute!"\n"!back!to!"¶"!to!retain!the!original!formatting!of!your!data.!This!
only!affects!the!‘Summary’,!‘Location’!and!‘Description’!and!attendee!‘comment’!values.!
!
Parameters:!
• Find!is!a!text!string!that!you!wish!to!search!for!matching!events.!Where!specified!only!
matching!events!will!be!returned.!Searches!summary!(event!title),!location!and!
description!fields.!
• UpdateDateTime*)specifies!a!timestamp!from!which!you!want!to!download!all!changes!
that!occurred!in!Google.!When!used,!all!changes!in!the!calendar!since!the!
UpdateDateTime!will!be!returned!including!events!that!were!created,!edited!and!removed!(if!the!ShowCancelled!option!is!set).!Note!that!this!may!also!include!events!
that!were!created,!edited!or!removed!in!FileMaker!and!uploaded!to!Google.!When!
using!this!parameter!do!not!specify!StartDateTime!or!EndDateTime.!Use!this!parameter!
to!synchronise!your!FileMaker!database!with!Google!Calendar!and!save!the!timestamp!
when!it!was!last!synchronised.!Download!the!changes!into!a!temporary!table!that’s!
related!to!your!event!data!by!EventId,!compare!records!and!adjust!them!accordingly.!
This!parameter!is!accurate!to!the!second.!The!UpdateDateTime!value!should!be!specified!in!the!calendars!default!time!zone.!!!
NOTE:!Google!says!that!it!limits!the!number!of!days!that!you!can!query!
UpdateDateTime!to!a!maximum!20!days!(although!our!testing!has!managed!slightly!
more).!If!you!specify!a!date!too!far!in!the!past!you!will!get!a!3030!error.!!
• StartDateTime*!and!EndDateTime*!specify!the!date!range!of!the!search.!Where!
specified!only!events!in!the!specified!date!range!will!be!returned.!
• ShowCancelled!uses!the!value!1!to!include!cancelled!(removed)!events,!e.g.!
&ShowCancelled=1.!
!
*!The!date!element!of!all!timestamps!must!be!in!the!format!selected!in!the!calendar!service!
page,!e.g.!dd/mm/yyyy!and!the!time!elements!require!seconds,!e.g.!HH:MM:SS.!
!
Feedzon'Service'Selected'Format' Timestamp'Value'Examples'
dd/mm/yyyy! 21/02/2015!11:36:15!
mmUddUyyyy! 02U21U2015!11:36:15!
yyyy.mm.dd! 2015.02.21!11:36:15!
Page!21! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!21!
Example:!!
Insert!From!URL!["httpspost://api.feedzon.com/calendar/v1/GetEventList.fz?ServiceKey="!&!
"123456789”!&!"&CalendarId="!&!"[email protected]"!]!
!
The!above!code!would!return!all!events!in!the!calendar.!Alternatively!specify!a!modification!date,!!
a!date!range!and!/!or!a!text!value!to!limit!the!search!by!appending!these!values,!for!example:!
!
"&UpdateDateTime=”!&!"01/01/2015!11:22:33”!
"&ShowCancelled!="!&!1!!
!
or!
!
"&Find="!&!“Meeting"!&!
"&StartDateTime="!&!"01/11/2014!00:00:00"!&!
"&EndDateTime="!&!"30/11/2014!23:59:59"!&!
'Result:!!
"0"!!
"[email protected]","62243g9l8grjab9n8orjab9p","2833581899948000",!
"https://www.google.com/calendar/event?eid=OXFvdDFmZG9hdWtvZHRmo4dXRwbTBfMjAxNX"
,"Staff!Meeting!Management","Boardroom","Weekly!
management!meeting","25/11/2014","10:00:00","Europe/London","25/11/2014","11:00:00","Eu
rope/London","","","","","","0","24/11/2014!01:02:29","24/11/2014!
01:02:29","3","busy","private","confirmed"!!
"[email protected]","01dpuafpven7ker0nep9en36ms","","2833582068154000","!
https://www.google.com/calendar/event?eid=hhgvdDFmZG9hdWtvZHRmo4dXRwbTBABCDE55",
"Accounts!Meeting","Accounts!Office","Discuss!
forthcoming!annual!report","27/11/2014","13:00:00","Europe/London","27/11/2014","14:00:00
","Europe/London","","","","","","7","24/11/2014!01:03:53","24/11/2014!
01:03:53","11","busy","private","confirmed"!!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!each!subsequent!
line!will!contain!the!data!for!that!event!in!a!comma!separated!quoted!format.!!
!
If!the!ShowCancelled!option!is!set!to!download!cancelled!(removed)!events,!these!events!will!
have!an!EventStatus!value!of!‘cancelled’.!
!
The!values!represent:!
"CalendarId","EventId","EventEtag","HTML_Link","EventSummary","EventLocation","EventDescri
ption","EventStartDate","!EventStartTime","!EventStartTimeZone","!EventEndDate","!
EventEndTime","EventEndTimeZone","EventRepeat","EventRepeatEvery","EventRepeatByDay",!
"EventRepeatCount","EventRepeatUntil","EventAttendeeCount","EventCreated",!
"EventUpdated","EventModificationCount","EventFreeBusy","EventVisibility","EventStatus"!
!
Page!22! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!22!
GetInstanceList'Returns!a!list!of!instances!(repetition!dates)!for!the!specified!repeating!event.!This!can!be!used!if!
you!wish!to!have!one!related!record!in!FileMaker!for!each!event!and!saves!you!from!having!to!
calculate!the!individual!dates!in!FileMaker.'!
Function!name! GetInstanceList.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId!
!
Example:!!
Insert!From!URL!["httpspost://api.feedzon.com/calendar/v1/GetInstanceList.fz?ServiceKey="!&!
"123456789”!&!"&CalendarId="!&!"[email protected]"!"&EventId="!&!
"01dpuafpven7ker0nep9en36ms"!]!
!
Result:!!
"0"!!
"[email protected]","1rbnbl5ckjea043j1r6r8f3u81","2832031445150000","https://www.go
ogle.com/calendar/event?eid=MXJibmJsNWNramVhMDQzajFyNnI4ZjNsN3NfMjAxNTAzMTZUM",
"Title","Loc","Desc","16/03/2015","20:00:00","Europe/London","16/03/2015","21:00:00","Europe/London","04/03/2015!23:57:34","05/03/2015!00:35:22","10","busy","default","confirmed"!!
"[email protected]","1rbnbl5ckjea043j1r6r8f3u81","2832031445150000","https://www.go
ogle.com/calendar/event?eid=MXJibmJsNWNramVhMDQzajFyNnI4ZjNsN3NfMjAxNTAzMjBUM",
"Title","Loc","Desc","20/03/2015","20:00:00","Europe/London","20/03/2015","21:00:00","Europe/London","04/03/2015!23:57:34","05/03/2015!00:35:22","10","busy","default","confirmed"!!
"[email protected]","1rbnbl5ckjea043j1r6r8f3u81","2832031445150000","https://www.go
ogle.com/calendar/event?eid=MXJibmJsNWNramVhMDQzajFyNnI4ZjNsN3NfMjAxNTAzMjNUM",
"Title","Loc","Desc","23/03/2015","20:00:00","Europe/London","23/03/2015","21:00:00","Europe/London","04/03/2015!23:57:34","05/03/2015!00:35:22","10","busy","default","confirmed"!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!each!subsequent!
line!will!contain!the!data!for!that!calendar!in!a!comma!separated!quoted!format.!!
!
If!none!of!the!repeating!instances!have!been!edited!they!will!all!contain!identical!values!except!
for!the!start!and!end!dates,!highlighted!above!in!bold.!
!
The!values!represent:!
"CalendarId","EventId","EventEtag","HTML_Link","EventSummary","EventLocation","EventDescri
ption","EventStartDate","!EventStartTime","!EventStartTimeZone","!EventEndDate",!
"EventEndTime","EventEndTimeZone","EventCreated","EventUpdated",!
"EventModificationCount","EventFreeBusy","EventVisibility","EventStatus"!
!!
! '
Page!23! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!23!
UpdateInstance'Update!an!individual!instance!of!a!repeating!event.'!
Function!name! GetInstanceList.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId,!EventDate,!
StartDate,!EndDate,!Summary!
Optional!parameters! Location,!Description,!StartTime,!StartTimeZone,!
EndTime,!EndTimeZone,!FreeBusy,!Visibility!
!
Parameters:!
All!parameters!listed!here!are!identical!to!those!used!in!InsertEvent!with!the!exception!of!
EventDate.!The!date!of!the!specific!instance!being!edited!is!used!to!identify!which!instance!is!
being!updated.!It's!the!ID,!so!to!speak.!If!you!wish!to!actually!change!the!date!of!this!instance,!
then!you!must!retain!the!original!instance!date!for!the!purpose!of!identification!in!the!EventDate!
parameter.!Then!place!the!new!start!date!of!this!instance!in!the!StartDate!parameter.!If!your!
users!are!permitted!to!edit!the!actual!instance!date!then!you!will!need!to!script!your!solution!to!
record!the!original!instance!date,!e.g.!in!a!variable!or!by!only!allowing!them!to!edit!the!data!in!
temporary!global!fields.!If!the!date!is!not!being!changed!then!provide!the!same!value!for!
EventDate!and!StartDate.!
'Example:!!
Insert!From!URL!["httpspost://api.feedzon.com/calendar/v1/UpdateInstanceList.fz?ServiceKey="!
&!"123456789”!&!"&CalendarId="!&!"[email protected]"!"&EventId="!&!
"01dpuafpven7ker0nep9en36ms"!]!
!
Result:!!
"0"!!
"[email protected]","1rbnbl5ckjea043j1r6r8f3u81","2832031445150000","https://www.go
ogle.com/calendar/event?eid=MXJibmJsNWNramVhMDQzajFyNnI4ZjNsN3NfMjAxNTAzMTZUM",
"Title","Loc","Desc","16/03/2015","20:00:00","Europe/London","16/03/2015","21:00:00","Europ
e/London","04/03/2015!23:57:34","05/03/2015!00:35:22","10","busy","default","confirmed"!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!the!second!line!
will!contain!the!data!in!a!comma!separated!quoted!format.!
!
The!values!represent:!
"CalendarId","EventId","EventEtag","HTML_Link","EventSummary","EventLocation",!
"EventDescription","EventStartDate","!EventStartTime","!EventStartTimeZone","!EventEndDate",!
"EventEndTime","EventEndTimeZone","EventCreated","EventUpdated",!
"EventModificationCount","EventFreeBusy","EventVisibility","EventStatus"!
!
! '
Page!24! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!24!
RemoveInstance'Remove!the!specified!instance!of!a!repeating!event!from!Google!Calendar.'!
Function!name! RemoveEvent.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId!
!
Example:!!!
Insert!From!URL![!"httpspost://api.feedzon.com/calendar/v1/RemoveInstance.fz?ServiceKey="!&!
"123456789"!&!"&CalendarId="!&!“[email protected]"!&!
"&EventId="!&!62243g9l8grjab9n8orjab9p6h130ba16d236ba56t2j4dq46cq3ec236s!]!&!!
"&EventDate="!&!"16/03/2015"!
!
Result:!!
“0”!
!
The!result!will!be!"0"!if!successful,!otherwise!an!error!code.!Once!an!event!instance!has!been!
removed!from!Google!it!cannot!be!reinstated!just!by!updating!the!parent!event.!To!reinstate!all!
removed!instances!you!would!need!to!recreate!the!parent!event!as!a!completely!new!repeating!
event.!Or!alternatively!just!create!individual!nonUrepeating!events!for!the!now!removed!
instances.!
Page!25! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!25!
GetAttendeeList'Returns!a!list!of!attendees!for!the!specified!event.!
!
Function!name! GetAttendeeList.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId!
!
Example:!!!
Insert!From!URL![!
“httpspost://api.feedzon.com/calendar/v1/GetAttendeeList.fz?ServiceKey=123456789&Calendar
[email protected]&EventId=tnhkcfju93t023bkgg8157f814g”!]!
!
Result:!!
"0"!!
"[email protected]","tnhkcfju93t023bkgg8157f814g","[email protected]",!
"needsAction","0","Disabled!access!required"!!
"[email protected]","tnhkcfju93t023bkgg8157f814g","[email protected]",!
"acepted","0","May!arrive!late"!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!the!second!line!
and!subsequent!lines!will!contain!the!data!in!a!comma!separated!quoted!format.!
!
The!values!represent:!
"CalendarId","EventId","AttendeeEmailAddress","AttendeeResponseStatus","AttendeeOptional",
"AttendeeComment"!
!
Note!that!this!command!converts!any!downloaded!new!line!or!paragraph!return!characters!in!
the!AttendeeComment!!to!"\n"!to!avoid!complications!with!the!GetValue!function,!as!
demonstrated!in!our!example!files.!You!will!need!to!substitute!"\n"!back!to!"¶"!to!retain!the!
original!formatting!of!your!data.!!
!
Note!that!an!event!created!with!no!additional!attendees,!e.g.!just!the!calendar!owner,!is!
considered!by!Google!to!have!no!attendees!since!attendees!are!additional!people!invited!to!the!
event.!Therefore!the!GetAttendeeList!functions!will!return!no!attendee!details!if!only!the!calendar!owner!is!attending.!If!additional!attendees!are!added!through!this!service,!then!only!
those!attendees!will!be!listed,!however!if!you!add!an!attendee!in!the!web!browser,!Google!
automatically!adds!the!calendar!owner!as!an!attendee!as!well,!who!will!then!be!included!in!the!
result!of!this!function.!
!
! !
Page!26! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!26!
InsertAttendee'&'UpdateAttendee'Add!or!update!an!individual!attendee!for!a!specified!event.!Repeat!the!command!for!each!
attendee!that!you!need!to!add!or!update!for!the!event.!This!function!is!for!adding!attendees!
after!the!event!has!been!created!or!when!you!need!to!specify!the!additional!values!that!cannot!
be!specified!when!using!the!InsertEvent!function!with!the!AttendeeList!parameter.!!
!
Function!name! InsertAttendee.fz! UpdateAttendee.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId,!EmailAddress!
Optional!Parameters! ResponseStatus,!Optional,!Comment!
!
Parameters:!• EmailAddress!is!a!single!email!address.!
• ResponseStatus!can!be!one!of!the!following:!needsAction,!declined,!tentative,!accepted.!FYI,!when!viewing!the!list!of!attendees!in!your!web!browser,!‘needsAction’!has!no!icon,!
declined!=!⊘,!tentative!=!?!and!accepted!=!✓.!If!undefined!the!value!‘needsAction’!will!be!
applied.!
• Optional!defines!whether!this!attendee’s!attendance!is!optional!or!compulsory.!If!
attendance!is!optional!set!Optional=true.!If!attendance!is!compulsory!set!Optional=false.!
If!undefined!the!value!‘true’!will!be!applied.!
• Comment!is!an!optional!text!entry!that!refers!to!this!attendee,!e.g.!‘Disabled!access!required’!or!‘May!be!late’!or!the!date!they!confirmed!attendance.!This!value!can!be!seen!
in!the!browser!view.!
!
Example:!!!
Insert!From!URL![!
“httpspost://api.feedzon.com/calendar/v1/InsertAttendee.fz?ServiceKey=123456789&!
[email protected]&EventId=tnhkcfju93t023bkgg8157f814g&EmailAddress=!
[email protected]&ResponseStatus=needsAction&Optional=true&!
Comment=Disabled!access!required"!]!
!
Result:!!
"0"!!
"[email protected]","tnhkcfju93t023bkgg8157f814g",!
"[email protected]","needsAction"","0","Disabled!access!required"!
!
The!first!line!will!be!"0"!if!successful,!otherwise!an!error!code.!If!successful!then!the!second!line!
will!contain!the!data!in!a!comma!separated!quoted!format.!
!
The!values!represent:!
"CalnedarId","EventId","EmailAddress","ResponseStatus","Optional","Comment”!
!
!
!
Page!27! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!27!
RemoveAttendee'Removes!an!attendee!from!the!specified!event.!
!
Function!name! RemoveAttendee.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId,!EmailAddress!
!
Example:!!!
Insert!From!URL![!
“httpspost://api.feedzon.com/calendar/v1/RemoveAttendee.fz?ServiceKey=123456789&!
[email protected]&EventId=tnhkcfju93t023bkgg8157f814g&EmailAddress=!
!
Result:!!
"0"!!
!
The!result!will!be!"0"!if!successful,!otherwise!an!error!code.!!
!
!
! !
Page!28! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!28!
RemoveEvent'Remove!the!specified!event,!including!any!repeating!instances,!from!Google!Calendar.'!
Function!name! RemoveEvent.fz!
Required!parameters! ServiceKey,!CalendarId,!EventId!
!
Example:!!!
Insert!From!URL![!"httpspost://api.feedzon.com/calendar/v1/RemoveEvent.fz?ServiceKey="!&!
“123456789”!&!"&CalendarId="!&!“[email protected]”!&!
"&EventId="!&!62243g9l8grjab9n8orjab9p6h130ba16d236ba56t2j4dq46cq3ec236s!]!
!
Result:!!
“0”!
!
The!result!will!be!"0"!if!successful,!otherwise!an!error!code.!!
!
Note!that!removing!an!event!is!essentially!the!same!as!using!the!UpdateEvent!command!and!
changing!the!status!to!‘cancelled’.!Once!an!event!has!been!removed,!it!can!be!reinstated!if!you!
still!have!the!EventId!by!changing!the!status!to!‘confirmed’!using!the!UpdateEvent!function.!!If!
you!have!removed!the!record!from!FileMaker,!you!may!still!be!able!retrieve!the!EventId!by!using!
the!GetEventList!function!with!the!UpdateDateTime!and!ShowCancelled!parameters.!
! '
Page!29! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!29!
MoveEvent'Move!a!specified!event!from!one!Google!Calendar!to!another!whilst!retaining!the!same!EventId.'!
Function!name! MoveEvent.fz!
Required!parameters! ServiceKey,!EventId,!CalendarId,!DestinationCalendarId!
!
Example:!!!
Insert!From!URL![!
“httpspost://api.feedzon.com/calendar/v1/MoveEvent.fz?ServiceKey=123456789&!!
EventId=tnhkcfju93t023bkgg8157f814g&[email protected]&!
!
Result:!!
"0"!
!
The!result!will!be!"0"!if!successful,!otherwise!an!error!code.!!
!
Note!that!even!though!Google!retains!the!same!EventId,!it!has!actually!changed!the!status!of!the!
original!event!to!‘cancelled’!and!created!a!new!event!in!the!destination!calendar!using!the!same!
EventId.!If!you!subsequently!perform!a!GetEventList!function!using!the!UpdateDateTime!
parameter,!the!original!event!will!download!with!the!status!of!‘cancelled’!when!querying!the!
original!calendar!and!with!the!status!of!‘confirmed’!when!querying!the!new!calendar.!If!you!
implement!full!synchronisation!in!your!solution!then!you!must!use!caution!to!ensure!the!record!
in!your!database!is!updated!with!the!latest!version!of!the!event,!which!can!be!identified!by!the!
Etag!value!(see!Terminology!>!Etag!earlier!in!this!manual).!
!
!
!
! !
Page!30! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!30!
Appendices'
Time'Zones'Information'Google!implements!the!following!rules!for!time!zones.!
!
1. AllUday!events!can!only!be!in!the!calendar’s!default!time!zone.!Do!not!specify!any!time!zone,!
not!event!the!default!time!zone,!when!creating!an!all!day!event,!otherwise!Google!returns!an!
error.!
2. A!single!nonUrepeating!event!can!begin!and!end!in!different!time!zones,!e.g.!a!flight!that!
crosses!time!zones.!!
3. Repeating!events!must!start!and!end!in!the!same!time!zone.!This!does!not!have!to!be!your!
default!calendar!time!zone,!but!the!time!zones!for!the!start!and!end!of!the!event!must!be!the!
same.!If!you!specify!different!time!zones!for!the!start!and!end!of!a!repeating!event,!you!will!
get!a!data!validation!error!message.!
!
If!you!use!multiple!time!zones,!then!problems!can!often!occur!because!time!zones!are!
complicated.!Please!see!this!article!for!more!information!about!how!Google!Calendar!works!with!
time!zones:!https://support.google.com/calendar/answer/2367918?hl=en!
!
If!the!country!required!is!not!on!the!list,!please!choose!the!nearest!major!city!with!the!same!time!
zone.!
!
Time'Zone'Regions'All!Google!time!zone!regions!are!supported.!Where!unspecified,!the!default!time!zone!will!be!
used!for!the!calendar!as!defined!by!your!Google!Calendar!settings.!Where!specified,!you!must!
specify!the!region!name!from!the!list!below.!Remember!that!nonUrepeating!events!can!start!and!
end!in!different!time!zones,!ideal!for!a!flight,!for!example,!but!repeating!events!must!start!and!
end!in!the!same!time!zone!as!each!other,!although!this!doesn’t!have!to!be!your!calendar’s!
default!time!zone!(this!is!a!Google!limitation).!
!
Africa/Abidjan Africa/Accra Africa/Algiers Africa/Bissau Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/El_Aaiun Africa/Johannesburg Africa/Khartoum Africa/Lagos Africa/Maputo Africa/Monrovia Africa/Nairobi Africa/Ndjamena Africa/Tripoli
Africa/Tunis Africa/Windhoek America/Anchorage America/Antigua America/Araguaina America/Argentina/Buenos_Aires America/Asuncion America/Bahia America/Barbados America/Belem America/Belize America/Boa_Vista America/Bogota America/Campo_Grande America/Caracas
Page!31! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!31!
America/Cayenne America/Cayman America/Chicago America/Costa_Rica America/Cuiaba America/Curacao America/Danmarkshavn America/Dawson_Creek America/Denver America/Edmonton America/El_Salvador America/Fortaleza America/Godthab America/Grand_Turk America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo America/Iqaluit America/Jamaica America/La_Paz America/Lima America/Los_Angeles America/Maceio America/Managua America/Manaus America/Martinique America/Mazatlan America/Mexico_City America/Miquelon America/Montevideo America/Montreal America/Nassau America/New_York America/Noronha America/Panama America/Paramaribo America/Phoenix America/Port_of_Spain America/Port-au-Prince America/Porto_Velho America/Puerto_Rico America/Recife America/Regina America/Rio_Branco America/Santiago
America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/St_Johns America/Tegucigalpa America/Thule America/Tijuana America/Toronto America/Vancouver America/Whitehorse America/Winnipeg America/Yellowknife Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Vostok Australia/Adelaide Australia/Brisbane Australia/Darwin Australia/Hobart Australia/Perth Australia/Sydney Europe/Amsterdam Europe/Andorra Europe/Athens Europe/Belgrade Europe/Berlin Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Helsinki Europe/Istanbul Europe/Kaliningrad Europe/Kiev Europe/Lisbon Europe/London Europe/uxembourg
Page!32! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!32!
Europe/Madrid Europe/Malta Europe/Minsk Europe/Monaco Europe/Moscow Europe/Oslo Europe/Paris Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/Sofia Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Vienna Europe/Vilnius Europe/Warsaw Europe/Zurich Indian/Chagos Indian/Christmas Indian/Cocos Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Reunion Pacific/Apia Pacific/Auckland Pacific/Chuuk Pacific/Easter
Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Pohnpei Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Wake Pacific/Wallis
!
!
!
!
!
!
!
! '
Page!33! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!33!
Success'&'Error'Codes'Where!successful,!a!function!will!return!“0”!as!the!first!line!of!the!result,!otherwise!an!error!code!
may!be!returned!from!the!following!list.!
!
Code' Code'By' Description'
! U1! Feedzon!
The!function!name!doesn’t!exist!or!has!been!spelled!incorrectly.!Note!that!
function!names!are!case!sensitive,!e.g.!
!
httpspost://api.feedzon.com/calendar/v1/GetEventList.fz!=!correct!
httpspost://api.feedzon.com/calendar/v1/geteventlist.fz!=!incorrect!
! 0! Feedzon! Success,!no!error!has!occurred.!Parse!the!remaining!data!as!appropriate.!
1000! Feedzon! ServiceKey!is!invalid!or!all!your!Feedzon!Calendar!services!are!disabled.!
1010! Feedzon!
Validation!Error!U!Data!format!error!or!required!data!missing!or!field!name!
error.!Common!reasons!include:!
• A!misspelled!a!parameter!name!(they!are!case!sensitive)!
• You!have!specified!only!a!Date!value!where!a!DateTime!value!is!
required,!e.g.!in!GetEventList.!!
• The!event!end!date/time!is!later!than!the!start!date/time!U!especially!
when!using!time!zones,!e.g.!a!threeUhour!event!that!starts!in!New!York,!
USA!at!12:00!and!ends!in!London,!UK!!at!14:00!will!fail!because!of!the!
five!hour!time!!difference.!That!event!would!need!five!hours!time!
difference!plus!three!hours!for!the!event.!!• All!dates!must!be!in!the!format!defined!in!your!Feedzon!service!page,!
e.g.!dd/mm/yyyy,!mm/dd/yyyy,!yyyy/mm/dd!etc.!if!you!change!the!
format!in!the!service!page,!ensure!all!data!matches!the!format.!
• If!you!try!to!add!an!attendee!who!is!already!attending!the!event.!Check!maximum!length!for!Summary,!Location!and!Description!values.!!
!
Note!that!in!the!coming!weeks!we!will!enhance!the!response!to!provide!
details!of!the!specific!items!that!were!missing!or!failed!validation.!These!
details!will!be!provided!on!the!second!line!of!the!response.!
2000! Feedzon!There!is!no!active!subscription!for!the!Feedzon!Calendar!service.!Please!
log!into!your!Feedzon!account!and!purchase!a!subscription.!
2010! Feedzon!
Too!many!calendar!services!are!enabled!for!your!type!of!subscription.!
Please!log!into!your!Feedzon!account!and!check!the!type!of!calendar!
subscription!you!have,!then!check!that!the!number!of!calendar!services!
that!are!enabled!is!not!greater!than!the!maximum!number!of!Google!
accounts!or!Calendar!Services!permitted!for!that!type!of!subscription.!
See!here!for!more!details:!https://www.feedzon.com/prices!
Page!34! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!34!
2020! Feedzon!
Too!many!calendars!are!enabled!for!your!type!of!subscription.!Please!log!
into!your!Feedzon!account!and!check!the!type!of!calendar!subscription!
you!have,!then!check!that!the!total!number!of!enabled!calendars!in!your!
service(s)!page(s).!Check!that!the!number!of!enabled!calendars!does!not!
exceed!the!subscription!maximum.!!See!here!for!more!details:!
https://www.feedzon.com/prices!
2030! Feedzon!The!calendar!is!disabled!in!the!Feedzon!service!page!or!it!doesn’t!exist.!
Please!log!into!your!service!page!and!enable!this!calendar.!
3000! Google!
Google!authorisation!error:!Possible!reasons!are!an!incorrect,!expired,!
corrupt!or!tampered!security!certificate!(.p12),!incorrect!Google!
developers!console!email!address.!!
3010! Google!
Google!permission!error:!Please!check!the!sharing!settings!for!your!
calendar.!The!setting!should!be!either!‘Make!changes!to!events’!or!‘Make!
changes!AND!manage!sharing’.!Some!customers!with!Google!Apps!
accounts!have!reported!that!only!the!latter!setting!works,!whilst!others!
have!had!success!with!the!former.!We!have!also!seen!cases!where!you!
click!‘Save’!in!the!browser!but!the!setting!is!not!saved!and!it!may!take!
multiple!attempts!for!Google!to!accept!the!setting.!
3020! Google!
Google!existence!error:!The!specified!event,!instance!or!attendee!does!
not!exist.!For!example,!if!you!tried!to!update!or!remove!a!specific!event,!
but!the!‘EventId’!doesn’t!exist!in!Google!because!it!was!already!deleted!
from!Google!Calendar.!
3030! Google!UpdateDateTime!value!is!too!far!in!the!past.!Please!see!GetEventList!
function!for!details!of!how!far!back!you!can!specify!this!value.!
4000! Google!Google!returned!a!rare!error!code!that!we!have!not!yet!identified.!Please!
contact!us!if!you!are!unable!to!resolve!the!issue.!
! Google!
An!error!may!also!be!returned!in!the!unlikely!circumstances!that!your!
daily!quota!has!been!reached!or!you!have!made!too!many!requests!in!a!
short!time!period.!
'! '
Page!35! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!35!
Google'Calendar'Service'Limits'The!Google!Calendar!API!has!a!courtesy!limit!of!1,000,000!queries!per!day!per!account.!If!your!
business!is!likely!to!exceed!this!limit!you!will!need!to!contact!Google!to!increase!your!allowance.!
See!this!page!for!more!information:!https://developers.google.com/googleU
apps/calendar/pricing!
'
Note'about'Repeating'Events'in'FileMaker'It’s!probably!worth!noting!that!FileMaker!doesn’t!provide!any!easy!method!to!display!repeating!
events!from!a!rule!defined!in!a!single!record.!We!recommend!that!you!use!the!GetInstanceList!
function!to!download!each!event!from!a!repetition!to!a!related!table.!
!
RepeatByDay'for'Weekly'Repetitions'If!you!create!a!weekly!repetition!and!provide!a!start!date!that!is!prior!to!the!first!instance!of!the!repetition!then!an!additional!instance!will!be!created!on!the!start!date.!For!example:!
!
Start:!! 15!June!2015!
End:! ! 15!June!2015!
Repeat:! Weekly!every!Thursday!
!
The!repeating!instances!will!be!correctly!created!on!Thursday!18!June,!25!June,!2!July!etc.!
However!since!the!event!start!date!was!prior!to!the!first!repeating!instance,!Google!will!also!
create!an!event!on!15!June,!which!is!Monday!(and!therefore!is!incorrect).!
!
If!you!do!this!in!your!browser,!Google!will!actually!change!the!start!date!of!the!event!to!the!first!
repeating!instance!without!providing!any!user!feedback.!Unfortunately!Google’s!API!doesn’t!
support!this!autoUchange!and!there!is!no!way!to!provide!feedback!to!the!user!in!FileMaker!
without!performing!a!subsequent!GetEvent!function!thus!causing!the!date!in!FileMaker!to!be!
different!to!that!in!Google.!Therefore!we!leave!the!extra!instance!as!it!is!since!it!is!not!
appropriate!for!us!to!change!your!data.!
!
Modification'Count'The!ModificationCount!value!returned!by!the!GetEvent!and!GetEventList!functions!is!normally!
incremented!when!an!event!is!updated!by!FileMaker!or!iCal!or!any!other!3rd!party!application.!
Testing!has!shown!that!the!value!is!not!always!incremented!if!the!event!is!updated!in!your!web!
browser!and!so!we!recommend!that!you!not!rely!on!the!absolute!accuracy!of!this!value.!
!
Google'Event'Creator'Name'When!viewed!in!a!browser,!events!created!through!the!
Feedzon!API!service!will!display!with!‘Created!by’!as!your!
unique!Google!Console!developer!account!email!address.!
!
! '
Page!36! Copyright!Feedzon!Limited!2015.!All!rights!reserved.!E&OE!36!
Future'Improvements'We!intend!to!add!the!following!in!future!updates!to!the!Feedzon!Calendar!service:!
!
1. Support!for!notifications!(reminders)!
2. Option!to!have!Google!automatically!send!emails!to!attendees!or!to!download!.ics!file!to!
email!to!people!yourself.!
3. Support!for!custom!colours!(there!is!currently!a!bug!in!Google’s!php!support!libraries!that!
prohibits!this!function!from!working!correctly)!
4. Support!for!custom!fields!
5. A!graphical!calendar!interface!for!use!in!FileMaker!
6. Additional!data!format!option:!JSON!!
7. Additional!data!format!option:!FMPXMLRESULT!(for!easy!bulk!importing!of!calendars!and!
events!into!FileMaker)!!
8. Integration!with!Google!Contacts!
9. Improve!error!codes!to!help!you!identify!the!specific!reason!for!the!error,!e.g.!exactly!which!
parameter!and!value!failed!a!data!validation!check.!
!
We!also!welcome!your!suggestions!for!improvements!and!new!features.!